Tuesday, 2 November 2010

Silverlight Shenanigans!

Until now I've avoided writing a blog post on the whole "Microsoft are killing off Silverlight" noise that's been reverberating around the Microsoft echo chamber for the last month or two, although I have commented on others posts where basic facts were quite outrageously being ignored. There are three reasons why I haven't rushed to make a blog post:

  1. I saw the way the echo chamber launched an all-out assault on the first person to 'go public' with what was really happening within Microsoft a month or so ago. I've had enough of that already, thank you very much. I don't need any more of it. Dealing with unthinking zealots is never much fun!

  2. It would have been hard to say anything without naming sources for the information that I first heard about back in August, but which wasn't generally in the public domain. That could have caused problems for people simply being honest about what seemed to be happening internally within the company.

  3. There was far too much heat around the subject once the basic 'Silverlight strategy has changed' statement became public last Friday. I wanted a few days out to consider what I was going to say about it.

I'd probably have remained quiet if Microsoft hadn't effectively gone public at PDC. I've been extremely critical of Microsoft in the past, but boy they reached new levels of incompetence at this year's PDC. First of all they made their main keynote a repeat of that given 3 years ago - one that had been used to launch Silverlight, but this time round replaced the word 'Silverlight' with 'HTML5' to promote their brave new focus. One really has to wonder whether those responsible for this farcical state of affairs are idiots, just plain lazy, or simply assumed the developer audience were idiots and wouldn't notice. When you're asking people to travel and pay good money you owe them a hell of a lot more than a tired old rehash of a previous keynote!

Then, in an interview with a journalist at the event, a senior exec reported that the company's Silverlight strategy had changed. The executive, Bob Muglia, effectively stated that the change in strategy was that Silverlight was now focused on Windows Phone, whilst noting as an aside that it had some 'sweet spots' for line-of-business apps. HTML5 was now 'the glue between the front end and the back end'. The message was very clear, and (I thought) very carefully and deliberately worded. This was not a misquote, this was a thoroughly prepared statement.

The echo chamber went ballistic. The Silverlight MVPs went into 'ignore reality' mode and posted long, tedious articles reminding folks how much easier and more productive it is to develop a line of business application in Silverlight rather than with HTML5 (well duh!), adding in great dollops of FUD about lying tech journalists, huge Silverlight demand from businesses, and news that HTML5 would not be ready for another 10-12 years along the way.

The general developer community split into two rather extreme camps: one saying they'd they'd never trust Microsoft again and would now actively look elsewhere for technology solutions, the other rejoicing that yet another 'useless, proprietary shiny toy' from the company was rightly being abandoned.

Yesterday the exec who'd made the statement that caused all the furour was forced into 'damage control' mode and made a new blog post stating that there would be a new release of Silverlight (nobody had ever claimed otherwise!) and basically re-iterating the main points he'd already made, albeit couched in more diplomatic language. Bottom line, as the journalist who'd reported the original remarks pointed out: nothing at all had changed.

