Microsoft Silverlight Turns 5 (But Will there Be a 6?)
If reports of the demise of Silverlight are based on Microsoft's perceived support of the run-time tool, pundits might be on to something, as the company's quiet launch of Silverlight 5 last week - along with silence about its future versus Metro-based apps geared toward mobile browsers - brings into question the long-term viability of the Silverlight tool and whether it will ever make it to the next version.
On the other hand, given the added functionality and lengthy formalized support cycle that Microsoft announced at the time of Silverlight 5's launch - the company says it will support the tool until late 2021 - the same pundits might want to take a second look.
First, let's look at the functionality. Microsoft announced two key features of Silverlight 5: graphics processing unit (GPU) acceleration for H.264 decoding and the ability for Silverlight to make a direct call to the kernel of the host operating system.
On the H.264 front, the GPU decoding is partly a catch-up feature to match the Adobe Flash Player's ability to decode content in full-screen mode at high bitrates, without sacrificing motion or resolution.
But Silverlight 5's integration of GPU decoding is really a natural progression, the second step for Microsoft in the GPU acceleration game. The company first added GPU acceleration to its software-based Expression Encoder 4 Pro SP1 about a year ago; integrating an H.264 CUDA-based encoder (from Main Concept) into the Expression encoding pipeline was intended to increase throughput for transcoding by a "factor of 2-3x over CPU alone for offline cases" according to the company.
In addition, Microsoft saw the benefit of harnessing the GPU for high-end laptop Live Smooth Streaming scenarios "that weren't possible with software-based encoding, like encoding 3 or 4 HD streams in real-time". Yet the company lacked an end-to-end solution for these multiple HD streams to traditional laptops or even mobile devices containing a GPU.
As such, the release of Silverlight 5 with its H.264 decoding via GPU looks to complete the pipeline.
On the application front, Siliverlight 5's bigger functionality news may be the long-requested ability to make calls to the host operating system kernel. This is called a "platform invoke," and is a key element in building desktop-quality applications that can run within a browser.
In the past, the limitation for Silverlight was that it could only use local storage and other basic function available to browser-based applications, but could not invoke calls to do the heavy lifting of a desktop application. According to an analysis at ReadWriteWeb, the problem was one of trust between browser-based applications and desktop-based applications.
"Rich Internet Applications (RIAs) required full access to the file system, which was not possible given the limited trust relationship that must exist for a remote application triggered from a browser," wrote Scott Fulton for ReadWriteWeb.com. "P/Invoke is a system that enables an application to deploy itself remotely, and then implement the safeguards required for it to elevate its own privilege to that of an installed application."
What's interesting about the platform invoke in Silverlight 5 is that it's directly analogous to what Microsoft intended Silverlight to be in the first place: the RIA extension of .NET so that browser- and desktop-applications could be used interchangeably. It's one of the reasons that the Smooth Streaming client in Silverlight was so powerful, as it spanned the gap between a desktop player - Microsoft's forte in the 1990s - and the web video player space dominated by Adobe Flash Player.
This powerful new feature in Silverlight 5 may shed some light on Microsoft's reasons for the extraordinary support lifecycle announced for Silverlight 5.
Silverlight lacked a support lifecycle typical of many Microsoft products, and the company has clarified that Silverlight is considered a tool, not a platform or product.
"A 'Tool' is defined as a utility or feature that aids in accomplishing a discrete task or a limited set of tasks," the company notes on its support FAQ for Silverlight. "Major Tool versions receive a minimum of 12 months notification prior to the end of support. Otherwise, support ends contemporaneously with the product versions for which they are intended (for example, Microsoft Windows)."
Since Silverlight its a tool, it is dependent for its lifecycle on either the emergence of several new versions of the same tool - think end-of-life for Windows 2000 when Windows Vista emerged - or of the platform on which Silverlight is intended to run. Since Silverlight is a browser-based technology, Microsoft reserves the right to terminate support for Silverlight, with one year's notice, if a new browser version no longer supports Silverlight.
"Microsoft will continue to ship updates to the Silverlight 5 runtime or Silverlight 5 SDK, including updates for security vulnerabilities," the company noted on its FAQ. "Silverlight 5 will support the browser versions listed on this page through 10/12/2021, or though the support lifecycle of the underlying browsers, whichever is shorter. As browsers evolve, the support page will be updated to reflect levels of compatibility with newer browser versions."
In a nutshell, then, the fate of Silverlight rests on the ability of new browsers to support Silverlight.
Add in the fact that Windows Runtime APIs for the mobile browser can't invoke platform calls, and it's quite possible that support for Silverlight could be restricted to desktop applications, allowing Microsoft to meet the letter of the law laid out years ago when it announced Silverlight as its RIA strategy but bringing into question the tight coupling between Smooth Streaming and Silverlight when it comes to mobile delivery. Maybe Microsoft really is betting it all on DASH.
Metadata masters break down movies to create uniquely targeted user experiences in Microsoft Silverlight Enhanced Movies for Paramount Digital on Windows Phone 7
MS reassures developers by showing future plans for the Silverlight platform.
Microsoft is bringing Silverlight to the TV and will be offering H.264 Smooth Streaming with PlayReady DRM via IIS Media Services