Silverlight Strategy Misconceptions

Preface

Two weeks ago at Microsoft’s Professional Developer’s Conference (PDC), the lack of Silverlight content, more HTML5 content, as well as comments from Bob Muglia, the Microsoft President in charge of the company’s server and tools business, people reacted negatively towards Silverlight’s future.  The press/blogsphere had a field day saying Silverlight was dead, and Microsoft was betting their future on HTML5.  To add insult to injury, they did so WITHOUT admitting to actually snorting coke whilst writing those articles.

Quoting Mary-Jo Foley’s article which helped spur most of it:

…what’s a developer to make of Microsoft’s messaging (or lack thereof) about Silverlight at its premiere developer conference?

I asked Bob Muglia, … that very question and got what I consider to be the clearest answer yet about how Microsoft is evolving its Silverlight strategy.

“Silverlight is our development platform for Windows Phone,” Silverlight also has some “sweet spots” in media and line-of-business applications. …But when it comes to touting Silverlight as Microsoft’s vehicle for delivering a cross-platform runtime, “our strategy has shifted,”.  …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.

Taking a comment from an executive of a huge business unit, and using 2 sentences of theirs in a make-shift interview to clarify a future roadmap of a technology as deep as Siverlight and calls it “clear” is incorrect.  Already Bob clarified his remarks, discrediting the speculation and apologizing for the confusion.  As did Steve Ballmer.  As did Scott Guthrie.  Silverlighthack.com had a great summary of pointing why this “HTML5 Over Silverlight Strategy” is completely nuts.  They even have a series of events specifically for Silverlight.  Maybe these people just want ad revenue for their blogs with their FUD, I don’t know.

This is the 2nd time this has happened.

This is indicative of Microsoft’s company culture actually existing within their community as well.  Specifically, the desktop vs. the web group.

As someone has had inside contact with various Microsoft teams at various levels over 4 years from Bill Gates to developer evangelists like David Isbitski, and marf00kin’ Scott Barnes, even not as an employee, as well as being the target market of their Silverlight initiative, I’m keenly aware of the struggles they’re having internally for company mindshare on a focused direction.  They have thousands of brilliant people internally arguing over where Microsoft should go, both with their products and as a company.  Their incongruent marketing that crops up time to time is an example of this.  They’re a big company, and considering that they are in a ton of verticals, they do a good job considering.

However, their developer community seemed a little misguided and some of the blog posts rubbed me the wrong way because of their complete inaccuracy at reading the tea leaves.  Specifically the Peter Bright article at Arstechnica.com and they way he implies the future is already written and puts words into the mouths of Microsoft exec’s; his perceived future is complete wrong, and there is much to debunk.  That’s just one example.  I want to set the record straight.

Microsoft’s 2 Camps: Desktop & Web

I don’t work at Microsoft, nor have I ever, but I’ve heard from 3 random employee’s and confirmed/denied with 2 non’s that this is in fact the case (or a great over-simplification).  There are 2 main business units that are actually cultures at Microsoft: the Desktop and the Web group.

The desktop group has all the traditional Win 32 stack, such as Office, Windows, and Internet Explorer.  They embrace WPF, native code, and physical boxes you interact with.

The web group has, from my perception since it seems that’s mostly what I get exposed to, a ton of new blood.  They have Silverlight, and all the other web based initiatives at Microsoft.

What’s the difference and why does it matter?  Each believes in a different future for the company.  The Desktop group believes in iterating the Windows OS, providing awesome tools to build for it, and releasing Microsoft software atop it.  The Web group believes in embracing the web, specifically Silverlight as the future of their company, and building toolsets around it.

These two vastly different points of view are why some things Microsoft do are cool, like Netflix, and others, like Outlook Webmail, suck.  They’re a big company, sure, but getting consensus around initiatives all spawns from these 2 belief systems.

Complications

The .NET runtime & WPF get into fuzzy realm.

There is a lot to love about .NET.  Every Flash & Flex Developer I know has nothing but wonderful things to say about C#.  In the Flash/Flex community, no language is spoken more highly of, even beating Scala, Clojure, and Haskell because you can actually make a good living doing it AND enjoy the language.

