A couple of things.
Panel at Microsoft's Mix 07
Rob is collecting questions for the panel. If you have some feedback, post on his blog.
Silverlight, Flash and open source alternatives
Microsoft renamed their WPF/E rendering engine "Silverlight".
Silverlight is basically:
- An object oriented canvas, this canvas can be controlled trough the DOM by the containing web page.
- The contents of the Canvas can be preloaded with a XAML-based description. The XAML supported is a subset of the full WPF/Avalon supported by .NET 3.0.
- It supports video playback using the highly proprietary VC-1 formats.
- Silverlight is cross platform in the "Windows and Apple are supported" way, no support for Linux has been announced. So it is even more limiting than Flash.
Silverlight has one thing going on for it, the file format to populate it can be trivially generated by web developers, so it will be easy for people to create cute controls and generate those on the flight.
The major difference in my opinion between what-ng's <canvas> tag and Silverlight is that Silverlight includes video playback support, and I can imagine that Microsoft will try to convince content providers to switch from Flash or their existing embedded windows media experiences to Silverlight.
As a Linux/BSD user, this might pose another setback for our desktop. For years video playback on Linux has been a pain due to the lack of codecs for the various proprietary formats (Considering that even on Windows WMA/WMV playback is a random experience). This all changed with Google Video and YouTube.
Google Video and YouTube popularized the use of Flash for delivering video and it quickly became the norm for video delivery. This opened the doors to the Linux desktop users to watch video content just like everyone else and the pain had been mostly eliminated.
swfdec open source Flash player.
Although Flash is not open source and it is not available on every Linux platform at least those of us using x86/x86-64 systems could watch those videos (and in addition, there is a project that is making great progress).
Reimplementing most of Silverlight is trivial but the difficult bit is getting the audio/video decoding in place (I will not give the Ximian crowd the pleasure of saying "its a weekend hack").
Lacking a viable open source-based competitor today for rich media delivery on the web and given the current state of both Flash and Silverlight, it is in open source's best interest to ensure that Flash gets ahead of the competition.
In my opinion, Flash needs a couple of things to stay ahead:
- A text-based format to populating the flash contents, either from a JSON representation or an XML file.
- An open specification that allows for third-party implementations. My understanding is that today's Flash specification is semi-open.
And of course, I think that Flash should be open sourced, but that is a long shot.
A completely open alternative would be ideal, a combination of:
- OGG Video and Audio objects as part of the what-wg specification, to complement the existing <canvas> tag.
- Tools to convert popular design formats like XAML and whatever Flash uses into Canvas tags.
It does not seem like a far shot, but it would require cross-browser support and would prevent us from being locked into either proprietary stacks.
Opening up Microsoft
Although there are some groups inside Microsoft that seem to be opening up, pushing open standards, and using licenses like the MsPl (for the Ajax client library for example).
Scott Guthrie, the star from ASP.NET is now in charge of .NET at Mircosoft. If there is anyone at Microsoft that understands the value of open standards and becoming more standards compliant it is him. So there are good possibilities on the horizon.
But it seems that larger company considerations like the use of VC-1 will prevent Silverlight from ever using unencumbered technologies.
This reminds me of that movie In Good Company (with Topher Grace and Scarlett Johansson) where decisions in the company are made to leverage synergy.
I look forward to discuss this at Mix 07.