Game Over For The Mono Project? May 24, 2011Posted by Peter Varhol in Software development, Software platforms, Strategy.
When Microsoft introduced the .NET Framework a decade ago, it was motivated to make it a recognized standard. The specifications for the Common Language Interface (CLI) and other .NET components and languages have been published as standards by ECMA (which once stood for the European Computer Manufacturers’ Association, but now just stands alone), and are freely available for download and study.
It was only a matter of time before a group of programmers took these specifications and tried building an independent version of the .NET Framework and CLI. That’s exactly what Miguel de Icaza did with the Mono Project, an effort to create an open source version of the Framework. One of its goals was to run on alternative software platforms such as Linux.
My friends at Mainsoft (now called Harmon.ie) also used many Mono .NET classes as a part of its dynamic compilation to Java from .NET source code.
Over the years, de Icaza and his team managed to reproduce much of the specification, although not surprisingly they tended to run a couple of years behind the actual Microsoft releases. Novell used Mono as the foundation for some of its networking utilities, but otherwise didn’t promote it effectively. More recently, Mono has become a platform for mobile development.
With the acquisition of Novell by Attachmate, and its subsequent cancellation of the Mono Project, de Icaza is in a bit of a bind. Mono was bought and paid for by Novell, and Novell bought and paid for by Attachmate, and he can’t use that intellectual property without its permission.
I’m guessing that permission isn’t forthcoming. My friend Alan Zeichick says that because Attachmate receives Microsoft support, this was done with Microsoft’s encouragement. That may be the case, but corporate decisions can be made for any reason, or no reason.
It’s worthwhile noting that Microsoft also has an open source (its term was shared source; the license wouldn’t pass open source muster) version of the CLI known as Rotor, or more recently the Shared Source Common Language Infrastructure. Rotor was popular among early .NET programmers hoping to build their own unique foundation classes for specific target applications, but it was difficult to work with. The last release of Rotor was in 2006.
de Icaza is forming a company to reconstitute the development team and reproduce the Mono Project. That’s a daunting technical and legal task, the legal portion arising because it could be argued that the Mono development team would almost certainly make use of Attachmate intellectual property in attempting to recreate its past work.
I wish de Icaza well. Microsoft has shown no interest in running .NET on platforms other than Windows, and its publishing of the .NET specifications theoretically opens the door for others to do so. The technical and business realities of working with Microsoft technologies may intrude, but this sort of innovation can help the software industry as a whole.