RealTime IT News

Linux Clone of Microsoft's Silverlight in Beta

Linux users are getting closer to full Microsoft Silverlight functionality to view rich media applications on the Web. The Novell-sponsored Moonlight project today released its first beta of its Linux implementation of Microsoft's Silverlight media framework.

The beta release is considered to be feature complete and is the predecessor to a generally available Moonlight 1.0 release currently targeted for January of 2009.

The Moonlight 1.0 release is intended to provide give Linux users feature parity with Microsoft's Silverlight 1.0. The project is designed to help Linux users access more content and Microsoft to deliver content to non-Windows users.

Although Silverlight is seen as a competitor to Adobe's Flash-based technologies, Novell officials denied any need to compete with Adobe.

"We're an equal opportunity language lover organization," said Miguel de Icaza, vice president of platform development at Novell and leader of the Moonlight project.

"To us it's more a matter of making sure that Linux remains a first class citizen on the Web. It's not a [question of whether] we like Flash more than Silverlight. We wanted to make sure that Linux users wouldn't be left out from any interesting Web content," he told InternetNews.com.

De Icaza and his team first began their Linux clone of Microsoft's Silverlight in June of 2007. The first public release hit in May of 2008.

The Novell-led Moonlight effort has benefited from a direct collaboration with Microsoft as part the companies' joint interoperability efforts and partnership.

De Icaza's team started with the publicly available documentation for Silverlight in order to build Moonlight. Microsoft also made developers available to the Moonlight team in order to answer questions that were not answered by the documentation.

Turns out that the public documentation was pretty good so Novell didn't need too much help on that end of development.

"The other piece is we compiled Microsoft's media codecs that they use for Windows," De Icaza explained. "So we had to take their code under NDA terms and then we compiled that stuff for Linux and that's what allows us to give people the same codecs for video and audio that people are using on Windows."

The Windows media codecs are not open source, but are being made available to Linux users without cost. De Icaza commented that Microsoft deals with all the patent issues for the relevant patent holders on licensing issues. The Microsoft Media Pack of codecs which is available through the Moonlight Beta to Linux users provides fully licensed versions of the media codecs used by Silverlight for free.

De Icaza argued that if he were to try and create fully open source codecs, he would be obligated to negotiate licensing terms on the patents which would be a difficult task.

Moonlight 1.0 is intended to deliver compatibility with Silverlight 1.0 media and provides some features from the Silverlight 2.0 specification as well. Silverlight 2.0 officially became available from Microsoft in October.

"Although we're calling this Moonlight 1.0, our media stack is actually the Silverlight 2.0 media stack so it has almost every feature from Silverlight 2.0 media stack," De Icaza claimed. "So it will support things like adaptive streaming."

Adaptive streaming is a feature whereby the end user gets a variable rate for their video stream based on their current network traffic and bandwidth. The basic idea is to ensure complete video delivery to end users without delays.

In terms of fleshing out the rest of Moonlight to match up with Silverlight 2.0, De Icaza noted that Microsoft is making the effort easier for Novell and others by open sourcing a number of pieces of code. By open sourcing some Silverlight components De Icaza noted that Novell doesn't have to go and build them but can just use Microsoft code itself.

Among the Microsoft open sourced code that Moonlight will use are Silverlight controls, the dynamic language runtime and all of the dymanic languages that you can run in the browser like IronPython.

The browser plays a key role in how Novell is delivering Silverlight compatibility to Linux users. For the Beta release Novell has built a Mozilla Firefox extension for Moonlight that lets users play Silverlight content within the browser. The Moonlight extension currently supports Firefox 2 and 3 with a proof of concept being built for Opera. De Icaza noted that he plans on a WebKit version as well which would work for Apple Safari and Google Chrome users as well.

While the web browser is a key delivery mechanism for Moonlight and Silverlight, De Icaza is also excited about the possibilities for the desktop as well. Similar to the way that Adobe AIR bring Flash applications to the desktop, De Icaza's Moonlight team is working on something called 'desklets' that would bring Silverlight applications to the desktop.

The full desktop vision however won't be realized until Moonlight 2.0 is out which is currently targeted for September of 2009. De Icaza also has is keen on the next version of Silverlight which Microsoft has not yet officially released.

"I've been keeping up with rumors on Silverlight 3 and - we're going to Microsoft in a week to find out what's going on, " De Icaza said. "If the rumors are true will be a very interesting year."