Health Check: Moonlight
by Richard Hillesley
Moonlight was written in three weeks in June of 2007 by a group of Mono developers working round the clock to fulfil a promise made by Miguel de Icaza. Their aim: to demonstrate Silverlight running on Linux at Microsoft's ReMIX conference show in Paris in the summer of that year.
The developers produced some 40,000 lines of code in 21 days just to show it could be done, and de Icaza was able to give a public demonstration of the software six months ahead of schedule. Despite such heroics Moonlight continues to face resistance from the wider developer community.
Both Mono and Moonlight are based on technologies developed by Microsoft to compete with and to replace technologies developed elsewhere. Mono is an open source re-implementation of the .NET framework which was intended to displace Java. Moonlight is an open source re-implementation of Silverlight which is intended to replace Flash as the popular vehicle for online advertising and video.
Moonlight 2, now over 460,000 lines of code and compatible with Silverlight 2, was released last December, as the "result of love and passion to bring the Silverlight runtime to Linux." The roadmap for Moonlight/Silverlight has been sketched out for the next two stages for development. In the words of de Icaza, "Silverlight 4 will enable a whole new class of cross-platform .NET application development to take place. Like nothing we have seen before."
Lost in translation
The problem with Moonlight (and Mono) for most advocates of free software is quite simple. Silverlight/Moonlight is intended to replace existing Web technology with another set of proprietary codecs and protocols, and Moonlight, like Mono, is patent encumbered. Patents and copyrights can be applied to the underlying technologies and to the codecs which are used to translate bits and bytes into viewable media. Patents, "de facto standards", closed APIs and trade secrets embedded in codecs, protocols and file formats are an impediment to innovation, interoperability, and the ability to translate words, music or pictures into meaningful images.
This assessment of Mono and Moonlight is compounded by Microsoft's record of patent threats against the Linux kernel, and is perhaps affirmed by the action against TomTom for alleged infringement of FAT patents. Microsoft has shown a readiness to attack free and open source software where it hurts, and the use of Mono and Moonlight has the potential to leave Linux and other free software vulnerable to attack, irrespective of the good intentions of developers.
From this point of view, a re-implementation of C# or Silverlight is acceptable, and even desirable, but not where it brings risk to the greater body of code that constitutes a GNU/Linux distribution. As Richard Stallman expressed it when talking about Mono:
"I have always supported the development of free platforms for C#, just as I've supported the development of free platforms for any language that users use. I also wouldn't argue that people should not use C# with a free platform for secondary applications," but "making GNOME depend on Mono is running a grave risk, and a grave mistake."
These misgivings apply equally to Moonlight, exacerbated by de Icaza's hopes and dreams that Moonlight, like Mono, will become the universal framework for the development of desktop applications on Linux, Windows and MacOS.