Friday, May 21, 2004
There is a battle taking place in the Linux OSS community about which high-level programming language should be used for developing the next generation of Linux applications. While people are generally in agreement that the system should be a language with garbage collection, some level of dynamism, and general resistance to various security risks such as buffer overruns, there are many possible choices. On one side of the debate, we have the Ximian folks, now at Novell. They have developed Mono, an open-source clone of Microsoft's .Net platform, including a C# compiler, runtime libraries, and virtual machine. On the other side, you have the folks at Red Hat, who are very worried about Microsoft's intellectual property rights with respect to .Net, and therefore Mono.
To their credit, the Ximian guys seem to have done some really nice development here. Mono is starting to be used in a few open source projects and Novell wants to develop all new applications in C#/Mono rather than C/C++.
The trouble is that Microsoft seems to have some patents that cover various portions of the .Net system. Microsoft has stated that they will offer these patents under reasonable and non-discriminatory (RAND) license terms. This is required by ECMA as a part of the standardization work on .Net that Microsoft is pushing. The trouble is, RAND doesn't necessarily mean free, and it doesn't necessarily mean that you can just use the technology. You may still have to engage with Microsoft to hash out the legal terms.
The folks at Red Hat are, rightfully, in my opinion, concerned that Microsoft hasn't stated categorically what the RAND terms are and that Microsoft is obviously not an open source friend. Red Hat fears that if too much development is done on open source projects with Mono before Microsoft clarifies its position on the .Net patent licensing issue, Microsoft could announce terms that while "RAND" are not amenable to FOSS development. Something that is RAND and acceptable to a company like Novell that has a whole legal staff is not necessarily acceptable to a solo developer who finds it difficult to negotiate the Microsoft bureaucracy. As a result, such terms would disrupt a whole bunch of projects and could jeopardize some important pieces of development. Red Hat has suggested using Java or an open source clone based on GCJ and Classpath instead of Mono. And then there is always Python, which Red Hat already uses extensively.
My hunch is that the guys at Microsoft are laughing like crazy at this controversy and are probably stalling deliberately. Why clarify things when you can turn the two leading Linux distributions upside down and against one another?
Of course, my own feeling is, why go with any of those. Lisp has been around for more than enough time for any intellectual property rights to expire, and it's an international standard. It meets all the criteria. The only thing missing is a set of good Gnome bindings, but that could be easily overcome faster than continued development of Mono.
In any case, this will be interesting to watch...
Links to this post: