Novell has announced the official 1.0 release of Moonlight, an open source implementation of Microsoft's Silverlight rich Internet application framework. This release will make it possible for users of the Linux operating system to view content that is compatible with Silverlight 1.0.

The Moonlight project emerged in 2007, shortly after Microsoft unveiled Silverlight at the MIX conference. When Microsoft officially released Silverlight 1.0, the company announced plans to provide specifications and test suites to Novell in order to facilitate development of a Linux-compatible version. Moonlight has evolved significantly over the past year and is now ready for widespread use.

"Moonlight brings the benefits of Silverlight's popular multimedia content to Linux viewers," said lead Mono developer Miguel de Icaza in a statement. "This first release delivers on the goal of breaking down barriers to multimedia content and creating parity in the user's viewing experience regardless of whether the user is on Windows or Linux."

Moonlight is distributed as a Firefox plugin and can be downloaded from the official Moonlight web site. It supports 32-bit and 64-bit systems and has been tested against several Linux distributions, including openSUSE, Ubuntu, and Fedora. The installation process is simple and will be intuitive to users who know how to install Firefox add-ons.

Microsoft's proprietary multimedia codecs, which are used for streaming video content, are not bundled with the plugin. When the user visits a web page that requires the codecs, Moonlight will launch a codec installation utility that can automatically download the codec binaries from Microsoft and install them on the user's system.

I tested Moonlight with several web sites that use Silverlight. Although it works very well with Silverlight 1.0 content, many sites have already adopted 2.0, and some—including GUIMark's Silverlight 1.0 benchmark—use Silverlight detection mechanisms that don't properly recognize Moonlight. The Moonlight developers have already started implementing 2.0 support, and they expect to have a 2.0 alpha release ready next month. Unlike Moonlight 1.0, the 2.0 version will require Mono to provide support for C# and the dynamic language runtime.

I used Bubblemark to conduct benchmark tests comparing Moonlight and Flash. The results show that Moonlight's performance is reasonable, but not yet excellent. On my 2.6GHz quad core Mac Pro running openSUSE 11.1 with the latest version of Firefox, I got the following results:

Moonlight: 16 balls - 75 FPS 32 balls - 42 FPS

Flex: 16 balls - 80 FPS 32 balls - 77 FPS

DHTML: 16 balls - 85 FPS 32 balls - 73 FPS



These benchmarks are somewhat artificial, but they reflect some of the performance differences between the various technologies. Flash performance on Linux has traditionally been abysmal, but Adobe did a lot of optimization work for Flash 10. Moonlight has a little bit of catching up to do. The introduction of support for managed code in Moonlight 2.0 will boost performance considerably, and there is also some room for graphics optimization.

Although the current version of Moonlight has some limitations, it's a very good start, and it will provide a solid foundation for version 2.0. Novell's investment in Moonlight is already delivering tangible value to Linux users. For example, Moonlight was recently used to enable Linux users to watch the official video stream of Obama's presidential inauguration. When the 2.0 version is released, it could bring Linux users support for streaming from Netflix and other popular sites that use Silverlight technology.