Silverlight, currently, on Windows Phone 7 does not support everything.  Most of it, yes, but it’s not complete, 100% exact support of what’s on the desktop.  For desktop Adobe AIR vs. Android AIR, the differences are acceptable and make sense.  Some do not and are just a result of it being a version 1 whereas others are just a limitation of the current device hardware technology.  Same for Silverlight.  This isn’t a deal killer, but there is a key point here I want to use to help illustrate the even differing perception of the same Silverlight technology within Microsoft.

Some within Microsoft view Silverlight as an extension of the desktop, a natural evolution of the .NET platform.  They see it as “leveraging people’s unused CPU power” to quote Tim.  Basically, pushing processing down to the client machines to allow them to do more.  Bing/Google/Yahoo maps are an example of this.  Client side generated charts like Pivot & PivotViewer are another.  This is the Desktop mentality at work; using Microsoft technologies to leverage more powerful hardware/software to do more things.  Good stuff.

Others view Silverlight as their future.  They see Apple, Google, and others moving more and more services into the cloud, and consumers using the web on a variety of devices vs. using one OS, and only using desktop applications on that OS.  From a “Cloud Business” perspective, Microsoft is doing some really cool things.  From a “Cloud Consumer”, well… I’m not seeing it.  3 years ago, Microsoft was experimenting with a lot of neat web based ideas.  3 years later, it seems Bing.com is what they collectively moved forward with; a collection of web initiatives.  This is in stark contrast with the strange hybrid that is live.com, and it’s sometimes anti-web requirements of having to have a Windows OS to use some features/applications.

Clearly Microsoft has hired a lot of good, smart, and correct talent for their web teams, yet don’t seem to give them the full support they need.  Either that, or they don’t get the marketing PR muscle the desktop teams do.  … except for MIX 2010.  Clearly all the Silverlight haterz talking about PDC didn’t attend MIX this year, else they wouldn’t currently be spouting insanity.

I think Bill Gates himself said it best back in 2007:

What was Web 2.0 anyway?

Yeah… clearly he’s on the Desktop team. *sigh*

Balmer has the challenging balance of continuing web/cloud initiatives, battling Apple with Adobe’s & Google’s help behind closed, clandestine doors, all the while iterating on Windows & Windows Phone 7.  That’s desktop, web, and mobile.  All 3.  All 3 include Silverlight.  All 3 include Flash.  All 3 include HTML.

Developers like to correlate technologies with platforms, but its’ all about the clientele they serve.

The Platform That is Mobile

The mobile revolution started awhile ago, but Apple’s iPhone basically got it kick-started to where everyone else was forced to actually follow.  The problem was that Steve Jobs muddled the waters completely with his HTML5 marketing that was completely incorrect.  Promoting WebKit is a viable development platform, releasing a HTML5 showcase site that didn’t work in all browsers, nor on the iPhone itself, and most wasn’t even HTML5… yet in reality wanting everyone to buy a Mac and write Objective C via UIKit.  Wait, what?

HTML5 is the future, but in reality the money and future of our platform is in fat client development.

Now, Steve Jobs is an ace at the reality distortion field since he invented it.  Others aren’t.  Like Bill Gates, Steve Jobs doesn’t get the web.  The music industry continually dies.  Yet, Apple creates yet another social network… but it’s desktop based?  In iTunes?  Try favoriting something that isn’t in the iTunes store on Ping.  You can’t.

Another example, what happens when you want to watch a movie on Netflix?  You press “play” and it plays.  iTunes?  You have to purchase/rent, and then wait while some if it downloads.  And you have a set time frame when to view it.

Apple doesn’t get the web.  It’s about immediacy for the consumer, convenience, and being available just about anywhere.  There’s a reason Hulu.com was so quick to go to a paid subscription.  The eventual wave of digital video is finally negatively affecting their earnings, and they have shareholders to pay.

Case in point, Time Warner’s & Comcast’s Q3 earning reports; they’re all losing subscribers, and claim it isn’t the internet or competition with better technology (satellite, etc).  We heard this same story with AOL, folks.  The economy is a major factor, yes, but the internet is changing people’s behavior yet again.  Even with satellite, her majesty and I don’t even use it; we use Netflix & Amazon through our Roku.  Mark my words, in 4 years, satellite TV & radio will be in deep trouble as better connected devices get in our houses and cars, on the cheap.

