image

Understanding the Silverlight controversy

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:

  1. Announce Silverlight for Android.
  2. Nurture Silverlight for Symbian.
  3. Follow through on commitments for Silverlight on Moblin/MeeGo.
  4. 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.
  5. 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.

23 thoughts on “Understanding the Silverlight controversy”

  1. In related news, a few days ago W3C released results of their test that showed IE9 was the most HTML5 compliant. After much noise was made by anti-MS people the W3C have come out and basically said, “ok ok, HTML5 is no where near complete or ready to use and when it is more accurate standards tests will be available”.

    HTML5 is some time off (years), and until then Silverlight and Flash will be king of rich web.

  2. I have a real problem with those Scott Guthrie figures about people working on Silverlight. They are meaningless without some specifics.

    For example, if they’re all working on Windows Phone that’s a real cause for concern for those uninterested in Phone and focussed on desktop client and browser. Worse, the only figures given so far don’t add up. Guthrie has said “There are 200+ engineers working on Silverlight and WPF”, Joe Stagner says “There are 250+ people working on Silverlight”. Does that mean there are -50 working on Silverlight? Of course not, so who do we believe?

    Nothing adds up and all Microsoft do when they issue bland statements is give the appearance they’re generating smoke and mirrors.

  3. This is a much more sane reflection of the silverlight affairs. I myself think silverlight/CLR will power the javascript engine in IE before you know it.

    And I fully agree Microsoft should make sure they get silverlight reach, if it had reach on most devices the technology is so vastly better than HTML/javascript that it might very well win that struggle long term. Remember that all CLR/C# specs are open and standard as well.

    I myself have good faith in Miguel de Icaza empower him and C#/moonlight/silverlight will get reach.

    Also monotouch is there already, it is 90% of what you need of silverlight from a code reuse point of view, just with Cocoa bindings, but I have said it before, do not try to wrap the UI, you will get the java sickness and noone wants applications like that, you need to allow easy escaping out of the “vm” box to the actual platform, this is java me’s biggest short comming in my view, in others it is its strength, so there is a dilemma. Don’t try to rule the world, try to empower it and you might very well end up ruling it.

  4. What would be the point of Silverlight on Android/Symbian/Moblin/MeeGo/Linux/iOS? How would that make money for Microsoft i.e. how does it help sell more Windows 7/Phone 7 licenses?

  5. Duncan,

    The more ubiquitous the Silverlight platform the more mind-share it’ll have and therefore, in my opinion, the more apps that will be developed with it. If you could develop a rich experience mobile app for just iOS and Silverlight for phone then you can make sales across multiple platforms for a lower cost of development.

    That would drive sales of licenses for the development environment (which may be chicken feed) but if it gets a hold in the minds of upper management of big business (as iOS Apps currently do in my experience) then they may buy in to the idea that LOB apps could be developed for the desktop and easily extended to provide useful functionality onto the phone therefore driving business sales of the WP7 phone platform, which would be huge.

    Of course this has been bungled and the only position Silverlight has in management minds is that it’s dead…

  6. @Craig, html5 support is already good enough for me in webkit based mobile browsers and desktop browsers like Safari and Chrome. Local database (Sqlite) and offline functionality are supported by all, so I can build offline webbased applications by using only html/css/javascript and run them on a IPhone, IPad, Android, Blackberry, Windows (desktop), Mac and Linux. What can Silvlight do?

  7. Hi Niclas,

    You wrote about Silverlight that “the technology is so vastly better than HTML/javascript that it might very well win that struggle long term.”

    On the other hand, Bob Muglia writes: “The purpose of Silverlight has never been to replace HTML”

    But that’s the crux of a political problem for Microsoft because they control the word’s most popular browser and ship it preinstalled with the world’s most popular operating system. And, they control .Net.

    Outside the .Net community I think many people wish Microsoft would put as much energy into making HTML5 and JavaScript better as they put into Avalon etc.

    I’m one of those people. I’m really encouraged by what we’re hearing from Microsoft on HTML5 and hope it extends to working on extending/improving JavaScript. It will never be C# but I don’t think it has to be in order to make it a better language with excellent tools.

    Some of the first early steps with JavaScript are described here:

    http://ejohn.org/blog/ecmascript-5-strict-mode-json-and-more/

    and

    http://ejohn.org/blog/ecmascript-5-objects-and-properties/

    On the other hand I’ve never heard Microsoft say JavaScript is strategic for them. Maybe one day?

    Yours truly,
    -Brian

  8. The thing that bugs me re: SL and scottgu’s post is the insistence that SL is a strategic technology for Microsoft. Bullshit. Silverlight has always been a tactical response to Flash/Flex/Air. If this is a consular ship where is the ambas…err…I mean, if it’s a strategic technology _where_ is the strategy?

  9. I think a more fully cross-platform SL would be difficult to implement well and hard to cost-justify. Cross-platform is a paradox. Assuming MS did a good implementation of SL on Android or iPhone/iPad (neither easy to do or maintain well), it would attract more developers to the “platform” which would make more SL apps available, but it would also provide less incentive to buy WP7 devices which is where MS actually makes its money.

    I don’t think SL needs to be cross platform to be a success. It just needs to do a good job at Windows/Mac web apps and WP7 apps. MS will need to keep investing in both those faces of SL, and I believe they will. SL and HTML are good for different things, but there is overlap and the competition will continue. Screws and bolts are in “competition” for holding things together, but after many years both are still around.

    Vic Klien

  10. Joseph Cooney: I think you’re confusing the Silverlight runtime itself with its market positioning.

    Silverlight, the runtime is a rewrite of the entire client-side .NET framework to make it lighter-weight, more portable, and somewhat de-cruftified. That’s strategic.

    It was initially marketed as a browser plugin completing with Flash. That’s tactical.

  11. About the strategy with Silverlight, I think there are ideas and thoughts of how to make rich client applications cloud enabled, and by controlling and innovating in both the rich client side and the cloud side it can be seen as strategic. Imagine your SL app moving across devices without really losing its state, much like (or what you would like) from a web/server app, but with a rich interface, fully accelerated by the device you are on. Imagining just dragging your application window from the desktop onto the phone and back to another desktop.

    A proper MVVM app with the right hooks might enable the platform to do this for the developer in ways HTML/javascript never really can reach.

    It can also been seen as a strategic choice so that they can innovate Windows underneath SL in ways they can’t if we keep passing win32 handles and pointers around in our applications.

  12. …if Microsoft is repositioning Silverlight then it must be killing it. That is not the case.

    I believe MS when they say SL is still important to them. They will not kill SL intentionally, but they will cripple it unintentionally. Every MS attempt to respond to the SL uproar is reinforcing the view that SL will not deliver on its original cross platform promise. It appears MS will only support SL for MS products (plus Mac). If that’s the case then SL will lose many (not all) of the developers who would otherwise be attracted to it. That’s a hurdle MS can not afford given the relative difficulty SL is already having attracting developers.

    I’m currently using SL on a project and it’s a fantastic technology. But I would have chosen Flash had I known SL would not be a cross platform technology. THAT’S why so many developers feel betrayed. Eventually, I will probably have to switch to Flash since it will support so many more devices. Adobe understands the critical importance of cross platform support to Flash’s future. Sadly, MS does not understand the same for SL.

  13. Bob F,

    Even if flash reaches more devices it does not mean you can write once deploy many. You will need specific code paths for a plephora of devices to make your app shine, if that path is in flash/sl/cocoa doesn’t matter much, in reality. You don’t need to be on all devices, you just need to be on the devices that matter.

    Silverlight is also far better than Flash, it is really uphauling that Flash has been around for so long and the development tools are still subpar by far. We are using flash at the moment, but I would so much rather be using SL. Also Flash has more licensing problem than one would think, but I guess most people don’t care and use the player anyway.

    If I were MS I would make sure you have a SL implementation, preferably open source, that can run on most embedded devices. MS supports a few key devices and let the community support the rest.

  14. You will need specific code paths for a plephora of devices to make your app shine, if that path is in flash/sl/cocoa doesn’t matter much, in reality

    Understood, but there’s no opportunity to tweak SL apps for mobile and tablet devices because, unlike Flash, SL won’t run on anything but WP7.

    You don’t need to be on all devices, you just need to be on the devices that matter.

    Agreed, but (for example) Android devices do matter and their market penetration is only going to increase (OTOH, no one knows if WP7 devices will succeed). MS hasn’t given the slightest hint that it will support SL on Android. In fact, it now sounds very much like there are no plans to support SL on any OSs outside of the Windows family of OSs (plus Mac).

    Silverlight is also far better than Flash

    I’ve been working with SL and I certainly agree.

    Flash has been around for so long and the development tools are still subpar by far

    Yes, Adobe has superb design tools, but VS 2010 is far superior to Flash development tools (not to mention C# being superior to ActionScript).

  15. Hi Bob F,

    Given the original dream of “WPF Everywhere” your disappointment is of course quite reasonable.

    But from MS’s point of view (and arguable from the point of view of the MS-ecosystem-as-a-whole, which includes SL-devs like me who are along for the ride): Good management is as much about deciding what _not_ to do as do.

    Killing the Kin was messy and embarrassing, but will help focus resources on the higher priority target of WP7. Pulling back from the “…Everywhere” dream of SL has similar costs and benefits. This is the nasty reality of triage/lifeboat-ethics.

    Vic Klien

  16. Killing the Kin was messy and embarrassing, but will help focus resources on the higher priority target of WP7. Pulling back from the “…Everywhere” dream of SL has similar costs and benefits.

    I agree this was probably a factor in MS’s decision and it’s a valid point. WP7 is off to a very late start and there may be pressure within MS to focus resources on WP7 and away from supporting SL on OSs that don’t earn revenue for MS. But I wonder if they’ve correctly calculated the long term cost of their decision. With SL being relegated to being mainly a Windows-family only technology it becomes even more difficult than it already was for MS to attract developers to SL. If MS still truly considers SL to be a critical part of their strategy then decisions that discourage developers from choosing SL will be damaging.

  17. I think this “shift” of SL will cause some projects and developers to leave SL (and even the MS stack entirely). For example, multiple commenters on the SL-evangelist John Papa’s blog have said they are now “shifting” to Flash/Flex. For some projects that may make sense.

    So for “due diligence” I watched the online keynotes for the recent Adobe MAX and looked at some of the Flex samples. Then I looked at some of MS’s IE9 HTML5 samples. Honestly, both were “Ok”, but no where near impressive enough to pull me away from SL/WPF.

    Personally, as a 2+ year SL-dev, I am “doubling down” on SL-for-the-web-and-desktop. Cross-platform was never important to me, I just wanted a better way to write web and Windows apps running on Windows. SL/WPF does provide that.

    Vic Klien

  18. Some interesting quotes following the HTML5 Live event yesterday:

    “We love HTML5.” Microsoft is building HTML5 technologies for its Visual Studio IDE. Visual Studio’s Intellisense coding capabilities are being fitted for HTML5. Canvas 2D graphics support from HTML5 is being added to the IDE as well. These incremental technologies are being offered on places such as the CodePlex and MSDN Code Gallery Web sites.

    “HTML is just going to have all these great features and it is going to be the future of the Web,” Appel said.

    http://www.infoworld.com/d/developer-world/microsoft-adobe-proclaim-their-love-html5-775

  19. Maybe, just maybe, HTML 5 emphasis is an interim strategy to assure that Azure “wins” the PAAS battle.

    If, and a big if, Azure “wins”, I bet your bottom dollar that MS will “extend” HTML 5 in a Silverlight manner to win once again the client device battle.

    It is late 70s, early 80s all over again, and if you win the “OS” battle (in this case Azure), you can then march through all other aspects of the computing model.

    I could be wrong, but smells like 1) Win the Cloud “OS” battle, 2) then introduce proprietary hooks into the cloud so that developers that are “Windows/Silverlight” centric do better.

Leave a Reply to tim Cancel reply

Your email address will not be published. Required fields are marked *