Miguel de Icaza: "We could refresh the look and feel of the entire desktop with Moonlight"


    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.

    derStandard.at: Hypothetically speaking: If Microsoft would really release .Net under an open source license, what would the consequences for Mono be?

    de Icaza: Well you actually can already get the class libraries source code, but it is released under Microsoft's "look but don't touch"-license. So it's not really open source, you can't redistribute it and you can certainly not take the code, recompile it and run it in Mono, that's not allowed.

    Now, if I were to speculate, if .NET was open sourced there really would not be a lot of reason for the core Mono libraries to exist. Maybe there would be in certain cases, where people would prefer to use one of our class libraries or other parts, but not for the whole core. Now on the other hand the Mono project has created a lot of APIs that go beyond the core .Net. So those ones will continue to exist and evolve, things like GTK#, Mono.Addins, Mono.Zeroconf, Ndesk.Options, Dbus# all of that stuff.

    Much of that would depend on the licensing Microsoft would choose for such a step, but there certainly would be some cases where components of Mono would be better or remain relevant. We are now porting mono to the Wii and the PS3, so developers can use it to build games and we are working with other console manufacturers to do the same thing. It's used for embedded system, for use cases like digital radios and MP3-players. Because you can shrink Mono down to a real small runtime. So if .Net was really open source, I think there would still be value for Mono in all these areas.

    In the meantime - I really don't think they are going to open source .Net.

    derStandard.at: Microsoft has publicly stated that they want to become more open in the future, do you think there is some real value in that promise?

    de Icaza: Yes, definitely. They have been talking about opening up and improving interoperability since February, and in March at the Mix-conference you really could see them talking a lot more about engaging with the community, open specs and process. And I was just there a couple of weeks ago for another of our regular meetings and I had the chance to not only talk to the top management but to actual engineers and developers. And what was interesting: The really got the message. I don't know if it was an internal message or if they are asking people to think in that way but in the last six months there has been a significant amount of change inside Microsoft.

    derStandard.at: With the increased focus on Moonlight, did you just re-prioritize people from the Mono group inside Novell or is this a new group?

    de Icaza: This is a new group inside of Novell. Basically my team grew from about 30 to 40 people over the last year and a half. Most of the hires went to Moonlight, so now with 15 people working on Moonlight, the biggest part are new hires.

    derStandard.at: Coming back to the licensing of codecs from Microsoft. As far as I understand, that's only valid for applications running in the web browser, is that correct?

    de Icaza: Yes, that is true. Basically Microsofts position is that they are willing to redistribute the codecs towards the goal of making Silverlight universal, but they are not willing to pay the bill for every Linux user's desktop, as they have to pay MPEG LA and such groups for the licenses.

    derStandard.at: And it's going to be a separate package?

    de Icaza: Yes, we'll be making it as easy as possible to install, but it is a Microsoft product and it is going to come from the Microsoft web site.

    derStandard.at: Will it be possible to package that with distributions?

    de Icaza: I do not think so; actually I am pretty sure that you will have to download it from Microsofts webpage, though I do not remember the exact details here.

    derStandard.at: With Moonlight, what are the current goals you are trying to achieve.

    de Icaza: Our first goal is finishing Moonlight 1.0 because that is what's actually deployed today. And that's basically a rich canvas with multimedia capabilities - all accessible through Javascript. So it is actually the browser scripting engine that controls the plugin (Firefox, IE, Opera or whatever).

    Initially we only wanted to do 2.0 but it turned out that we got 1.0 for free as 2.0 is just this canvas and on top of that they added .Net. So we are going to ship Moonlight 1.0 in the next few months. There is actually only one test that we fail in the Microsoft test suite at the moment but we are failing on a couple of published websites, so obviously the test doesn't cover every use case and we are focused on fixing these problems.

    Meanwhile another part of the team has been working on the 2.0 features for quite some time - as long as it doesn't touch the core, things like the security sandbox, making the VM more robust, the networking stack and so on. We did this because we really wanted to ship 1.0 and did not want to destabilize the core with other things.

    derStandard.at: Do you think you are going to be able to deliver Moonlight 2.0 in a reasonable time?

    de Icaza: Yeah, I think it will takes us about 9 months to get there. Remember - 2.0 is to a large extent Mono, and Mono already has nearly all of the required features. A lot of work went into strengthening Mono, so that if you run it over the web and you get malicious code Mono doesn't crash or something. There are also some bits of code that need to be rewritten like layout management, which we haven't done until now.

    But here is a really nice thing that happened: Microsoft open sourced all of the high level controls - buttons, list-view, scrollbars, and so on - they are under the MS-PL. So that directly helps Moonlight as it's less work for us to do. And it helps third party developers because they can see how things are done and learn from that.

    derStandard.at: As Moonlight now is the official Silverlight release for Linux, is Microsoft financially supporting you in doing this?

    de Icaza: No, that's hundred percent Novell.

    derStandard.at: Why support Silverlight at all?

    de Icaza: I can give you two explanations - the business side explanation and the hacker side explanation. The hacker explanation is simple: I find Silverlight incredibly appealing - you get C#, you get a DLR (Dynamic Language Runtime), you get a fantastic graphics engine with a fantastic animation framework, you get video, you get audio, multi-language compatibility and so on and so forth. And I get a JITted language also, and a static language with dynamic features that beats Javascript out of the water.

    The business side explanation is that we want to make sure that Linux remains a first class citizen on the web. As websites start using Silverlight we don't want Linux to be in a position where you can't access those websites. Also we thought Silverlight will be important enough and have enough market share just because it is Microsoft doing it.

    derStandard.at: But aren't you actually validating Silverlight by that and driving adoption?

    de Icaza: That's what some people want you to believe. But I don't think that's the case. Linux on the desktop is still a very small amount of people. If you believe that getting the Linux desktop people happy is what you need to validate a technology, you have lost a sense of proportion.

    I mean - how many people outside of the technology world really know about Linux at the moment. And even the Mozilla guys - the keynote we had here was done on a mac, every single Mozilla developer uses a Mac. And it's funny, they constantly attack Silverlight, they constantly attack Flash and then all of them use proprietary operating systems, they don't seem to have a problem doing it. And then they had the Guiness record thing for Firefox 3 and you went to the website and it had a flash map to show where people are downloading - so there definitely is a double standard here. And that's after all their claiming that you can do everything in AJAX - so they definitely don't "walk the walk".

    derStandard.at: But isn't their message more like "moving in that direction"? For instance stuff like HTML5 video support is just coming up.

    de Icaza: Yes, this is correct. But they claim that the right thing to do in that position is to boycott those things that are not open. And then even their widget for downloading Firefox is based on Flash. So they really don't have a problem with Flash, they seem to have these problems only when it comes to Microsoft technologies.

    derStandard.at: Still - Couldn't the HTML5 stuff, Javascript 2.0 and all that be a good - and free - alternative - for something like Silverlight in the future?

    de Icaza: It's certainly possible, and I am sure that this would be great for a lot of people, but not for everyone. I personally do not want to build my applications on Javascript. I think that its a) slowb) ugly and c) spaghetti code, right? I am sure some people like that, but to me it's something I really don't want to do. And unless Mozilla is willing to put C# or another language like that in the browser, the gap will be filled by third parties.

    In general, when it comes to the technology adoption in the browser, anything that is a plug-in has a natural advantage over getting every browser vendor to support the technology. In this case, Flash and Silverlight.

    For example, currently, the Mozilla approach is "you have to use our browser", so if for instance you want to work with svg you have to decide that you won't work with Internet Explorer. So this goes back to the browser wars and limits yourself to one browser. The other approach is to use plug-ins that work across multiple browsers and multiple platforms and the advantage that plug-ins have is that they are not married to a product and so the developers can deliver the same API in a real cross-platform and cross-browser way.

    By having Moonlight, an open source implementation of Silverlight available under the LGPL and as a validated implementation of it, we can ensure that it is both open, and that it will be supported and available everywhere that it matters.

    derStandard.at: You talked about re-using Silverlight / Moonlight for the desktop, is there already some concrete work happening, or are those still just ideas for the future?

    de Icaza: We are actually doing that right now, we have a couple of projects. Lunar Eclipse is our Silverlight designer for Linux and that is actually built entirely as a desktop Silverlight application. The idea is to have both a desktop and a web version. We also built Moonlight desklets, which is like Apples Dashboard.

    I am also trying to convince people that we need to redo certain desktop components using Moonlight because we could get a flashier, nicer user interface with the designers actually prototyping this interface in Inkscape or blender.

    derStandard.at:Which parts are you referring to?

    de Icaza: I think we could refresh the look and feel of the entire desktop. To be realistic I don't think we can do absolutely everything that would take years. So if I would have my choice today I would probably rewrite the gnome panel completely with Moonlight. I wouldn't go as far as doing the file manager although I think it would be great to do a new file manager or improve Nautilus but it would be a lot of work.

    The other thing I would do is spice up existing applications, using Moonlight in a couple of areas. For example F-Spot could use a Moonlight based photo organizer so you could do things like sorting your photos visually and all that stuff that today is hard to do with F-Spot and the traditional icon view. Even Evolution could be extended, you could get graphical displays of when you got e-mail, different rendering mechanisms for the same informations. And you could rewrite the calendar to be a lot nicer.

    (Andreas Proschofsky, derStandard.at, 03.08.2008)

    • Mono and Moonlight development lead, Miguel de Icaza, at a boat trip during this years GUADEC
      foto: andreas proschofsky

      Mono and Moonlight development lead, Miguel de Icaza, at a boat trip during this years GUADEC

    Share if you care.