Monday, November 1, 2010

It’s About Trust: Muglia’s Silverlight Screw-Up

Every year for the last several years, Microsoft has used their Fall PDC conference to tout (among other things) the improvements they’re making, about to make, or have just made to the Silverlight platform.  But over the last year, there’s been a fair amount of discussion in the Silverlight developer community about the future of Silverlight vs. HTML 5, given that many of the things that you need a plugin for will eventually be available in HTML 5 (specifically, video and smooth animations).  This has left folks investing in Silverlight (like myself) a little bit on edge.  Microsoft has a history of touting a platform, only to drop it when something bigger and better comes by.  This may be good for Microsoft, but it’s not so good for the folks who have invested hard in that particular platform.  My assumption, however, has been that with the advent of Windows Phone 7, which is based on an old but reasonably functional version of Silverlight, that Microsoft has lots of reasons to continue investing in and improving the Silverlight platform.

Still, I was surprised, and not in a good way, that the entire emphasis at PDC 2010 was on IE9 and HTML5.  If the word “Silverlight” crossed Ballmer’s lips at the keynote, I missed it. There wasn’t a single session dedicated to Silverlight (it got mention in a few), and after a regular drumbeat of 12-month releases, there wasn’t a single hint about what might be coming in Silverlight 5.  This worried me.

My worry turned to angst, and from angst to anger, when I read Bob Muglia’s comments about why Silverlight had been de-emphasized at PDC 2010:

Silverlight is our development platform for Windows Phone,” he said. Silverlight also has some “sweet spots” in media and line-of-business applications, he said.

But when it comes to touting Silverlight as Microsoft’s vehicle for delivering a cross-platform runtime, “our strategy has shifted,” Muglia told me.

Silverlight will continue to be a cross-platform solution, working on a variety of operating system/browser platforms, going forward, he said. “But HTML is the only true cross platform solution for everything, including (Apple’s) iOS platform,” Muglia said.

Coming on the heels of Silverlight’s no-show at PDC 2010, this is clearly damnation by faint praise, and it’s spawned no end of tweeting and blogging and reporting about the future of Silverlight.  At the moment, there are lots of comments coming out from MS folks that Muglia misspoke or was misinterpreted, and that there’s going to be a walk-back of some sort in the near future. And if you’re a Silverlight developer, there remain plenty of reasons for hope, besides the obvious one that Windows Phone 7 is clearly a huge bet for Microsoft.  After all, as lots of folks have pointed out, the HTML 5 standard won’t be finished for maybe another 10-12 years. No current browsers support even the full set of tags that have been defined so far, and the ones that do don’t support them all in the same way.  The fact that the HTML 5 committee can’t even agree on a video codec standard is the classic example of this, but there are others.  And even when browsers have caught up, the tooling behind HTML5 simply isn’t there yet.  For starters, none of the MS tools can output HTML5, and even when Blend does finally support it, the various debugging environments for JavaScript/JQuery have many years of improvement ahead of them before they’re even within shouting distance of C# (which is, in my opinion, the best language ever, running in the world’s best IDE by a significant margin).  It’s precisely these things which make it so odd that Muglia has declared the Silverlight vs. HTML5 debate over – and which make it so likely that Muglia is going to “clarify himself” in the near future.

Still, I’m worried.  I love C#, and I love the fact that I can use Silverlight to bring C# to client-side web applications.  It makes writing the UI logic of an application dramatically easier than trying to code it in JavaScript.  But I’ll confess that I like Silverlight less than I like the idea of Silverlight.  The tooling remains poor by Microsoft standards.  XAML is a verbose, ugly language that is, at best, an awkward fit onto the simplicity and elegance of C#.  Blend is powerful, but the UI is a royal mess.  The XAML editor in VS2010 is light-years ahead of VS2008, but it remains slow and clunky.  Debugging databindings has always been a significant PITA, and it shouldn’t be.  Unlike Flash, Silverlight doesn’t even support streaming webcams and microphones.  Yes, it gives you access to the raw bits coming out, but if you want to do anything with those raw bits, you have to write your own framework to compress and stream them somewhere. God help you if you actually want advanced DSP like echo cancelling.  (I just got echo cancellation working on Alanta’s platform, by the way.)  It’s really nice that SL4 gave us access to the Net.TCP WCF binding – but it does so without security or authentication.  And of course, Silverlight has only reached about 60% of desktops, vs. some 96% for Flash.  Requiring a third of your audience to download a plugin can be a significant drag on your own application’s adoption.