As you can see, there are a variety of ways consumers consume media.  Notice none of the above is OS specific.  Mobile just naturally falls in line, as does consumer expectations that it just works on the device.  Where is Microsoft in all of this?  Windows Phone 7?

The problem with that is that there is more to mobile than just their mobile OS.  Apple’s strategy of control has paid off for them, but they still don’t have a huge chunk of the market.  Regardless, it’s such a strong pull, many have written applications & websites to ensure their content can be consumed on those devices.  Android’s growth is proof consumers will pay for sub-standard experiences… as well as the same companies ensuring you can view their content on those devices as well.  …Except for Hulu because there are a lot of politics around DRM and devices.

Google’s got their language (Java), runtime (Java & Android), and hardware (partnered manufacturers).  Adobe just rides on top of everyone (and it actually works now thank God…).

Microsoft finally has an offering with the best language, the best toolsets, but an unknown platform.  It’s like if Adobe released their own OS to wrap AIR/Flash Player.  They didn’t do that; instead, they wanted their runtime everywhere.  Microsoft conversely is taking their runtime as saying to other manufacturers to use it.  This, again, is the Desktop group having more sway than the Web one.  The Web guys and girls would of had Microsoft partner with various manufacturers & operators like Adobe did and have Silverlight be installable just like AIR is on Android.

Regardless, the future is mobile, and Microsoft has positioned Silverlight squarely in the future.  HTML5 isn’t hear yet, and anyone thinking IE9 is Microsoft’s line in the sand doesn’t understand the web.

The Death & Resurgence of the Designer Story

Microsoft made it pretty clear they were embracing reality at MIX 2010 by supporting integrating with their development tools with Adobe design tools… even better than Adobe has currently done.  Yes, they sunk millions into getting the designer community to become attracted to Microsoft’s toolsets via Design and Blend, but it didn’t work.  They were pragmatic, cut their losses and moved forward.  They realize rich internet applications, today, are built using Flash or Silverlight.  The tools to design them are built by Adobe.

While the right decision, this clearly shows the biggest problem Silverlight has to date: lack of designer community.  There are some, yes, but most of the stalwarts are still making waves with Processing or Unity3D and paying the rent via Flash/Flex work.  This accidental dumbing down of the experience has lead to yet more confirmation that while the R in RIA is important, it doesn’t have to be as glorious as some desire.  Case in point make a nice design, add some jQuery, tie it to a .NET back-end, voila, RIA.

Regardless, Microsoft gets the designer/developer workflow, has the best tool integration I’ve seen to date, and encourages it.  Until they break in, and I mean big time, into the agency world, their designer adoption will just never get there.  Their current path supporting video, and other RAD initiatives are great (Sketchflow, FXG support, and Pivot).  This is a huge deal when selling clients “the workflow” that makes your software solution.  Using that story to sell yours is… well at lot easier to sell.  The opposite extreme, it’s so much fun to explain how I fill the confusing gap that is designer/developer integration in Flash & Flex.  Near impossible to do that in 140 characters or less and fully capture the value.

Dissecting Peter Bright’s/Arstechnica’s Article

Now let me dissect this article.

For reasons that are not immediately clear to me, it seems that a lot of developers who attended Microsoft’s recent PDC event were surprised to hear that the company now sees HTML5 as the way forward for developing rich Internet applications—and not, as they had been expecting, Silverlight. Their surprise surprises me, because past statements by the company had already made this repositioning obvious, though perhaps not explicit.

What past statements?  Have you actually talked to people in Microsoft working on these initiatives?  In non-contrived settings?  I have.  Multiple times.  Microsoft has continually showed a commitment to WPF, Silverlight, and their HTML5 initiatives.  HTML5 actually came late.  If you actually went to a MIX conference, you’d see ALL of 2010 was pretty much about Silverlight Day 1… and “everything else” Day 2.  That’s whats so neat, and scary, about Microsoft.  They’re big enough to tackle any tech initiative they want.  They can do ’em all (desktop, web, and mobile).  While Adobe is FINALLY getting their act together (I guess…) with HTML5 hype via Adobe Edge, Microsoft has had the tools for building web apps for years.  People to this day still use ASP (roll your Ravenloft horror check, suckaz!)

