Microsoft’s Flash-killer Silverlight steals the show at MIX07

Microsoft's new web application development technology was the star of the …

Yesterday, Microsoft revealed the latest alpha release of Silverlight, a development framework for interactive web application construction that leverages .NET development technologies. Silverlight makes it possible for developers to build web applications that incorporate rich media and elaborate interactive user interfaces. Silverlight client support is provided through a browser plugin that runs on both Windows and OS X and is compatible with Internet Explorer, Firefox, and Safari.

Silverlight user interfaces are described with XAML, an XML-based language that also provides support for vector graphics with gradients and translucency. The new Silverlight 1.1 alpha release includes .NET's Common Language Runtime. In addition to providing HTML DOM integration and support for rich media, Silverlight now also offers extensive support for multilanguage development. With the Microsoft's new Dynamic Language Runtime (DLR), Silverlight development can now be done with Python and other modern dynamic programming languages that are supported by the DLR.

Microsoft also announced the official release of Expression Studio, a complete suite of development tools designed to facilitate and simplify construction of Silverlight applications. Microsoft contends that Expression Studio will improve collaboration between designers and developers and reduce many of the challenges generally associated with constructing rich web applications.

Silverlight's emphasis on media delivery and rich interactive interfaces puts it squarely in competition with Adobe technologies like Flash, Flex, and Apollo. Unlike Flash and Flex, which emit binary blobs that are embedded as rectangles in web pages, Silverlight can dynamically load XML at runtime, which is far more consistent with conventional web development and much more conducive to programmatic manipulation and indexing. Silverlight's .NET integration ensures the availability of a wide assortment of preexisting programming libraries, and also implies support for a much broader assortment of programming languages, most of which are vastly superior to Flash's ActionScript.

A step forward, a step back

For web application development, the underlying concepts behind Silverlight definitely represent a step in the right direction. The client runtime is relatively compact and the demo applications (one of which is a fully-functional chess game) are somewhat impressive. The ability to use multiple languages, particularly mainstream dynamic languages like Python, is immensely compelling for those of us who have suffered with ActionScript during Flash development projects.

Despite the advantages offered by Silverlight, the framework still has some significant weaknesses. The biggest failing of Silverlight resides in the fact that it doesn't leverage existing standards. Rather than using the W3C's SVG standard for vector graphics, Microsoft started from scratch and created its own XML-based vector graphics subset for XAML that is structurally similar to SVG. The SVG standard is widely used and supported by a multitude of applications and development technologies. By building a completely independent XML-based language for vector graphics, Microsoft limits the extent to which XAML developers can use or adapt existing third-party tools and technologies that are designed to work with SVG.

Although Microsoft's commitment to using XML is commendable, the company's perpetual unwillingness (or perhaps inability) to build on existing standards is deeply detrimental to users and developers. Internet Explorer 7 is still the only major web browser that has no native support for SVG. By neglecting to use the SVG standard in Silverlight and XAML in favor of a limited and incompatible facsimile, Microsoft has once again needlessly ignored what could have been an opportunity to empower developers and help Internet Explorer catch up with browsers that are more functional and standards-compliant.

Some cite lack of Linux support as another aspect of Silverlight that could deter adoption. Although I think that Linux support will ultimately be needed for Silverlight to achieve the ubiquity of Flash, I think that a Linux-based browser plugin for Silverlight should be created by the open-source community in collaboration with Microsoft. Mono developer Miguel de Icaza has already expressed interest in building an open-source Linux-compatible Silverlight implementation. In fact, de Icaza admits that he is "kind of happy" that Microsoft didn't make a Linux-based Silverlight port, because he thinks that "implementing [Silverlight] sounds incredibly fun and interesting." Since Novell, the company that sponsors Mono, has a close relationship with Microsoft, de Icaza and other Mono developers are well-positioned to build a Linux-based Silverlight browser plugin.

Silverlight has a lot of potential as a platform for web application development and could blur the distinction between web-based and desktop software. Although Silverlight will undoubtedly attract a lot of developers, I personally think that Microsoft's isolationist attitude and the resulting insular nature of Silverlight detract from the long-term value of the technology. Silverlight is definitely a practical and useful solution for the here and now, and it beats Flash in many respects, but standards-based solutions are better equipped to evolve with the Internet. With sufficient support from Microsoft's competitors, open technologies like XBL, XUL, and SVG could provide strong competition for Silverlight, a point that surely won't be ignored by Adobe.