Biz & IT —

Silverlight 5 released; will there be a Silverlight 6?

Microsoft has released Silverlight 5, reigniting speculation about the future …

Silverlight 5 released; will there be a Silverlight 6?

Microsoft has released version 5 of its Silverlight browser plugin and runtime environment. Among other new features, the 7-12MB download gives Silverlight developers a 3D API based on Direct3D, PostScript printing, hardware-accelerated H.264 video, and the ability to create "trusted" in-browser applications that can escape Silverlight's usual sandbox—something that previously required an out-of-browser application.

The new version is available for Windows, where it supports Internet Explorer 7 or higher, Firefox 3.6 or higher, and Chrome 12 or higher, and Mac OS X, where it supports Firefox 3.6 or higher and Safari 4 or higher. For the first time, the plugin also has a 64-bit Windows version, allowing Silverlight to run in 64-bit Internet Explorer.

In spite of the new release, Silverlight developers are concerned about the future of the platform. Microsoft has said nothing about Silverlight 6, and with the company's continued promotion of HTML5 at the expense of Silverlight—not to mention the news that the Metro-style, touch-friendly Internet Explorer 10 in Windows 8 won't support plug-ins, including Silverlight—the community is uncertain about what the future holds.

WPF/E

Silverlight's role was once much clearer. In 2006, Microsoft released WPF (Windows Presentation Foundation), a .NET library for producing GUI applications. It used Direct3D acceleration, vector graphics, and used an XML-based format named XAML for describing user interfaces. To complement the Windows-only WPF, Microsoft produced WPF/E—"WPF Everywhere"—a cross-platform subset of WPF and .NET that could run on non-Windows systems. In 2007, the first version of WPF/E was released, and it was given the name Silverlight.

Silverlight was a browser plug-in, and as such, it was subject to various restrictions. For example, Silverlight programs couldn't access the registry or the filesystem, for both security and cross-platform portability reasons.

This original conception of Silverlight was clear and unambiguous. If you wanted cross-platform, browser-based delivery, you used Silverlight. If you wanted the full power of the Windows platform, you used WPF and .NET. Each had a well-defined niche. The two were programmatically very similar, making migration from one to the other simple (moreso in the Silverlight-to-WPF direction than the other way round).

But that clarity has long since disappeared. Silverlight for most, possibly all, of its existence was never quite the WPF/E it was supposed to be. Although it was almost a subset of WPF/.NET, it wasn't exactly a subset. Silverlight introduced certain new features and new ways of doing things that WPF lacked: over the years, the two have played leapfrog with each other.

Silverlight has also lost its cross-platform credentials. Although still available for both Windows and Mac OS X, the functionality on the two platforms is quite different. The new 3D API in Silverlight 5, for example, only runs on Windows, because it's tightly wed to Direct3D. Silverlight has also burst out of its browser-based sandbox; it supports "out-of-browser" applications, and it supports "full-trust" (non-sandboxed) applications. Using Silverlight for out-of-browser applications is positively perverse: this is precisely what .NET and WPF are for.

The end of the plug-in

And in-browser, Microsoft is now promoting HTML5 as the Right Way to develop applications. Plug-ins, including Silverlight, are no longer cool, and soon, they'll be forbidden completely.

On top of all this, one has to add another couple of platforms that are called Silverlight but aren't really. The first of these is Windows Phone. Windows Phone's development environment is called Silverlight. Conceptually, it's very similar to Silverlight 5, but has numerous differences due to Windows Phone's unique user interface.

The second of these is Xbox 360. This one is a great deal more mysterious. The latest Xbox 360 update includes a wide range of media streaming features and a kind of application store. These applications are probably built with Silverlight, but there's no official confirmation of a Silverlight version for Xbox. There have been job advertisements that mention Silverlight for Xbox, and the latest Silverlight 5 documentation makes reference to Silverlight for Xbox, so it almost certainly exists, and it probably has the codename Lakeview. And just like Windows Phone's Silverlight, the Xbox's Silverlight is similar to, but different from, the actual Silverlight 5 platform.

The result of all this is that the Silverlight concept that really makes sense—WPF/E, sandboxed, cross-platform, browser-based—has fallen by the wayside, thanks to a failure to keep Silverlight free from platform-specific capabilities and political backing of HTML5. What we have instead is a fragmented bunch of disparate mostly-compatible "Silverlight" platforms—phone, Xbox, and desktop—with one of those, the desktop one, not even making any sense as a product, since .NET and WPF also target the desktop and do so better.

Silverlight is dead, long live Silverlight?

It's no wonder, then, that there are doubts about whether there will be a Silverlight 6. The "real" Silverlight platform, the one that lives in a browser, is plainly living on borrowed time. Browser plug-ins just aren't the done thing any more. If Microsoft were to release a Silverlight 6 this time next year, it will not even be usable in what will be the company's flagship browser, the Metro-style Internet Explorer 10. As such, it seems unlikely. Not impossible, but unlikely.

But these other Silverlight platforms aren't going to disappear. Windows Phone will continue to use its Silverlight variant. It's even possible that the Silverlight for Xbox variant will become public and accessible to all. Most significantly of all, Windows 8's Metro-style applications are built using a framework that's very similar to Silverlight and WPF, arguably closer to the former than the latter. It isn't called Silverlight, but what's in a name?

Silverlight 5 may well be Microsoft's last release of a true cross-platform, consistent, browser-based, WPF/E-inspired, Silverlight-branded platform. Even the Silverlight name may fall into disuse as we near the release of Windows 8 (and beyond that, as Windows Phone and Xbox are updated to use Windows 8 as their kernel). But the technologies and concepts that underpin Silverlight—XAML, .NET, sandboxing—and the tools used to develop Silverlight applications—Visual Studio, Expression Blend—are not going to disappear. Far from it: Silverlight's demise may be imminent, but it's about to become more widespread and important than it ever has been.

Channel Ars Technica