Clearly Peter is the desktop side of Microsoft.  Yet another reason the IE team needs to move out.

When Silverlight was introduced in 2007, it was positioned as a kind of alternative to Adobe Flash.

No, it wasn’t.  It was introduced as a part of the RIA story for .NET developers.  All they had at the time was desktop deployment for WPF, or web deployment with some AJAX love.  They had zero rich graphics (no, SVG doesn’t count and you know it), sound, and video.  There were some stalwarts, yes, who use .NET for the middle tier and have Flash & Flex hit it, but that’s the exception to the rule.  If you’re in a Microsoft run business, at the time, you had zero choice but to use Flex.  Now, not only do .NET devs have a choice, they have an obvious one; Silverlight.  Since a lot of those companies sometimes have desktop initiatives, they’ll just take the extra step and go to WPF, but for web based clients, especially consumers, you now have a FULL Microsoft stack to do MLB.com for example.  You didn’t before.

Sadly, too, Microsoft devs seem to live in a Microsoft world.  In 2007/2008 (whenever it was), you should of seen the eyes of those developers light up when they saw some of the image zoom, and other multimedia demo’s Microsoft was doing for Silverlight.  They were amazed, the chatter increased in the large room, and the excitement to create was palpable.  Except from me; I was face palming because us Flash devs had done this shit 7 years ago.  This is a clear example, and yet another reason Silverlight was introduced: If Microsoft doesn’t offer it, it must not exist.

Though Silverlight and Flash have their differences—Silverlight’s approach is a bit more programmer-oriented, Flash’s a little more designer/artist-oriented—they were broadly aimed at the same market: complex, interactive content, delivered through the Web browser.

Flex?  Hello!?  Sun had JavaFX.  Adobe had Flex.  Microsoft had zilch… until Silverlight.  Now it was a proper war.  Flex is Flash for programmers.  Too bad you’ve never heard of it.   Silverlight as the runtime can do all the Flash designer stuff too; you still need API’s, components, and toolsets to support the “programmer oriented” audience.  Peter’s also missing the point that Flash is, even to this day, mainly targeted at consumers whereas Flex is usually behind the firewall.  Flex is extremely popular, you’ll just never see it.  I’m sure there is a lot of Silverlight work that’s awesome that we’ll never see as well.

HTML5 is now the solution for these same rich Web applications.

There is no way Peter has ever built RIA’s.  Peter has no idea what he’s talking about.  HTML5 won’t be done till 2022, and browser support isn’t there yet, even with IE9.  Yes, Firefox and Chrome have some wonderful implementations, but right now, you have to build for graceful fallback. For websites, this is no problem.  AJAX is getting old, and this is a plus in browser support.  But for RIA’s, right now, Flex on top of Flash Player is where it’s at.  Silverlight is also a great solution if you already have a .NET, or entrenched Microsoft stack at a large organization.

…it’s been clear from Microsoft’s recent actions that HTML5 is the priority, and over the past few months, the company has as good as said so already.

Incorrect.  Microsoft is not a singularly minded company.  There are 2 camps, as I’ve discussed.  And they argue.  A lot.  Well managed diversity is a scientifically proven strength of companies.  On the other hand, it’s challenging for a company, especially in tech, when you have such diversity.  The older gen is either cynical about the client/server pendulum, and/or feels the recent mobile rush justifies their position that native code deployed on computer/device is pure win.  The younger generation is either all about the web, RIA’s, and mobile.  This is a major stereotype, and doesn’t do justice the diversity, but it’s clear there is a lot of this internally if you just talk to the employee’s from a variety of positions.  Like a lot of big companies, many groups vie for control & resources.  If one just happens get some PR that YOU happen to ONLY read, I can see where you’d get this perception from.

Peter’s dead on in the niche & mobile angle… except Windows Phone 7 ships with an IE7/IE8 hybrid.  This isn’t the HTML5 people want like WebKit on the iPhone, and other mobiles, which is constantly updated.  Hopefully Microsoft will update it as well.

I agree with most of the rest of what he says.  It’s murky waters in terms of future.  He barely touches the surface of the rabit hole that is video codecs in HTML5.  The clincher is he finally gets back to reality:

