Silverlight is Dead, Long live Silverlight! For those not living under a rock, the furor in the Microsoft development community at large over the last X months has been keenly focused on the future of Silverlight, and the impact of HTML5 on application developers.
Bob Muglia lit the fire at PDC10 and again later at the MIX11 conferences when he announced that Microsoft’s strategy for Silverlight *had shifted*. Toss in the strong messaging around HTML5 and IE10, and the distinct lack of sessions and content around Silverlight, and many started scratching their heads that Microsoft had pulled the rug out from underneath their own developer community. After 4 years of hearing that Silverlight was the future, the Silverlight party was over?
Silverlight! Huh… What is it good For?
When Microsoft originally announced Silverlight (and all the partner managers started telling consultants to learn Silverlight), I remember distinctly thinking “Does Microsoft really hate Adobe that much?”.
Given the timing, and at least some speculation in the web and mobile community that Adobe Flash was perhaps already entering it’s twilight due to challenges of supporting the burgeoning mobile smartphone marketplace, I saw little benefit in the strategy of developing what seemed like nothing more than a Flash alternative.
It didn’t help that with my professional activities focused on SharePoint, and Silverlight was not really supported on SharePoint 2007. I was also hearing rumors right up until about Silverlight 3 that even the internal product teams at Microsoft were hesitating to incorporate Silverlight in their products with concerns it was still not ready for *prime time*. I experimented a bit with Silverlight, but adopted a “wait and see” attitude.
SharePoint 2010 was released with support for Silverlight, and including the Silverlight Client Object Model, but it still seemed like a niche and largely unnecessary technology. For the most part I preferred to solve my client-side UI goodness with jQuery, and other JavaScript technologies that were multi-browser, multi-platform, and didn’t require a plug-in. Then came the news from PDC10 that Microsoft was repositioning Silverlight, and the writing on the wall seemed pretty clear.
The Future is HTML5… Eventually
Well before the PDC10 conference there was already a lot of opinion on the Internet about the future of HTML5 over technologies like Flash and Silverlight. Google was leading the charge of “Everything in a Browser” with HTML5, Chrome and the Chrome Store, and Apple was refusing to support Adobe Flash or Microsoft Silverlight on iOS.
The problem, of course, is that HTML5 is not *really* here yet. Many browsers supports parts of the HTML5 specification, but many more remain unimplemented, and there are huge variations across browsers and devices. HTML5 won’t become a completed and ratified standard until sometime in 2014/2015.
With good reason, many in the SharePoint Community like Becky Isserman in her blog “Silverlight, My Love, Please Don’t Go Away”, made the case that Silverlight remains the best technology for rich internet applications.
Ok - I agree with those points, but that’s today, and HTML5 is still the future. Still no Silverlight shining in my eyes, I can wait… and then Microsoft launched Windows Phone 7.
Finally, a Unified Development Experience?
When Microsoft announced that Silverlight was going to be the development platform for building applications for Windows Phone 7, I finally saw the Silverlight <at least I thought I did>.
Silverlight 4 now supported the ability to take Silverlight applications offline and launch them from the desktop, and with rumors already circulating that Windows 8 was going to be tablet focused, it suddenly seemed clear that Silverlight was slotted to become the unified Microsoft development platform of the future. Applications developed in Silverlight could be written to execute in a browser, on Windows 8, and Windows Phone. One language to rule them all, and in the Visual Studio bind them.
Developers start your engines! The tides had turned, the scales had been tipped. Time to get serious about learning Silverlight… just as soon as they release Silverlight 5.
The Silverlights are on, but Nobody is Home
Before the BUILD11 conference, it was already rumored that Windows 8 was supposed to offer HTML5 as a new development choice for applications. I suspected that Silverlight would be used to provide a rich developer and user experience for native installable applications, but HTML5 would be front and center for browser-installable applications similar to Google Chrome applications. HTML5 applications would be sold side-by-side with Silverlight applications in the AppStore for Windows Phone and Windows 8, and developers would truly have the freedom to choose their development stack.
Fast forward to the Build11 conference and the development communities first real glimpse of Windows 8, and… whoa! I won’t go into the gory details, but the whole Microsoft development world has been tipped on it’s side again. Silverlight is out, WPF is out, hell, the .NET framework is out. Toss in the news that Scott Guthrie has joined the Azure team, and the the rest of the Silverlighties have been sliced, diced and tossed to a variety of other teams, and the interweb is once again humming with posts announcing or denouncing the ultimate fate of Silverlight.
So, if Silverlight is dead, then HTML5 has won? Has Microsoft finally embraced cross platform, ubiquitous, standards-based application development based on HTML5/CSS3 and Responsive Web Design?
Uh…nope! The future, at least in the Microverse is now WinRT.
The Status Quo - Alive and Well
Windows 8 will support both “Classic” and “Metro” style applications. For applications running in classic, it is essentially the standard Windows Desktop supporting Native, .NET applications using WinForms, WPF or Silverlight, or anything else that you would expect to run on Windows 7 now.
The new Metro-style applications are based on a new runtime called WinRT, and support two development approaches: XAML or HTML/JavaScript. For those already comfortable with WPF or Silverlight development, the development tools and approach will be very familiar to developers. The HTML5 support is another story.
You can write Metro style applications in HTML5 and JavaScript, but your code runs against a proprietary WinRT library, and the application has to be packaged and deployed as a native Metro application on Windows 8. Not exactly the cross-platform development nirvana many may have been hoping for. In typical Microsoft fashion, expect your applications to be shackled to the desktop.
So… the status quo? Somewhat sadly, it means that the silos of competing technology platforms, languages, tools and application stores currently being waged between Apple, Google, Microsoft, Amazon (and others) for control of the client device isn’t going to change anytime soon, and probably a lot longer than that. Yes, developers will be able to write pure HTML5 applications and utilize responsive web design to create applications that can run anywhere, but the full potential of these applications will be hobbled by protectionist strategies fiercely employed by market leaders to wall-off their platforms and communities. Should any of us really have expected any different?