What would you accomplish in a 21-day stretch? For Miguel de Icaza of Novell, it was banging out an open source clone of Silverlight, Microsoft's rich Internet application development framework.
de Icaza is the project leader for the Mono initiative, an open source version of .NET and a vice president at Novell. Since Silverlight is based on .NET, much of the work was already done for him.
"My objective with this thing is we want Linux users to be first class citizens when it comes to accessing content on the Internet, whether it's Silverlight or Flash or JavaFX," di Icaza told internetnews.com. "Microsoft indicated it didn't have immediate plans to do so, so we went and did it ourselves."
de Icaza decided to whip up an open source version of Silverlight for Linux after it was announced at Microsoft's MIX 07 show. "It wasn't too complicated," he said. "That was what was good about Silverlight. If you already had the .NET framework running, it was not difficult to implement Silverlight."
The DLR is released under Microsoft's aptly-named Permissive License, the closest Microsoft comes to open source. Thanks to the deal between Novell and Microsoft struck last November, de Icaza believes that Mono is not in Microsoft's legal cross hairs.
"Microsoft is focused on ensuring Silverlight provides the broadest reach that our customers demand. At this time, we are focused on delivering Silverlight for Windows and Macintosh desktops, but based on customer feedback and demand we are open to exploring other areas," said a Microsoft spokesperson in an e-mailed statement.
de Icaza said that Moonlight is about "80 percent" feature complete with what is out there for Silverlight, which is itself incomplete. Silverlight 1.0 is currently in beta and Silverlight 1.1 is in alpha, so both products have a way to go, to say nothing of Moonlight.
While de Icaza waits for the final code, his team plans to analyze the code base and tune it for performance. Some areas, like the 3D rendering, were found to be rather inefficient, which can happen when you write code at top speed.
"It's like the books tell you, it's one thing to have a program, it's another thing to have a product," he said. "Having a final product is typically nine times the effort to get your product up and running. So I would say there is work to do to get this running in an automatic way."