Mono at the Professional Developers's Conference 2005: (Article Permalink)
Just got back from an intense week at the Microsoft Professional's Developer Conference in LA. I arrived on Sunday night along with Gonzalo. My original plans were just to attend the conference, learn about the state of .NET and the upcoming technologies being built on top of .NET.
At the last PDC we attended the conference before Mono 1.0 had been shipped. Mono was still not a reality, very few applications ran on Mono and the potential for running .NET applications on Linux was only an ideal (although we had managed to run SourceGear's Vault software at that point). We were nine months away from shipping our first release.
Mono has now been released for fifteen months and has gained increased popularity with the .NET developer community and there are several commercial and open source applications that run out of the box on Mono. We came to the PDC knowing that Mono was real and is gaining functionality on a daily-basis.
Mono Users Meeting: Preparation.
As I mentioned on a previous blog entries Microsoft prevented us from hosting a BOF session at the event.
We decided to host an independent users meeting nearby the convention center. We picked Tuesday for the event, the first day that the conference was going to be in full swing.
In preparation for the event Jackson distributed fliers on Sunday. Gonzalo and myself joined the action on Monday. We came up with some creative new ways of flier distribution. The process itself can probably be patented in the US, we just need to find a lawyer that can creatively turn it into a patent application.
Monday was the pre-conference day. Only a fraction of the attendees are present this day, we took this opportunity to schmooze like only a Johnny Depp-looking Canadian, a flamenco-loving, smoking Spaniard and a Mexican sex symbol can schmooze.
During the day the Microsoft Regional Directors were having their group picture taken. I was walking on the halways wearing my award-winning t-shirt design when a group of regional directors from the group asked me to join them for their group picture. I figured it would be pretty funny to be in the picture so I joined them. The Microsoft guy in charge of Regional Director Group Pictures for a split second was wondering why one of his regional directors was wearing a Mono shirt, so he asked me if I was one of them. He did not want to ruin his Kodak moment, so I was asked to get out of the picture. Like they say, hindsight is 20/20, I clearly should have body surfed.
The flyers that we handed out contained one error: we stated that the Microsoft .NET Framework did not support the Itanium architecture which is incorrect. The .NET Framework has been ported to the Itanium. My apologies to Jason Zander and his team.
The Mono Users Meeting
Although we had to compete against the vendor reception, the PDC underground meeting and a couple of parties the Mono meeting attracted a large number of people. We started the meeting at 6pm and we left the meeting at 10pm, since we were competing with other events people came and left during the duration of the meeting.
Those lucky enough to arrive at the beginning of the meeting got a t-shirt with our new design. We distributed two hundred t-shirts and we clearly did not have enough for everyone that came in late.
We brought a few computers to demostrate a few things. Sadly I could not get any video out of my computer into the projector which meant that we could only show the attendees a subset of what we had planned. For instance, we had to show Xgl running on a low-end machine and we had no videos on the machine to show the Avalonesque rendering.
My presentation was basically slideless while Gonzalo tried to fix my video output. Someone in the audience had a hub and we setup a small network so we could show some of the applications running remotely into the low-end machine. So the demostrations had to be a subset of what I wanted to show people. We could not show Beagle and we could not show the new media player on the screen, except to those who stayed until the end.
Luckily Joseph Hill had brough a bunch of Mono Live CDs (a hundred or so) and we used one of those to show the various Mono applications on another laptop: MonoDevelop, the Boo shell, Boo intellisense in MonoDevelop, various ASP.NET applications.
Todd Berman showed Medsphere's product. It is probably one of the few commercial applications that are developed in Mono/Linux first and then ported to Windows instead of the other way around.
The attendees to this meeting knew .NET very well, so the questions were much more specific than the questions that we typically receive at open source events.
The event was energizing as the attendees love Mono. A bunch of them were using Mono or are planning to have their software certified to run with Mono on Linux. It was a fantastic evening and it was great to meet the Imeem and Medsphere crowds as well as Joseph and Zac who flew all the way from Texas just for the event.
It was very encouraging to meet the crowds of commercial and professional developers that are using Mono. I had no idea that so many people were using it. It would be ideal if we could get the companies using it to work with us in making some case studies on their migration experience and to learn more about what we can do for them.
Usually in open source conferences there is a small percentage of people who know about C# or Mono in depth. At these conferences people have heard about .NET only superficially and do not quite grasp why someone might want to write code in anything but Perl or Java.
The PDC was completely different: we all spoke the same language, but most importantly the folks that came to the meeting and the folks that I met in the next few days on the hallway are interested in bringing their applications to Linux and the Mac.
A recurring theme with people I met was: "We are using C#, we need to be portable but we are not going to rewrite the software". So we were psyched to talk to all of these developers. I hope we can assist them in making their applications cross-platform.
Finally, Todd Bishop wrote a nice article for the Seattle Post-Intelligencer on the Mono reception at the PDC with a few interesting quotes from users.
Anders Hejlsberg is a man of excellent taste.
Anders introduced various new updates to the C# language. The new changes are works of art: they are seven small building blocks that can be composed to create some very powerful idioms.
These changes were driven mostly by the need to integrate the C# object model with relational database models and integrate with the XML universe. The project to integrate C# with these external data models is called Linq.
An ongoing theme in C# is to keep the language strongly typed but help developers reduce the amount of lines that they have to write by introducing some concepts that feel like scripting language features.
The C# changes are like a Christmas present, we can not wait to implement them and the changes feel truly delicious.
Anders' C# and Linq sessions were probably the ones that I enjoyed the most.
Jim Hugunin presented IronPython in the scripting languages session. IronPython and some of the other programming languages presented are providing valuable input on how to improve the underlying infrastructure to better support scripting languages in the CLR.
Technology at the PDC.
The other product announcements at the PDC were not too surprising, this PDC was mostly a maturation iteration on previous announcements. Avalon and Indigo are more real and the presentations I attended were all pretty good. If Microsoft had to reset the clock on Longhorn it does not seem like Avalon or Indigo suffered much from that.
The big gap that was filled out is the Avalon GUI designer.
There is also a new "light" edition of Avalon. The light version called WPF/E is implemented in C++ and will allow developers to hook some native language into it. It will not be tied to the CLR and if you intend to write cross-platform code your only option seems to be to embed ECMAScript for it.
A few months ago we started to talk to various ISVs and component vendors to have their software certified to run on Mono and Linux. The event was a good chance to have a face to face meeting and to discuss what are the next steps to have their software certified to run on Linux.
By Thursday the Mono vibe was fairly high. Stepping into the PDC open hall with our Mono stickers was a sure way of meeting Mono users that had not heard about the Mono meeting. I missed a bunch of sessions just hanging out there.
It is particularly interesting to find that various people I met at the conference were also Jon Stewart fans. Kim Cameron described the show as it its "life line"; Douglas made a reference to Jon in his Indigo presentation and foreigners living in the US unanimously refer to it as the only source of news that can be trusted.
The scripting languages panel on Friday had the best sound bytes of the event. Here are some of the ones I wrote down, but a blog entry and my poor writing skills can't do justice to the context and the delivery from each of the presenters.
- Rodrigo, the Boo creator observed that we repeat the same constructs over and over when we write code and we have to endure those while reading source code. He pointed out that most of the repetitive syntax is meant to help the compiler and the compiler developer and not necessarily the developer.
- Jim Miller from the CLR team pointed out that
statically typed languages help eliminate certain
problems from programs, but the often made claim that
runtime errors do not happen is an illusion in the
presence of exceptions and runtime errors.
He used an interesting analogy: what lasts more, a pyramid or an amoeba. Amoebas being a little like scripting languages and pyramids are strongly typed languages. There is a world to explore in the middle.
- An engineer whose name I do not remember said
"the reason you need very advanced tools to develop
software for Java is that the underlying language is
too complex". Although I agreed with the statement, I
figured that C# suffers from many of the same problems
that Java does in the agility domain.
The engineer seemed to be in favor of scripting languages and did bring up Smalltalk a few times.
After the presentation, I approached the guy that made the comment about Java to point out that their C# product suffered some of the same problems, just for the sake of getting the record straight. I was under the mistaken impression that he was involved with Visual Basic. Turns out that he was not a Microsoft employee but one of the founding Eclipse architects. It turned out that he knew exactly what he was talking about. I felt like a fool and had to apologize for my comments. I do not remember his name, but am hoping he will e-mail me.
Update: Paul Vick pointed out that the Eclipse Architect was Dave Thomas. Oh, and I absolutely love C#.