So it was extremely disappointing (if entirely expected) that huge swathes of Silverlight MVPs and evangelists have rushed to celebrate the fact that they have been 'proved right' and the 'nay-sayers' were all wrong. Ridiculous posts re-iterating those same tired 'facts' ('RiaStats.com says Silverlight has huge market share') or pointing out that all tech journalists are scum, or that people have been too 'emotional' (presumably it's better to be mindlessly 'passionate' instead!) have appeared like flies all over a fresh turd. The message seems to be that all is back to normal, the storm in a teacup is over, we can all relax and the drama queens so quick to attack Microsoft and Silverlight without understanding or using the technology can all bugger off! Hoorah!

What such posters seem to have spectacularly missed is that nothing in the new post contradicts anything at all that caused all the furour in the first place. Arguments about ridiculously low take-up of Silverlight amongst developers AND businesses, (even after three years of marketing hype) are conveniently ignored in the rush to say 'Nyaa, nyaa. I told you so. Silverlight rocks. HTML5 sucks. Shame on you for thinking otherwise'.

Yes, HTML5 and JavaScript do suck somewhat. The tooling isn't there either. And the real mistake Microsoft have made in rushing to announce the 'change in strategy' is that they've done so too early. The tools aren't there for HTML5, Microsoft haven't got them in place, and are clearly some significant time way from having them in place. My guess is that the core developers currently 'on loan' to PRISM or Windows Phone 7 won't be back in their 'real' Silverlight development roles until after Christmas. That means they have a LOT of work to do if they're to make the MIX11 deadline of April 2011 that they need to make to retain any sort of credibility around their Silverlight strategy.

But if you really think that this means that Microsoft haven't made decisions at the highest level that the vast majority of future effort is going to HTML5 rather than Silverlight you're living in cloud-cuckoo land. And, with all due respect, statements from Silverlight evangelists about betting their own careers on the technology (haven't we all?!), losing money on their houses to do so etc etc are totally irrelevant. These folk are not working at the political exec level where these things are decided. Nor, if history is anything to go by, at a level where they will have any real say in the decisions that the various in-fighting political divisions in Microsoft will make that will affect them. It's amazing how nobody's mentioning the fact that Silverlight's biggest internal evangelist, Bill Gates' chosen successor Ray Ozzie, is leaving the company (did he fall or was he pushed?) or taking on board that this might not be the best news for Silverlight's future.

My guess is that Silverlight 5 will be a 'stabilisation' release that unites the browser/desktop world (currently on Silverlight 4) with the phone world (currently on a mix of Silverlight 3, with some bits of Silverlight 4 and some new additional hacks on top of that). I'll be pleasantly surprised if we see much else - there's a reason why former Silverlight Product Manager Scott Barnes tweeted that 'Silverlight and WPF are dead' after a visit to Redmond, and it has nothing to do with seeing lots of bodies working on a new release! The hope has to be that Silverlight's main design tool, Blend 5, will be modified to incorporate some sort of HTML5 Canvas functionality, maybe even some sort of XAML/Silverlight to HTML5/JavaScript conversion. That sort of stuff doesn't get written overnight, and if the last 6 months have demonstrated anything it's that Microsoft finds it impossible to move at anything like the rate they need to move to keep up with their competitors and the shifting device platforms out there.

I don't think anybody's denying that Silverlight's a much better technology than HTML5 for writing RIA applications. That's not the point here. It's irrelevant, just as the same arguments used to justify Betamax over VHS, or HD-DVD over Blu-Ray, were irrelevant when it came to what survived in the marketplace.

If you're a Silverlight developer you should have been looking at HTML5 already anyway. What the announcements over the last month or so have indicated is that, short of a seriously dramatic shift in market demand, device reach and developer interest, Silverlight is living on borrowed time and is effectively becoming a 'niche' product rather than the 'premier UI' for Microsoft that it was announced to be this time last year. No amount of articles from those with vested interests, conveniently ignoring all the evidence or the real arguments, is going to change that!

The only thing that matters in all the heat and noise of the last few days is that a 'shift in strategy' has been announced. You ignore that shift in strategy at your peril!


Jeremy Likness said...

I appreciate your views, Ian, and certainly you keep a good balance with the other extremes in this item, but I really have to say I think pinning this all on evangelists is a little lopsided.

The statements were taken out of context first by many of the anti-Microsoft camp, which happens. We're used to that.

The problem is that the perception they painted (and I'm NOT referring to the original article which I agree was a very true and to the point) made a lot of people who don't necessarily have insights into the technology very nervous. We're talking about real businesses here that were comfortable with a Silverlight strategy wondering of they shouldn't shift away due to misinformation.

The misinformation is not that Microsoft is embracing HTML5 and focusing on the cross-platform tooling for it - this is welcome news - it was that Silverlight is dead.

This is where religious dogma factors in because if I say it most absolutely isn't dead then I'll just hear that I'm a disillusioned zealot with the wool pulled over my eyes regardless of what the facts are, so it's really not an argument I care to make because we quickly run into the strawman.

The posts I made were designed to get balance back into the information. It wasn't a desperate plea to hang onto Silverlight, it was a way of balancing the misinformation with the facts that I see from my unique perspective.

I'm not a "Silverlight evangelist" because I get paid by Microsoft. I invest a lot of my own time writing articles and giving talks because I'm passionate about sharing what I see improving businesses and development shops.

I think it is insulting however to see the posts that imply we're holding onto the technology out of desperation. I've said this before - I've written the VB6/ADOtoXMl/XSLT/JavaScript frameworks, I've written PHP, I've done mainframe, etc. If Silverlight DOES go away, I will adapt and it will not be a problem.

The reason why I push for it is because I see firsthand the advantages it brings. We can do it faster, do it more stable with less defects, and the captive enterprise audience is happy with the line of business products produced. There is no reason for that to change until it has to.

I went from ASP.NET/AJAX/JQuery to Silverlight because of the advantages. When I see advantages to HTML5 over Silverlight, I'll shift to that area and focus my efforts there, but until then, I remain where I see value and productivity, plain and simple.

Odi said...

Ian, excellent article. Since you are talking "message", there are a couple of things that need pointing out...

First, there may be a shift in strategy, and HTML5 might get a lot of attention, but so what? Look at Apple, they declared just as strongly that they support two platforms: HTML5 and "App Store", which really means the set of native APIs like Cocoa, Cocoa Touch, etc. Do you think Microsoft will put the lion's share of developers in the HTML5 basket and ignore its (more advanced than Apple's) platform for developing native applications? Seems silly to make such a bet.

Second, that "sweet spot with Line-Of-Business" applications mentionned as an aside, is very important to all of us (including yourself I imagine). It means that they acknowledge the needs of LOB application developers and will continue developing it for this "niche".


Ian said...

@Jeremy Yes, mea culpa - the problem with generalising is that suddenly everyone thinks you're talking about them (but if you name names, you're suddenly launching a personal attack - it's a bit of a lose-lose whatever you do ;-)).

I suppose the best recent example of the sort of evangelist I was talking about is the Silverlight MVP who argued with me on Twitter that the dev company behing "Angry Birds" who had the temerity to tweet that Microsoft had used their logo without permission as a high profile item in their Windows 7 launch were being arrogant and were the bad guys because in making a tweet they were deliberately using Microsoft's "reputation" to promote themselves. Now that's just twisted! As was Microsoft's explanation that this "mistake" was made (and presumably acceptable) because it simply refelcted their "aspirations".

Imagine the response from Microsoft Legal if you used Microsoft's logo without their permission, made totally false claims they supported you to promote your own product and then justified it by saying you were just being "aspirational"!

It's that sort of hypocrisy and blind-loyalty I have no truck with, and I'm sick of those I debate these things with offline telling me the reason they aren't more open online is that "Microsoft wouldn't like it and could take away this perk or that perk if I post anything even slightly negative".

I think one needs to be very careful when talking about not being a Microsoft employee, as if this implied some sort of guaranteed impartiality. An MVP award has very significant financial value and while I am not for one fraction of a second putting you into this camp (you're just the sort of MVP who restores my lost confidence in the whole MVP program), there are others who will happily repeat anything they think will help come renewal time.

All that being said, let's hope that if nothing else the recent "heat" reinvigorates those within Microsoft who were looking at the market penetration for Silverlight/WPF and seemingly deciding it wasn't the success it needs to be and it was time to back another horse.

@Odi Indeed. The problem is that Silverlight went from being "strategic - our premier UI" to "niche - a sweet spot maybe for RIA". That is a huge shift in my opinion, and makes it increasingly hard to promote Silverlight as the right approach, in the same way it could be promoted before this strategic change in direction was made public. The real problem of course is that after 4 years the mass market of developers HASN'T made the huge shift to a XAML-based world that was expected. That's a subject that should be debated and not "glossed over" but seemingly it's the elephant in the room that nobody wants to discuss.

Michael Washington said...

I am one of the Silverlight MVP's and your points are not lost on me.

The odd thing among the uncertainty is that after seriously thinking about it over the past few days, I have decided that I REALLY REALLY like Silverlight and I feel that the best stuff I can do as a programmer is what I do in Silverlight.

But that's not really the point of your argument is it?

I can be a painter who loves paining in 'oils' rather than 'water colors' and things outside of my control can affect my ability to sell my paintings.

Ian said...

Not only that Michael, but all too often we deliver an oil painting when all along our clients have been trying to tell us that they really wanted a water painting.

Michael Washington said...

As of yet, the customer has not seen the Silverlight "Line Of Business" applications that we are working on. When they do I feel they will appreciate the speed and stability Silverlight can provide.

Take a look at this Silverlight Demo app:


To me that "moves at the speed of business".

For example, my wife uses the FaceBook HTML site but spends most of her time playing with FarmVille.

She LIKES FarmVille. It is responsive and colorful and does things you cannot do in HTML. The few times it does throw errors she is really unhappy.

If I thought HTML5 could deliver a good experience I would be behind it, but I am TIRED of giving users applications that have "browser incompatibility issues".

You know what my business user's really liked? Microsoft Access! Yes no one complained about the Microsoft Access applications expect the IT department.

My hope is that Microsoft LightSwitch will allow us to give business users the responsive stable applications that they want.


I will keep using Silverlight, a technology I can believe in. What happens outside of my control is outside of my control.

I don't program in Silverlight at my day job anyway so no big loss there...

Dan said...

Great points Ian and I agree with you overall. I find it funny that a ton of people jumped on the "Silverlight is dying" bandwagon though. I know a handful of these people and the sad part is they know nothing about what Silverlight brings to the table...haven't even taken the time to seriously try it out. There are a lot of negative thinkers out there who love to bash things for a hobby. As for me, I completely support the "shift" to HTML 5 and think it's something Microsoft has to do to be viable in the future.

My personal take on the "shift" (posted about this before their latest "clean things up" post) was that Microsoft realized they just weren't going to be able to make it a true x-device framework for deploying Silverlight apps to websites running on multiple devices, OS's, etc....it's just not realistic especially for iOS. Even if Jobs allowed it another new mobile OS will come out in the future which would require yet another port of the runtime. Based on Microsoft's latest comments it seems that's all true. HTML 5 is the only option there when it comes to planning for the future.

I think Silverlight's "sweet spot" is in enterprise Line of Business applications (especially those that are very data-centric), rich media apps and Windows Phone 7 apps. We just released a large-scale LOB app for a company built using Silverlight and they're loving it and we felt it was very productive framework to use while building the app. But, we also work on ASP.NET and SharePoint applications as well and for a publicly facing website application used ASP.NET MVC and jQuery.

My general motto is to pick the best technology for the job. Sometimes that's Silverlight in my opinion and sometimes it's just standard Web technologies. It all comes down to delivering features the customer wants while trying to be as productive as possible.

Ian said...

I don't think we're in disagreement Michael. I should have added a winking smiley to my post. The point I was trying to make in the painting response was that if "reach" is more important than "rich" then use the appropriate technology. Somewhat ironically Silverlight can actually be a good solution with "reach" too. Sure it's no good for iPads and iPhones, but it's great for IE6. Kinda hard for Microsoft to market it that way though, especially when the idiots went around bragging about sending flowers to the IE6 funeral (yet another spectacular mis-step on their part).

I am lucky enough to have been working pretty much full-time in Silverlight for the last 18 months and have loved it. I think it has problems (memory issues, controls that have been buggy and unfixed since Silverlight 2, the MVVM "silo RIA framework" mess etc) and these should not be underestimated, but show me a technology which hasn't got problems. Silverlight does a great job in many different scenarios and if your development staff are trained up on it they can be a lot more productive with it than other technologies like traditional HTML/CSS/JavaScript.

But XAML technologies are just not getting the love they should be getting. And endless revamps of 'Getting Started' material or 'Firestarter' events that have no real relevance to real-world apps isn't going to fix that! That's the real challenge Microsoft has to face. PRISM was supposed, in part, to sort it. From what I've seen that particular can of worms is just the "same old same old" with some lipstick documentation smeared over the top!

Ian said...

@Dan You had me all jealous talking about working on MVC but then had to go and spoil it all by mentioning the Sharepoint word ;-) Re: HTML5 tooling, maybe the answer to that "What were Microsoft doing meeting with Adobe?" question we've all been asking since news of it leaked out might be good news for all of us?

mdi said...

For those of us joining late, what is "Microsoft PRISM"?

Frans Bouma said...

Just a lovely article to read. Well worded and insightful. That's all, nothing to add further, as Ian said it pretty much perfectly :)


Ian said...

@mdi PRISM is Microsoft "best practice guidance" fromt he Patterns and Practice group, geared towards XAML-based technologies. It's where guidance for how to get Blend-ability, MVVM and various 'silos' like Silverlight Navigation Framework, MEF, Unity and other bits and pieces working together (or should be) along with code that can be used to overcome some "pieces that didn't make it into the final product" as well as code that acts as "a reference implementation" of the XAML technologies. More information at http://prism.codeplex.com

Ian said...

@Frans Thanks. You are now, officially, my new best friend ;-)

BetaFisch said...

With Silverlight it has always been an experience vs reach issue. That seems to have been pretty consistently delivered to developers that ask when should I use this. So Microsoft has given up on getting silverlight onto android and ios. It was probably a pipe dream to start with. We still have mono and moon light delivering on this for the most part however.

Michael Heydt said...

Ian, I really appreciate your post, as well as those that Jeremy has put out. I've wanted to write about this myself, but have bit my tongue over the last couple of days as I have just thought it to be a bunch of hysteria that will blow over, and I didn't want to accidentally throw any gasoline on the fire.

This has been a real difficult thing to do though, not posting. I've been really pushing Silverlight with my employer for several years, and I've adopted it for exactly the same reasons that Jeremy has stated he did. I do that because I do believe it is the best way to build these rich applications, and there are just applications that I build with it that will not be able to be done with HTML 5, or Flash for that extent. Very rich, dynamic, data intensive, applications for various types of financial and energy traders. Our clients go crazy when I show them prototypes and then demonstrate to them how easy it was to build them, and we've built out several very nice LOB systems over the last few years.

But I have to say I never got stuck in the Silverlight is the only thing world that a lot of people think it must be. I initially did not get the "Silverlight" is immediately dead message that everyone got when I heard Bob's comments. The future is still a combination of many things, and things yet unseen, as it always is with technology. All of Silverlight, WPF, XAML, Winforms, HTML4, ASP.NET, MVC, HTML5, Javascript, ... all have their place and will evolve. That any will stay as is (well expect perhaps HTML4 LOL) is naive. I always advise those I mentor that it's best to be a generalizing specialist and polyglot. Things just change too fast for you to not be - lest you get left behind - which I think is the real reason for the hysteria from the Silverlight people over the last few days. Soon they will realize, adapt and thrive, or go the way of the DoDo.

Me, I'm starting a big Silverlight initiative tomorrow, which I had planned before all of this. Maybe it will use HTML5, maybe not. But it uses cloud services which I really think future proofs the solution, and until something better comes along the client side is good "old and dead" Silverlight.

Ian said...

@Michael Haydt Thanks for the comment Michael. I think the biggest challenge we face now is in architecting applications that play to Silverlight's strengths in giving a rich UX experience, but also give us a 'get out' option if Silverlight should become the 'new VB6'. Silverlight has always been perceived as 'a risk' by the business, and recent events have just convinced business owners that the risk just got higher. Architecting for change is quite a challenge on big, Enterprise line of business applications that make heavy use of different Silverlight-oriented frameworks, but one community will hopefully step up to over the coming months. As you've indicated Jeremy's blog is an excellent resource for dealing with some of these challenges.

Wayne Munro said...

Thanks for the enlightening article. I am beginning to see the light with this whole Silverlight is dead in favor of HTML 5 debacle. I think I can understand Microsoft's method in their madness. They are of using their typical second mouse strategy where the first mouse gets killed in the trap and the second one get all the cheese. I believe Microsoft will eventually incorporate all the good innovative stuff of Silverlight into HTML somehow. Until then, I share the same sentiments as @Micheal. As a developer, I would choose Silverlight / XAML ( eXtensible Application Markup Language) over HTML (Hyper Text Markup Language) for any internet based application.

Ian said...

@Wayne So what do you do when your customer says "We just bought a ton of iPads and your application doesn't and won't run on them?"

tadanderson said...

I don't need to worry about the shift in strategy. Others are doing that for me:

As least I got my weekends back...

Ian said...

@tad Sorry to hear that Tad. Well, actually not THAT sorry if you got your weekends back - too many folks in our industry think they have to give up their evenenings and weekends to help Microsoft sell whatever shiny new toy they're pushing that they'll replace a few months down the road anyway. After 15 years of doing that it gets pretty lame, let me tell you ;-)

