|Interview: Miguel de Icaza
by Henry Kingman (Oct. 8, 2008)
Foreword -- GNOME project co-founder Miguel de Icaza discusses the release of Mono 2.0, in this detailed interview with Henry Kingman, executive editor of DesktopLinux. The conversation spans Mono's history, current state, and future, with stops along the way for updates on Moonlight and Mono Develop. Enjoy . . . !
(Click for larger photo of Miguel de Icaza)
Q1. So, it's been about five years since the last major Mono release, and what, about ten since you started the project?
A1. No, no, you're thinking of GNOME. GNOME is 11 years old.
Q1b. I had actually forgotten that you were a co-founder of GNOME, too. Who else was involved in launching GNOME?
A1b. Federico Mena was on the email from me of the first announcement. I forget who some of the other early contributors were. Some of them have fallen off the map. Eliott Lee, I remember. He is at VMWare now. And Alan Cox was one of the early adopters, although he is better known now for work on the kernel.
[See also Miguel's history of GNOME.]
Basically, when we started Mono, we wanted to write software more effectively. We had some painful experiences with C and C++, and when Microsoft came out with .NET, we said, "Yes! That is what we want."
Q2. I think of .NET as Microsoft's answer to Java for enterprise developers. Yet, Mono seems to be getting traction on the desktop, underpinning applications like F-spot, Beagle, TomBoy, Banshee, and maybe others that are widely distributed with the GNOME desktop. What kind of developers is Mono really intended to serve?
A2. Well, my passion is still the Linux desktop. And a lot of people are using it for what we originally wanted it for. But, we tried to put in every API that we could, to make it a pleasant development environment. That is always the goal. So for example, we are working now on Mono Develop [project home], the IDE (integrated development environment), working toward a 2.0 release next year. It's all about giving pleasure to developers.
So, my goal personally is the GNOME desktop. That's my baby. I use Linux as my desktop every day. I have a Windows machine on my desktop, but it's just to read Microsoft's documentation. So, we started Mono because we asked ourselves, 'How can we make Linux successful on the desktop.'
But people have taken Mono in many directions. Enterprise use is incredibly important. Mono lets you run ASP.net applications on Linux servers. I find Linux servers to be faster, more secure, and to have more features, such as support for more filesystems. So, ASP.net on Linux is a much nicer proposal.
Mono has gone into so many areas that have nothing to do with the desktop. You've probably heard of Second Life? They switched their scripting engine from LSL [Linden Scripting Language] to Mono, and got a 220 times performance increase. So, Mono is being used now by game vendors. A company called Otee sells Unity 3D middleware [vendor site] that lets developers port .NET games to the iPhone and Wii. We're incredibly proud of that use. We never thought of it as a gaming engine, but it is being adopted by game developers in droves.
Q2b. Games for the Wii and iPhone would need to statically link the Mono runtimes, invoking the need for a commercial license. Is that right? Is Novell seeing a lot of commercial licensing around Mono at this point in time?
A2b. That's right. But Novell does not allow me to talk about financial matters.
Another example of another direction people have taken Mono is the Sandisk Sansa Connect portable media player, which is now owned by Dell. The whole UI is built in Mono. It's a nice use of Mono on embedded.
Q2c. Yes, we covered the Sansa Connect. It was the first PMP to interact directly with web services over WiFi, so you did not need a PC to buy and download music.
A2c. That's right.
Q3. Is there a Mono equivalent to Microsoft's .Net Micro Framework, specifically for deeply embedded systems?
A3. No, there is not. We do not really need one, for reasons that go to the heart of the advantages of "open source."
The problem with Microsoft's Compact Framework for .Net is that they said, okay, for embedded, we're going to remove all these APIs and make it really small. But, they were the ones who made the decision about what was needed. Sometimes developers would like to use features that were cut off.
A lot of people have now contributed patches to trim down Mono, or reshape the libraries in any form you want. We provide a super-set. And, people can shape the Mono runtime using the Mono Linker tool, so we do not really need a compact version.
Q3b. What would be the absolute minimum footprint for the Mono runtime?
A3b. Oh, I just shut down my computer, and I had that information there... I'm going to take a guess that it is about 2.5MB of disk space. You could also try to get some numbers from Otee for their Unity iPhone runtime [vendor product page].
Q4. After Mono 2.0 was announced on Monday, I saw speculation in several Linux discussion sites that Mono is somehow a 'trojan horse' that, along with Novell's alliance with Microsoft, will somehow give Microsoft patent leverage over the Linux desktop. Would you care to respond?
A4.[Pauses] I'm surprised people were able to figure out our evil plot.
(Attendant Novell press relations rep interjects: "He's kidding! He's kidding!!")
The position of the Mono project has always been that we believe .Net includes a lot of innovation along with a good mix of well-known technology. So, if people found a patent infringement, we would take it out. If there's prior art, though, the patent is invalid. This is the way it is done in the open source world. A good example is Freetype. They discovered that they could not use a byte code interpreter for fonts, so they invented a different approach.
This kind of punditry is always light on details. We've grown used to this. Mono was criticized way before Novell acquired Ximian. There is an animosity toward "anything Microsoft," and it lowers the level of discourse that you can have.
I wish people focused on what the actual problems are. I am certainly against software patents. It is not only Microsoft that owns software patents, but hundreds of companies. But, I think Mono is singled out, and people give a free pass to lots of other projects.
Q5. Good response, thank you. One interesting Mono subproject seems to be Moonlight. I heard some people were able to watch Olympics coverage using Moonlight this summer.
A5. No, for the Olympics, they used Silverlight 2, and we only have Silverlight 1.0. I thought we might ship the first release of Moonlight by now, but with Mono 2.0 taking up all my cycles, we postponed it toward the end of the month. For Silverlight 2, we will have a preview early next year. There is still a lot of work to do.
Q6. What codecs does Moonlight use, and whose implementations are you using?
A6. I do not have a complete list here, but I know Moonlight 1.0 supports MP3, WMA, WMA-Pro, WMV-7,8,9, and the one everyone is using, VC1. The next version will add H.264, which you might know as "QuickTime." All of these codecs are patent-encumbered, and licensed by MPEGLA [vendor site], a kind of holding company for codec licenses. The implementation will be Microsoft's.
Q6b. Will free use of the codecs be limited to Novell SUSE users, then? In other words, are the Silverlight codecs part of Novell's licensing deal with Microsoft?
A6. No. Everybody will be able to use them, but they need to be downloaded from Microsoft. This has to do with licensing issues too complex to go into here.
Q6c. So, Microsoft's goal here is simply to make sure Silverlight is supported as widely as possible, so that [through its Silverlight multimedia production tools] it can better compete with [Adobe's] Flash [multimedia creation tools]?
That is my interpretation, yes.
Q7. What features are you most proud of in the Mono 2.0 release?
A7. One important feature that gets lost in the noise -- we have a full C## 3.0 implementation, not even a year later [than Microsoft shipped C## 3.0]. People say, 'You'll never be able to catch up,' but it wasn't that bad. The big new feature in C## 3.0 is LINQ [link], or Language Integrated Queries, which lets you use native language syntax for querying SQL or XML, for example.
Q8. So, now that Mono 2.0 is out the door, when can we expect to see Mono 3.0? And, what big features excite you in the next release?
A8. Mono 3.0 is going to come in exactly five quarters. We will be doing quarterly releases -- 2.2, 2.4, 2.6, and so on -- and 3.0 will hit around December of next year.
There is a large amount of innovation going on in Mono right now, that we have not talked much about, because Mono 2.0 has had its own halo and objective. So, we've delayed talking about some of the really exciting things.
Mono 3.0 will offer a lot of things unique to Mono, that will be highly advantageous to developers. Things helping with games, multimedia, provisioning, and live patching and debugging on running systems. The live patching is similar to Ruby, letting you make live fixes.
We will disclose more at Microsoft's PDC [Professional Developer's Conference] the week of Oct. 25 in Los Angeles. The PDCs are really one of the most interesting conferences. They are not regularly scheduled, but happen every time there's something major coming out that developers need to be made aware of.
Q8b. Can you offer any hits a little more specific?
I've already written about some things on my blog [link]. We'll have C## eval, which nobody else has. Java does not even have it. We've turned the compiler into a library. That means you can treat C## like a scripting language, and have the compiler dynamically generate code and run it. You take an initial performance hit only for parsing. This is uber-awesome, reaching awesomeness levels beyond what the typical human can take in a single day...
What else? In the days ahead, we are going to be working more closely with some vendors, for example on Wii and iPhone applications, and ports to XBox and Playstation's native OS, too.
Actually, we already support the Playstation, if you boot it to Linux. The Cell.net project is another of these fascinating projects around Mono; it can generate Mono code that uses all six SPUs [synergetic processing units], so your code can use all seven CPUs in the PS3. I'm just fascinated by all these hacks people have been doing with Mono...
Q9. Thanks for your time, Miguel. Before I let you go, I have to ask you what your Ximian cohort Nat Friedman is up to these days?
A9. Nat is still at Novell. He is working on a project around thin clients. They have already announced a product, and will be making a launch announcement in a couple of weeks. The project [SUSE Studio] has a nice set of web tools for building a custom Linux OS in under a minute. You can test-drive it over the Web. It can build a VMWare image, Xen virtual server image, or a live CD/DVD/USB key image containing your application and whatever Linux components you may need to support it.
Q-final. Thanks again, congratulations on the new Mono release, and thanks for all your work on GNOME!
A-final. You're welcome!
-- Henry Kingman
Do you have comments on this story?
NOTE: Please post your comments regarding our articles using the above link. Be sure to use this article's title as the "Subject" in your posts. Before you create a new thread, please check to see if a discussion thread is already running on the article you plan to comment on. Thanks!
(Click here for further information)