March 14, 2003

Whither Mono?

An open-source effort worth watching

In July 2001, I attended a historic session on .Net at the O'Reilly Open Source Convention in San Diego. David Stutz, who recently and spectacularly left Microsoft, spoke first. He talked about the ECMA standards for C# and the Common Language Infrastructure, of which Microsoft's .Net runtime, framework, and languages are commercial implementations. (Those ECMA standards were ratified in December 2001; ISO ratification is now imminent as well.) Then he introduced Rotor, the "shared-source" implementation of those standards -- and the project Stutz managed until his departure.

Next up was Ximian's Miguel de Icaza to talk about Mono, which is an open-source implementation of those standards that also includes elements of the .Net Framework (ADO. Net, ASP .Net, WinForms) beyond those specified in the standardized core.

Fast-forward to the present. I'm testing a beta of the new Version 3 of OpenLink Software's Virtuoso, a relational/object/XML database that integrates with the .Net Framework on Windows and with Mono on Linux. Given this setup, a developer on either platform can invoke C# methods from SQL statements and stored procedures, use the database to store and retrieve C# objects, and host ASP .Net pages directly on top of the database. I'll have more to say about Virtuoso in an upcoming review, but its use of Mono suggests possibilities -- and raises questions -- that merit separate consideration.

Mono is a work in progress. The C# compiler and runtime engine have been available for some time. As that work continues, the class libraries are being fleshed out in parallel. They're still incomplete, but if you search the Net for C# examples there's a pretty good chance that Mono can compile and run them. Although many were skeptical that open-source developers would want to implement what is, after all, a Microsoft specification, the Mono project (http://www.go-mono.com) appears healthy. The pace of releases has quickened, and de Icaza -- whose leadership of the Gnome effort made him an open-source hero -- is attracting a growing band of contributors.

Imagine a future in which open-source development embraces a .Net platform that meets four requirements: managed code, rich class libraries, a language-neutral runtime, and the blessings of ECMA and ISO. Meanwhile Java, we'll assume, continues to meet the first two requirements, to fail the third (by my definition of "language-neutral"), and to fail the fourth. In this scenario, software built with Microsoft tools for Windows deployment could also be deployed on Linux or Mac OS X. Subtract some amount from the Windows OS column on Redmond's ledger, but add some amount to the tools and applications columns. Software developed with open-source tools for Linux deployment could also run natively on Windows. Subtract from tools and applications, add to Windows.

Sign up to receive InfoWorld Resource Alerts

Subscribe to the Developer World Newsletter

The one-stop resource center for IT professionals.

©1994-2009 Infoworld, Inc.