Presumably those making the decisions haven't been reassured by all those MVP blog posts and Muglia's own statement saying nothing's changed, Silverlight is still strategic etc etc?

Paul Stack said...

This is probably the best article I have read on this yet. You have been very good in giving the user ALL of the information required in order to try and form their own opinion

thanks Ian :)


Ian said...

Thanks @Paul , although I'm still trying to get to the bottom of what was meant by that "Silverlight is the new VB6" comment made at DDD8a. Since it was made by the guy who did Microsoft's official on-demand Silverlight 4 LOB training it has to carry some weight. Were you at that session (on WPF I believe)? In what context was it made?

Paul Stack said...

Ah i'm afraid I wasn't at #DDD8a - who made the comment? I'm sure the use of Twitter would be able to help in deciphering the context of the comment?

Ian said...

Ian Griffiths. I shut down my Twitter account so that's not much use here. It had just become a huge Microsoft MVP-wannabe circle-jerk that I found I was wasting way too many hours of my time on each day. The endless zealotry wasn't good for my blood pressure either ;-) I miss the old days when it was all "signal" and no "noise".

Paul Stack said...

oh that's why I haven't seen you post for a while. Yeah Twitter can get very full-on. It can also be very opinionated. I'm in my own world a lot of the time so I don't mind :)

I can look into this and report back though - stay tuned ;)

MyATM said...

Wow this such a great article and the tips are very comprehensive. For sure many entrepreneurs with small and big businesses are going to benefit from this. Keep it up!
MyATM - http://en.wikipedia.org/wiki/My_ATM