Silverlight: less cross-platform, more cross developers

Much has changed since Silverlight first saw the daylight. Microsoft has realized for some time that they can’t possibly maintain their ambition to support the use of Silverlight as a runtime that runs consistently in all popular OSs, in different form factors across the increasing variety of devices that have appeared since then. They had hoped, nevertheless, to make Silverlight the logical choice for the development of rich media applications for PCs and Macs, in much the same way that Flash is used; however, the speed at which HTML has been adopted and implemented by the leading browsers has taken everyone by surprise, and it had become increasingly apparent that HTML5 will soon be the way to develop customer-facing, cross-platform, ‘rich-website’ apps. Silverlight is still seen as being the best platform for browser-based line-of-business applications. It will be the main platform for Windows Phone.

Microsoft’s PDC statements by Steve Ballmer and Bob Muglia should therefore have come as no surprise. However they weren’t careful enough to clarify the difference between a line-of-business application and a fancy website. Whereas it is obvious to the seasoned developer, it seems a bit vague to the overexcited journalists who reported the announcement. In fact, all that has changed with the announcement is that Microsoft will never need to admit that Silverlight’s bid to compete with Flash as a general way of delivering video and animation has failed. This may bother the very few people who have actually used Silverlight to replace Flash in public websites, but none of the current rich-app users of Silverlight are affected by the ‘repositioning exercise’.

Windows Presentation Foundation now seems to be getting little attention. Whatever Microsoft’s motives are in downplaying WPF, Silverlight 4 and WPF, together make a lot of sense for the .NET developer, particularly since it allows the use of just one codebase to build applications for desktop, and mobile devices. Together, they are a very broad church, and the development tools that support the platforms are the best in the industry. This offers a coherent strategy for any .NET developer that uses WPF as the framework for Windows desktop applications, and puts Silverlight, as a subset of WPF, in the role of providing browser-hosted or out-of-browser applications that run on the Mac or the Windows Phone.

The emergence of the new HTML5,CSS3 & JavaScript technology is very impressive, and will soon change the look of websites. Even Wikipedia is now using it. Microsoft would have been foolish not to catch up with Safari and Firefox with the functionality of Internet Explorer. However, you still cannot create full business applications with it since browsers by definition cannot have full access to all the necessary resources of your device. Adobe’s AIR was designed to bridge that awesome gap but still has a lot to prove. You don’t have to be a gambler to bet on HTML5, JavaScript & CSS3: It’s inevitable; but it’s for customer websites, not apps.

Is Microsoft unified behind WPF and Silverlight as their strategic .NET development platform? I’d love to hear your views.