In other words, Silverlight is still a pretty raw platform.  Version 4 was probably the first mature release, but the ecosystem still has a long way to go.  Nevertheless, I’ve felt comfortable investing in Silverlight despite its rough edges because I believed that Microsoft was committed to fixing the multitude of problems that remained.  I saw – and see – the potential that Silverlight has to be a premiere application platform. It could have a truly awesome design and development environment.  It could run faster than HTML and JavaScript could ever hope.  It could give you access to the best parts of the CLR on every desktop.  It could let you run raw GPU-accelerated code.  It could let you really achieve “write once, run everywhere (that Jobs will let you)”.  It could iterate orders of magnitude faster than the W3C or WHATWG could possibly hope to.  It could develop into an awesome, premiere realtime collaboration environment that users love because they don’t need to know anything about it and developers swear by because they do.

It could.  Silverlight could do all these things.  It doesn’t do them yet.  And the only way that it might ever do these things is if Microsoft puts its full weight and authority and development resources and marketing muscle into play.  Silverlight has always been a hard sell, an also-ran in a crowded space dominated first by Flash and now by HTML 5. But it has the potential to punch its own weight if Microsoft is committed to fixing all the things that remain wrong with it.  And that’s precisely what Muglia seems to have committed Microsoft to not doing.  Yes, there’s going to be another version.  (But there’s no point to Silverlight unless there are going to be five more versions, at a minimum.)  Yes, it is the platform for Windows Phone 7.  (Which has precisely, let me check, oh, umm, zero market share, in a market dominated by companies which have handily out-competed Microsoft for years now.) Yes, it can still fill a couple “sweet spots” in media and line of business applications.  (But these “sweet spots” can be addressed just fine with Flash and .NET client apps.) 

But here’s the real issue.  I’ve spent two years learning Silverlight because I trusted Microsoft to bring me a good return on my investment.  But unless Microsoft makes it clear very shortly that Muglia was simply wrong (not just “unclear”), you’d be foolish to make that same investment now.  WP7 looked mildly interesting because I might be able to leverage the Silverlight ecosystem on a new platform. But if that ecosystem is going to get de-emphasized, what mild interest I had in WP7 vanishes.  What Muglia has said, in effect, is: Silverlight is a bad bet for your technology future.  You shouldn’t waste your time learning it. Go learn HTML5 and JavaScript and JQuery instead.  And that’s a real problem for Microsoft. Because if I’m going to be limited to HTML5 and JavaScript, and can’t use C#, I don’t feel any particular need to do my coding on the Microsoft stack.  IE9 looks interesting, but at the moment, IE has had three versions in a row which are slower and uglier and less standards-compliant than any other browser on the market.  MySQL is mildly interesting, but Hadoop and CouchDB and MongDB look pretty darned fascinating.  Linux has clearly come into its own as a server platform.  I’ve had a hankering to learn Python for a while now (PHP is popular, but ugly, and aesthetics count for a lot with me), and RoR sounds like a pretty sweet ecosystem as well.  Muglia has just made a very persuasive argument that these technologies are going to be more important to my future than anything coming out of Redmond.

I hope he’s wrong.

1 comment:

Anonymous said...

They owed it to us, and I wasn't going to let somebody bully me away from it pay day loans uk 86% to "consolidate profitable business running on credit cards""my name is christopher.
Also see my page - pay day loans uk