Silverlight on the browser is better than ever. It is getting the same kind of performance improvements seen with HTML 5 while still benefiting from statically typed languages and JIT compilation. So why is Microsoft barely willing to talk about it at MIX?
The reasons are many fold and complicated, but not nefarious. Much of the problem dates back the bungled message last year that led many people to believe that Silverlight was being dropped for all but Windows Phone. Silverlight developers doing consulting work are still complaining about the number of contracts that were cancelled during the week after that debacle. In an attempt to recover Microsoft announced the vast majority of Silverlight 5’s features during December’s Silverlight Firestarter event. This seemed to calm everyone down for a while… and then came MIX.
For many developers MIX is the home of Silverlight. Each year a new version is “born” here when the first public beta becomes available with much fan-fair. This year was different; the Silverlight 5 beta is massive but it barely got any mention in the keynote. Instead Microsoft was using this event to focus on slightly more recent developments. The hot topic this year is Windows Phone, which has 28 of the 125 sessions. Internet Explorer 10 and HTML 5 are also getting a lot of attention with an entire keynote devoted to performance on the web. Coming in a respectable third is Kinect, with thousands being given away to conference attendees. This left little room in the schedule for Silverlight 5 topics. Of the 14 sessions offered for it nearly half of those were on HTML 5 and/or Microsoft Media Platform. So what happened?
Well basically Microsoft felt that there wasn’t anything to talk about because it was all covered in the Firestarter event. The Firestarter event did serve to reinvigorate the Silverlight community, but instead using it as a lead into MIX Microsoft treated it as a replacement. As a result all of that momentum died.
Internally Silverlight is facing a problems of perception and self-identity, but not of manpower. First let’s be clear on two points. One: Silverlight for Windows isn’t a dying technology. If anything Microsoft is increasing its internal commitment to Silverlight. Two: Silverlight as a cross-platform solution is officially gone. Not just in doubt, Microsoft has said on no uncertain terms that they see HTML 5 as the future of true cross-platform development. The investments they are currently making fall into three categories:
- Rich media services such as smooth streaming
- 3D on the web
- Line of Business applications
The message we are getting is that they are not even considering trying to offer Silverlight on non-Windows mobile devices nor are they working with Mono on theirs. Of these three categories they are working on, only the first two are being talked about.
Talking about rich media services is easy, web browsers have only recently added basic video support and practically no one is using it. Point Google’s Chrome browser at Google’s YouTube site and you are going to see nothing but Flash videos. But very few developers are offering video on their sites and even less need these capabilities.
The same goes for 3D on the web. There several libraries that take advantage of SVG and Canvas, but the low level APIs in Silverlight 5 are far more advanced than what those offer. A fact was unfortunately overlooked is the keynote demo showing a 3D house was written in about three weeks by a single developer. There is no way a comparable application could have been built so quickly using HTML 5. Why they didn’t use the keynote to promote Silverlight’s rapid time-to-market is something that annoyed many of the developers in attendance.
Finally there is Silverlight’s crown jewel, line of business applications. A skilled Silverlight developer (or Flex for that matter) can build a high quality LOB application in a fraction of the time an equally skilled HTML developer. The data-binding support alone is a huge time saver and the templating capabilities are incredibly advanced. HTML barely has any templating support and it isn’t core to the platform. Instead you have to cobble together CSS with the recently released jQuery Templates.
With this in mind, it is frustrating that Microsoft’s Silverlight team doesn’t feel it can really promote Silverlight for LOB applications. Some of its internal politics, they don’t want to antagonize the Windows and Internet Explorer groups. They are also worried about backlash from the public. While HTML is nowhere near as good for building LOB applications as Silverlight is, saying that is going to upset the web-centric developers to no end.
So instead the enterprise software developers building LOB applications are getting all the grief from their clients and managers. They are saying that it is easy to convince other developers of the technological benefits of Sivlerlight for their projects, but they don’t have the backing from Microsoft to convince their clients and managers that it is the right choice.
After enduring nearly an hour of listening to these and other complaints about the marketing problems, Microsoft’s Silverlight Product Manager David Pugmire passed out his email address and agreed to bring their concerns to the executive level. To be clear, they were complaining about marketing only, the developers at the conference had no objections to the direction the browser technology was going.
There were some criticisms about not having any kind of story for Silverlight on iPhone or Android. Everyone acknowledged that native apps were better than HTML-based ones, but that is as far as they got. The developers wanted to be able to use MVVM to swap out the GUI for each device with a XAML variant for rendering native controls. Microsoft wanted to devote its efforts to closing the gap between Silverlight and WPF.
Speaking of WPF, it appears to be a dying technology. Silverlight is quickly obtaining the bulk of WPF’s capabilities and developers seem to be far more interested in it than in WPF. It probably won’t die entirely, there is still some active development being done on the platform. And it offers a great interoperability story for both VB6 and WinForms based applications. (I’ve even seen an application use all three, with the idea that eventually everything will be transitioned to WPF.) But for new development that can wait until Silverlight 5 is released, there doesn’t seem to be much reason to consider WPF.