There has been much discussion of the future of Microsoft’s Silverlight plugin since Server and Tools President Bob Muglia’s statement in a PDC interview that “Our strategy with Silverlight has shifted”, and spoke of HTML as the “only true cross platform solution”.
The debate was even reported on the BBC’s web site under the headline Coders decry Silverlight change.
It is unfortunate that headlines tend to think in binary; alive or dead. In other words, if Microsoft is repositioning Silverlight then it must be killing it.
That is not the case. Muglia did not say that Silverlight has no future, nor that it was unimportant. He affirmed that there will be another version of Silverlight for Windows and Mac, as well as highlighting that it is the development platform for Windows Phone.
Speaking personally for a moment, I have reviewed Silverlight favourably in the past and still regard it as a great achievement by Microsoft: the power of the .NET runtime, the elegance of C#, the flexible layout capabilities of XAML, integrated with a capable multimedia player, and wrapped in a lightweight package that in my experience installs quickly and easily.
Silverlight forms an excellent client for cloud services such as those delivered by the Azure platform which we heard about at PDC.
Perhaps it is the case that IE9 maestro Dean Hachamovitch tended towards the gleeful as he demonstrated features in HTML and JavaScript that previously would have required Silverlight or Flash. At the same time, IE9 is not yet released, and even when it is, will not match the capabilities or the tooling and libraries available for Silverlight.
The Silverlight press generated by PDC must have been disappointing and frustrating for Microsoft’s Silverlight team. I am reading reports of Developer VP Scott Guthrie’s remarks at the DevConnections conference this week.
The reports of my death are greatly exaggerated … I have more people working on Silverlight now than any time in Silverlight history … don’t believe everything you read on the internet.
I have great respect for Guthrie; you need only see the speed and manner with which he reacted to the recent ASP.NET security scare – not trying to diminish its importance, delivering practical advice, answering comments, and working with his team to come up with workarounds and a proper solution as quickly as possible – to appreciate his commitment and that he understands the needs of developers.
So were posts like my own Silverlight dream is over unfair and inaccurate? Well, there is always a risk of being misunderstood; but the problem, as I perceive it, is not primarily about Silverlight’s progress on Windows and Mac. The problem is that those two desktop platforms no longer have sufficient reach; or rather, even if they have sufficient reach today, they will not tomorrow. We have the rise of iOS and Android; an explosion of non-Windows tablets in the wings; we have a man like James Gardner, CTO at the UK’s Department for Work and Pensions, writing of Windows 7 that:
Personally, I think it likely this is the last version of Windows anyone ever widely deploys
See also Cliff Saran’s comments at Computer Weekly.
In other words, Guthrie’s team can do a cracking job with Silverlight 5 for Windows and Mac – it could even merge Silverlight with WPF and make it the primary application platform for Windows – but that would still not address the concerns raised by what happened at PDC. If Silverlight remains imprisoned in Windows and Mac, it cannot deliver on its original promise.
What could Microsoft do to restore confidence in Silverlight? Something along these lines would make me change my mind:
- Announce Silverlight for Android.
- Nurture Silverlight for Symbian.
- Follow through on commitments for Silverlight on Moblin/MeeGo.
- Either implement Silverlight for Linux, or enter a deeper partnership with Novell’s Mono so that Microsoft-certified Silverlight runtimes appear on Linux in a timely manner alongside Microsoft’s releases.
- Come up with a solution for Silverlight on iOS. One idea is to follow Adobe with a native code compiler from Silverlight to iOS. Another would be a way of compiling XAML and C# to SVG and JavaScript. Neither would be perfect; but as it is, every company that starts deploying iPads or their successors is a customer that cannot use Silverlight.
Do I think Microsoft will implement the above? I doubt it. My interpretation of Muglia’s remarks is that Microsoft has decided not to go down that path, but to reserve Silverlight for Windows, Mac, and Windows Phone, and to invest in HTML for broad-reach applications.
That may well be the right decision; it is one that makes sense, though Microsoft was perhaps unwise to highlight it before IE9 is released. Further, cross-platform is not in Microsoft’s blood, and the path that Silverlight has taken is in line which what you would expect from a company built on Windows.
Silverlight is not dead, and for developers targeting Windows, Mac and Windows Phone it is as good as ever, and no doubt will be even better in its next version. But failing another change of heart, it will never now be WPF Everywhere; and PDC 2010 was when that truth sank home.
Update: this is pretty much what Guthrie says in his latest post:
Where our strategy has shifted since we first started working on Silverlight is that the number of Internet connected devices out there in the world has increased significantly in the last 2 years (not just with phones, but also with embedded devices like TVs), and trying to get a single implementation of a runtime across all of them is no longer really practical (many of the devices are closed platforms that do not allow extensibility). This is true for any single runtime implementation – whether it is Silverlight, Flash, Java, Cocoa, a specific HTML5 implementation, or something else. If people want to have maximum reach across *all* devices then HTML will provide the broadest reach (this is true with HTML4 today – and will eventually be true with HTML5 in the future). One of the things we as a company are working hard on is making sure we have the best browser and HTML5 implementation on Windows devices through the great work we are doing with IE9.