Microsoft should get serious on Moonlight
The way to Adobe's heart
Web bling tone Adobe Systems' chief financial officer Mark Garrett has said Silverlight is fizzling. Microsoft's director of client platform evangelism Tim Sneath has said it's fizzing. So the RIA war continues.
One intriguing element is that both Flash and Silverlight have an open-source aspect. Adobe's efforts include publishing the SWF file format, the Tamarin scripting engine, the Action Message Format (AMF) protocol specification, and the Flex SDK, for compiling XML and ActionScript to SWF. The Flash player and multimedia codecs are not open source, and this is unlikely to change.
Open source is not the same as open, collaborative development, a distinction that was exposed when the Flex development community protested about a feature of the forthcoming 4.0 release of the SDK. Adobe had announced that controls such as buttons would be disambiguated by a new Fx prefix, so <button> would be an old button, and <FxButton> a new one.
The community rebelled, observing that this is what XML namespaces are for, and expressing dissatisfaction not only with the decision but also with the entire development process.
Flex developer Simeon Batemen said: "Right now, I don't feel we get any voice. And while Adobe has committed to opening up this process, how do make this change a priority for them? Every day decisions are being made behind closed doors... What kind of action is required to make Adobe's top priority making good on the promise of an open-source framework?"
A petition was launched, forks threatened, and a hasty online meeting convened.
Last week, Adobe backed down. Flex product manager Matt Chotin said: "We will plan on removing the Fx prefix and implementing the multiple namespace solution". It is a defining moment for Adobe and open source, yet the structural truth which caused this incident - that Adobe alone decides the content and direction of its products - remains.
This is a thought to ponder as Adobe continues to promote its Open Screen Project, which arguably should be called the Flash Screen Project, aimed at bringing the Flash runtime to multiple devices. At last week's Mobile World Congress in Barcelona Adobe announced Palm as a new member, forming an alliance whose most notable absentee is Apple.
Microsoft will no doubt do its own thing with Silverlight mobile, but that does not prevent Windows Mobile vendors from installing Flash. Adobe also announced the Flash distributable player and Mobile Packager though only a limited number of Windows Mobile and Nokia S60 devices are currently supported.
The idea is that you can both install applications and update the runtime over the air. The focus is currently on multimedia and games, but it will also be an alternative to Java for cross-platform mobile applications.
I put the Mobile Packager through its paces, targeting a Windows Mobile Smartphone. The runtime is Flash Lite 3.1, which supports only ActionScript 2.0, rather than the much-improved ActionScript 3.0 found in the latest desktop player. Another limitation is that you cannot use FlexBuilder to create your SWF, but only the Flash IDE.
Still, after downloading updates to Adobe's Creative Suite 4, I was soon up and running. I compiled a SWF, then used the Mobile Packager to create a CAB - a standard Microsoft compressed setup for Windows mobile - copied it to the Smartphone and installed it on the device. The setup added a shortcut to the Start menu and the application ran first time. Good work; but less powerful than Microsoft's compact framework for Windows devices, and much slower than native code.
What about Silverlight and open source? Here, the big announcement last week was the release of Moonlight 1.0, Novell's open source implementation for Linux. This project has come together with impressive speed, especially considering that project leader Miguel de Icaza once dismissed Microsoft's Avalon for Windows Vista (which also uses XAML for its layout) as "the J2EE of GUI APIs".
Old Silverlight content runs well in Moonlight 1.0 on Linux
There are a couple of caveats. One is that the current release is pure native code, with no .NET runtime. This makes it mainly useful for multimedia, since most Silverlight applications target version 2.0, which does support .NET code.
Another caveat is that multimedia playback depends on Microsoft's media codecs, which are not open source and which come as a separate download, complete with a stern warning that they are "only for use with Novell's Moonlight 1.0 running in an internet browser".
I tried Moonlight 1.0 on Ubuntu, using the official Silverlight showcase page as a test. Unfortunately the user experience on Linux is poor if you go to a site like this.
If Microsoft is serious about Linux, it needs to make Moonlight more visible. The prompt to install Silverlight takes you to a page that says your system "may not be supported". I went directly to the Moonlight page instead. Installation was smooth, using Firefox, and I returned to the Silverlight samples.
Here, the main issue is that most of examples target Silverlight 2.0. Older 1.0 samples worked fine. Moonlight 1.0 enables Microsoft to tick the Linux box for multimedia, but for application developers this will not be interesting until Moonlight 2.0 appears, promised for September 2009. ®