Interview: Mono leader criticizes double standards when it comes to the open web and talks about future developments and the increasing openness at Microsoft
In 1997 Miguel de Icaza - together with Federico Mena Quintero - started one of the most influential Open Source projects: The GNOME desktop. As a Vice President of Developer platform at Novell he nowadays is leading the development of Mono, the free .Net-implementation he initiated in 2001. Since a few months he is also responsible for another group inside Novell: The Moonlight developers who are working on an open source version of Microsofts Silverlight - a task officially blessed by Microsoft.
During the recent GNOME Users and Developers Conference (GUADEC) Andreas Proschofsky had the chance to sit down with de Icaza and talk about future developments around Mono and Moonlight, the possibility of open sourcing .Net itself and changes in Microsofts attitude towards free software.
The following interview is also available in a german translation.
derStandard.at: When is Mono 2.0 going to be released?
Miguel de Icaza: Mono 2.0 has been three years in the making. We are actually branching for Mono 2.0 on Monday [July 14th, apo], we are going to have the regular two months Q&A period, testing of tarballs and installation and fixing the major bugs. So it should come out in September. We are going to have RC1, RC2... After the initial release there will be regular point releases - 2.2, 2.4, 2.6 - every three months or so.
derStandard.at: Time based releases?
de Icaza: Roughly. Now that we have 2.0 API covered we are going after specific features, so for example at the end of the year we are going to resume work on the Compacting GC (garbage collector) and we hope to have this enabled by Mono 2.6. So instead of the team being spread across lots of different projects, we are going to pick a specific feature - like updating Windows Forms to 3.5 - and while one half of the team obviously still will have to do maintenance work, the others are going to focus solely on that.
derStandard.at: Are you going to fully support .Net 3.5?
de Icaza: The problem with 3.5 is, that it includes 3.0 where they basically dumped a bunch of libraries that are not really part .Net, they are just built on .Net. For example, we do not have any plans to do WPF (Windows Presentation Foundation), this is pretty much out of the question. It's just too large for our team to build. The thing that we can do is turn Silverlight in a sort of "WPF light", and get most of the features from running Silverlight outside the browser, which we already do.
derStandard.at: What about the rest of 3.5?
de Icaza: WCF (Windows Communication Foundation) is happening, although it is happening very slowly because it is very large. We have the basics in place but it
is not complete. Also WCF is not really high performance so we are just pointing people to use ICE from ZeroC instead (or Google Protocol Buffers), if you want
something fast - use that.
derStandard.at: The last time we talked you were in favor of enhancing the partnership with Microsoft, is that stuff progressing?
de Icaza: Yes. For instance last September Microsoft signed an agreement which results in Microsoft endorsing Moonlight - our own free implementation of Silverlight. So they are providing us with specifications, they are providing us with tech contacts, so whenever any specification is not clear, we have access to their engineers. Also one thing that is very unique: Microsoft is going to be distributing an add-on to Moonlight called the "media pack". And that add-on contains all the media codecs that Silverlight uses, so it contains the MP3 decoder, the VC1 decoder, WMV and all that stuff. We are going to provide Moonlight and they are adding the codec parts - and this is going to be totally legal, it's something that they are actually encouraging - that's pretty sweet.
derStandard.at: They are going to provide that for every distribution or just for openSUSE?
de Icaza: For every distribution, also x86, x86_64 and PowerPC. In fact we are going to provide binaries for BSDs, for Solaris - both on SPARC and Intel.
derStandard.at: Do you see Mono once getting blessed as the "official" .Net for Linux?
de Icaza: I hope so. It might end up that at some point Microsoft just open ups .net, like Sun did with Java, that's always a possibility. I don't know how real that possibility is, but it could be. In the meantime I think we are on track to become a viable .Net implementation.
Some interesting background is that with Moonlight 1.0 we are focusing on the graphics engine pipeline, video and so on.
But with Moonlight 2.0, we are bundling Mono with it, our own CLI implementation.
And part of the agreement with Microsoft gives us access to their test suites, to validate that our implementation is correct. And that includes test suites for the CLR, test suites for the class libraries. So we can at least validate that the Mono parts that are used in Moonlight are a 1:1 mapping to .Net.
derStandard.at: What about getting more documentation from Microsoft?
de Icaza:We do not really need more at this point. What we usually use to implement stuff are the public APIs as documented on the Microsoft website. Every once in a while we implement something and it turns out the documentation was not really good, and those are the difficult cases. And in those cases we just have to resort to trial and errors to match their implementation.