Developers who want a consistent look and feel to their applications currently have two choices: they can use HTML5 and spend a lot of extra time testing and tweaking to ensure consistency, or they can just use Flash or Silverlight and get consistency automatically.

No shit.  Automatic consistency is a HUGE deal.  Software’s hard.  You don’t need more problems, you want & need less.  Especially if you make money in volume tool sales, it helps to have low barrier of entry for learning curves, and consistent look & feel when customers deploy their apps.

In this context, Microsoft’s decision to downplay Silverlight is baffling. It might be the right thing to do in a few years, but right now, today? No. It’s crazy talk. Even the World Wide Web Consortium, the group behind the HTML5 standardization effort, is suggesting that developers hold off on using HTML5, at least until the middle of next year when the specification should be reasonably nailed down.

Er, yeah, totally… wait a minute, why didn’t you start with this!?

Conclusions

As you can see, Silverlight has a long future.  Windows Phone 7 really was the most wonderful thing ever to happen to it.  That shows a strong commitment from Microsoft, a positioning in the fun edge of technology future, and a wonderful thing to be integrated with that just so happens to have a market attached.  We Flex & Flash devs have to ride atop Android and Google’s furious iterations as non-native code, or wait 10 years to get our code converted by IPA to C++ for iOS… where no one likes us, yet we love them.

Silverlight developers have it good.  PDC is apparently just a bunch of h8z who should be ignored on their future predictions.

Also, this is a lesson about presentations, even conferences.  For Microsoft who has such a gigantic technology stack, it’s challenging to fit everything in.  As someone who regularly gives technology speeches, I can tell you I never have enough time.  As a public company, I understand the desire to read deep into conference presentations as an indicator of company direction.  A lot goes into setting up conferences, a lot of those decisions are based on demographics and location.  Clearly Microsoft made a mistake not including Silverlight in the lineup, and admitted it was unintentional.  They’ve now had to make conciliatory blog posts and make-shift seminars/mini-conferences to confirm their continued support of Silverlight.  You shouldn’t read too much into one conference.  If they do it 3 times in a row, yes you should read into it.

2 Replies to “Silverlight Strategy Misconceptions”

  1. One minor correction to an otherwise excellent article:
    “HTML5 won’t be done till 2022…”

    This is the most misunderstood thing that’s ever appeared in an article I’ve written. If you read Ian’s answer to my question carefully, you will see that HTML5 “the spec” will be done very soon. The 2022 number refers specifically to when it is expected that there will be two full and complete implementations that are 100% correct, and therefore it meets the requirements to become a W3c “recommendation”. By way of comparison, HTML4 (as well as previous versions) can *never* become “done” (aka “recommendation” status) simply because the spec is vague and no implementation will ever be provably correct.

    HTML5 is, for better or for worse, near completion as a specification. It is getting very close to “Last Call” status. I would expect that sometime around late 2011 or early 2012, the HTML5 spec will be locked down and no longer be changing, even if it will take another decade for it to be formally moved to “recommendation” status.

    J.Ja

  2. @Justin I hear ya; there’s plenty of it already implemented people can use. We Flash/Flex developers use this a trolling statement, and compare it to ECMA Script 4’s death; we’re still good to go even though ECMA never panned out. HTML5 functionality is still being implemented, and works today in a lot of browsers, even though the spec isn’t actually done, etc. Again, the point here is describing the confusion around “what” HTML5 actually is and contains, and having that clearly identified as what you can deliver, and what you can’t, when and where… which is really hard to do even if you know all that.

    If you look at how browsers are already chomping at the heels of Flash/Silverlight, it’s proof they don’t need specifications. WebWorkers are a perfect example of a simple JavaScript implementation to get multi-threading support in a simple way. Already supported in at least 2 browsers, yet Flash Player doesn’t have this? Even Silverlight has threads.

    The point is, when Flash gets it, you can use it. Just because IE could get WebWorkers doesn’t mean you can use it; you’d need to have fallback, or just not use that functionality if you don’t have browser support in the browsers you’re supporting. There is a huge cost to this in application development, and the HTML5 crowd seems to glaze over this. If I get something in Flash, I can “use it” with confidence most people have upgraded in 8 months. I can’t do that with browser functionality unless I work in a company that ordains browser installations. There are a lot of those types of companies, but they are not the norm.

Comments are closed.