Miguel de Icaza has told us why he is leading an open source project to implement Microsoft's .NET development framework on Linux. Mono was unveiled earlier today, and promises to provide an alternative toolchain and execution environment for .NET developers. It'll run on Linux and Windows first, but should be portable to almost any platform. It's currently being developed on Solaris.
So why bless the Beast?
"I'm not interested in ostracising a technology because a company is ugly," he told us today. "I'm interested in finding the best technology and implementing it so developers can write nice applications."
It's just that .NET provides most of the answers in an acceptable, standards-blessed (it's going through the ECMA process right now) form, he says:-
".NET solves a number of problems we've been trying to solve in GNOME," he told us today. "Instead of wasting our time trying to create a new standard we're embracing .NET and extending it for our own purposes."
Problems such as avoiding code duplication, for example. "Once an API is exposed - every time we add a new Gnome API, we have to wrap it in Python and Perl and Pascal and Objective C. So one problem that .NET solves is that we have to define class libraries once." Garbage collection is another, he says. The Unix API has grown messy, and .NET provides a clean interface: "It's basically starting from a clean slate"
For a project that makes a core part of .NET open source, Miguel said he didn't want to confuse it with the many other projects emerging from Redmond, some pretty nebulous, but all sprinkled with .NET marketing dust.
".NET is a company wide initiative. It means too many things - different things to different people. I'm talking about the CLI, the class library and the C# programming language," he told us.
We wondered if CORBA itself didn't provide a basis for building open source web services. GNOME has stuck by CORBA, even after KDE dropped it for performance reasons, and we noted that one of the suggested Mono projects was to build a CORBA bridge. Horses for courses, he suggested, and Mono was really dealing with anything remotely.
de Icaza says he got the religion December last year, and mocked up prototypes for Mono around February.
The target is to have a self-hosting compiler by the end of the year, "so you can do everything in Linux without Windows", and the GUI and server portions by the middle of next year. Code for the core of the CLR (Common Language Runtime) that implements a common type system, is available. "We have a disassembler, the first step is to add an interpreter, then a Just-in-Time compiler hten an optimizer."
He's already talked to ECMA, he says, "and they seemed to understand what we wanted to do really well." It may even lead to open source representatives sitting on the language committee. Which we'd have thought would be a pre-requisite, to watch for any suspicious changes to the spec being bounced through.
And as our battery was going flat, he was about to make contact with Microsoft for the first time. We'll have time for a longer discussion later in the week, so if you have questions that aren't addressed in the Mono FAQ, mail us them here. ®