In the run up to Microsoft’s MIX conference, next week in Las Vegas, a new post on the Silverlight Team Blog from Microsoft Developer Division VPs Walid Abu-Hadba, Scott Guthrie and Soma Somasegar prov ides new clarification of Microsoft’s position on Silverlight and HTML 5. Read the post and interpret it for yourself. My take is this: given the current landscape of Smartphone and tablet OSes, only HTML 5 can let you reasonably target all of them, so Microsoft’s going to bring you greatly improved dev tools for that platform. If your app needs to run only on Windows, Mac OS and/or Windows Phone 7, then Silverlight provides a richer, more optimized experience and greater developer productivity, so Microsoft’s going to continue to invest there too.
I recently gave a talk on the Mobile Market at an exec briefing outside of Boston. In conducting my research for that talk, I discovered than an emerging strategy for mobile development is the creation of native apps that are merely thin shells around an embedded HTML 5 browser. The combination of there being 5 or 6 major mobile OS platforms (WP7, Android, iOS, BlackBerry, Symbian and webOS) and the fact that WebKit browsers show up on most of them (with IE9 and HTML 5 coming soon on WP7) means that a cross-device approach is the only one that’s economically feasible for many developers, and HTML 5 is the cross-device approach that works.
With all that in mind, I think the position Abu-Hadba, Guthrie and Somasegar have outlined is the only one that’s reasonable. The pledge Microsoft has made to support developers with strong HTML 5 tooling (and its gracious admission of the deficit that exists there right now) is a big deal, and I think it will be genuinely welcomed and appreciated by the developer audience.
Microsoft offers a strong Web and cloud platform that provides a superior environment for serving virtually any device (via HTML 5). It also has a highly evolved rich client platform in Silverlight that works beautifully on Windows, Mac and Windows Phone. So the emerging rule of thumb is to use SL if the device targets support it; use ASP.NET and HTML 5 if not, or use a combination of SL on supported devices and HTML 5 on all others. I think this is an ideal protocol given the far-from-ideal fragmentation we have in the client market.
There’s the adage that when developing an application you can pick any two of the following three attributes: good, fast, and cheap. Maybe we have a corollary to that now for cross-device development: pick any two of: rich, broad-reach and cheap. If that’s the landscape, and I think it is, then Microsoft is giving us the best possible approach and toolset to work within it.