After 20 days of "intense" programming, Novell's Mono development team has successfully produced a functioning prototype of Moonlight, an open-source Mono-based implementation of Microsoft's Silverlight rich-media application development framework. In a blog entry, lead Mono developer Miguel de Icaza describes how his small team of globally dispersed developers managed to conjure up their entire Moonlight prototype (almost 25,000 lines of C++ code and over 13,000 lines of C# code) in only 20 days by giving up weekends and working 12 to 16 hours per day in a remarkably epic "hackathon."
A week after Microsoft demonstrated Silverlight at MIX 07 in Vegas, de Icaza announced that the Mono team would build an open source Silverlight implementation and stated that a Linux-based Silverlight browser-plugin would be available for download by the end of the year. At the end of May, de Icaza decided to accelerate the development process and move ahead as quickly as possible so that the Mono team could demonstrate a functioning Moonlight prototype at the Paris MIX 07 event scheduled for this week.
Early in the project, de Icaza decided to use native code rather than managed code. "My original plan was to write the low-level rendering engine in C and expose some sort of 'scene' API that the managed world would control," said de Icaza "With only a few primitives and a handful of operations on those primitives this idea sounded passable."
The developers eventually decided to switch to C++ as additional needs arose. As de Icaza describes in his blog entry, much additional work had to be done to implement and refine the managed downloader, rendering system, JavaScript bridge, C# bindings, event system, browser plug-in, and numerous other components.
How did the developers manage to endure the insane schedule and long hours? For those involved in the project, it was a prodigious labor of love. To them, it was clearly more than just another job, and much personal time was used to bring the current prototype to fruition. "I think I speak for all of us when I say that it was a blast working on this project," says Moonlight contributor Jeffrey Stedfast in a blog entry. "I know that, for myself, even after heading home from work at around 8 or 9pm every night, I'd walk in the door, grab a quick bite to eat and immediately sit down in front of my computer and begin hacking on it again and I'd almost always find at least Jackson and Toshok on IRC hacking on it too."