A software libre implementation of Microsoft's .NET broke cover today, with GNOME lead Miguel de Icaza promising to have .NET code ready by the middle of next year. Ximian's Mono project (that's Spanish for monkey) consists of three parts: a Linux C# compiler, a virtual machine, and the common language runtime, so Linux developers will be able to create and deploy .NET apps on Linux in languages other than C#. The work will be released under the GNU GPL or LGPL and collaboration is encouraged.
The Microsoft SDK will be supported, according to the Mono FAQ, and the project uses and promises to extend GNOME libraries. Although Ximian's announcement refers to Linux throughout, and specifically mentions a Win32 (on x86) versions, since it's open source, it'll run on any GNOME- (or glibc)-friendly platform: which these days includes the free BSDs and almost every Unix too. So Sun Microsystems, which is committed to making GNOME the default UI for Solaris, will find itself hosting a Microsoft production platform for the first time. Has anyone told Scott?
Timescales are deliberately open ended, but there's talk of getting the Win32 implementation of the C# compiler up and running by the end of the year.
"A rough estimate is that we might be able to run our C# compiler on Linux by the end of the year. That means running the Windows Executable generated by a Microsoft .NET compiler on the Linux platform."
Future suggestions include a CORBA bridge, a JXTA protocol, and a mail API. Ximian has yet to decide whether the project will be hosted on GNOME mirrors or at SourceForge.
Ximian stresses that this is way more ambitious than the joint development agreement between the Beast itself and Corel to port parts of .NET to FreeBSD announced ten days ago. That doesn't cover GUI apps or allow FreeBSD to host the database, says Ximian.
Ximian called in the great and the good to vouch for the project: Perens, O'Reilly and Michael Tiemann of Cygnus fame (now Red Hat) all endorse Mono in the initial press release.
In some ways there isn't a philosophical difference between Mono, and say, Cygnus supporting Win32 as one of many target platforms for its gcc compiler, which it's done for many years. Nor is the practice of chasing the tail-lights new.
But politically, it's a landmark for software libre: giving its blessing to a controversial platform that's heavily vertically integrated. The technical infrastructure - the language and schemas - are 'open' - but .NET services in Microsoft's preferred implementations so far (HailStorm) are driven through the Beast's own Passport authentication mechanism, and no one else is allowed to play. If it's successful, Mono will allow .NET apps to be written without needing to drive through the Redmond tollgate.
We'll update this with words from Miguel himself in a few minutes. ®