Developer dilemma: Does Silverlight have a future?

analysis
Nov 5, 20106 mins

Amid mounting competition from HTML5 and Flash, Microsoft's RIA platform faces an uphill battle to win developers

Silverlight isn’t going away. Microsoft insists it won’t. Unfortunately, even after two rounds of comments by Bob Muglia, president of Microsoft’s server and tools business, developers are still having a hard time envisioning exactly what Silverlight’s future will look like.

The consternation first arose during Microsoft’s Professional Developers’ Conference (PDC) last week. Microsoft watcher Mary-Jo Foley, observing that the show was remarkably slim on Silverlight content, approached Muglia about it. Muglia explained that “Silverlight is [Microsoft’s] platform for Windows Phone 7 development,” but that where cross-platform Web content was concerned, the company’s “strategy has shifted” toward HTML5.

[ InfoWorld’s Dori Smith explains how you can use HTML5 in your website today. | Keep up with key programming news and isights with the Developer World newsletter. ]

Those remarks naturally caused some alarm, particularly among those who were accustomed to viewing Silverlight as Microsoft’s answer to the Adobe Flash and AIR platforms. For some, it was the first indication that Microsoft has opted to cede the rich Internet application (RIA) market to Adobe and pursue a pure-HTML strategy.

Is Silverlight’s top rival Flash or HTML? Muglia tried to clarify his comments in a post to the Silverlight Team Blog earlier this week. “The purpose of Silverlight has never been to replace HTML,” he wrote, “but rather to do the things that HTML (and other technologies) can’t, and to do so in a way that’s easy for developers to use.”

For many developers, however, the question has never been whether Silverlight will replace HTML, but whether (or indeed when) HTML and its related standards will evolve to the point that they can replace Silverlight and other plug-in-based RIA technologies. With Microsoft joining Google and others in aggressively promoting HTML5 as the future of cross-platform Web applications, that moment seems close at hand.

Evidence of a strategic shift at Microsoft was visible even before Muglia’s PDC comments. Microsoft’s Office 2010 Web Apps, for example, are built primarily with standards-based HTML, CSS, and JavaScript; Silverlight is completely optional and its use is limited to a few minor cosmetic enhancements. Microsoft’s seeming reluctance to eat its own dog food hardly inspires confidence, especially with the company now touting the forthcoming Internet Explorer 9 as a leader in HTML5 support.

So how should prospective Silverlight developers interpret these latest turns of events? Should they press onward with the platform despite Microsoft’s seeming ambivalence, or should they abandon it for a safer alternative? There are arguments to be made on both sides.

The case for developing with Silverlight In the “pro” column, Silverlight still has a lot going for it. Classically trained developers often prefer it to Flash because it mimics the Windows development model and allows them to use their customary tools, such as Visual Studio. It’s a geek’s RIA solution.

It’s also still reasonably cross-platform, despite Microsoft’s backpedaling. After all, the vast majority of desktop clients are either Macs or Windows PCs, and Silverlight supports the most popular browsers on both. There’s even an open source Linux port available via the Mono project, and while it’s not as fully featured as its commercial cousins, it suffices for many apps.

Silverlight can do some things that HTML5 can’t do today and still won’t be able to do when the spec is finalized. For example, Silverlight supports high-quality streaming multimedia complete with digital rights management (DRM) support, a feature Netflix relies upon to deliver instant access to its online movie rental library. By comparison, the HTML5 standard does not specify any video codecs, let alone more advanced features.

What’s more, it’s safe to assume that Silverlight really will be the preferred platform for Windows Phone 7 development, rather than Web apps. For all Steve Jobs’ hype about HTML5, iPhone users still consume the majority of their online content using site-specific downloadable apps. Silverlight will allow developers to build and sell comparable experiences for the Windows Phone platform.

And even if HTML5 is a better choice for the Web, developers can still use Silverlight to build and deploy desktop applications faster and easier than any previous Windows development environment allowed. The resulting apps will run on Windows and Mac OS X alike (and maybe even Linux).

The case for dropping Silverlight like a hot potato On the other hand, developers might be ill-advised to rely on anything other than Windows support for Silverlight. The technology may run on Mac clients today, but it’s hardly as broadly cross-platform as (say) Java, and Muglia’s comment that “HTML is the only true cross-platform solution for everything” hints that Microsoft’s commitment to widening Silverlight’s reach may be waning.

Yet if Silverlight is destined to become chiefly a Windows technology, how valuable is it, really? After all, Silverlight is essentially a stripped-down version of Windows Presentation Foundation that’s packaged as a lightweight, downloadable runtime. So if you don’t expect your applications to run anywhere but on Windows, why not just target the core WPF APIs and gain their full power?

And just because Silverlight can do a few things that HTML5 can’t do doesn’t make it preferable to HTML5 for most Web applications. Sure, if you really want to do streaming video with DRM, Silverlight might be your best choice. But the other 90 percent of RIAs probably don’t need to take advantage of Silverlight-specific features, so why get into the habit of using it?

Similarly, if you’re committed to Windows Phone 7 development, you may already be wedded to Silverlight. But the prospects for Windows Phone 7 remain murky at best, and few developers are likely to jump on board with Silverlight just to support an unproven smartphone platform, particularly if they aren’t using it already.

But the most obvious argument against Silverlight is that Microsoft still appears unwilling to give the technology its full commitment. Muglia’s insistence that “Silverlight is very important and strategic to Microsoft” rings a little hollow when in the same blog post he says Microsoft will only reveal its plans for Silverlight “in the coming months.” Nobody wants to be stuck maintaining enterprise applications built with an out-of-date, orphaned technology — just ask anyone who has to maintain Web apps designed for IE6.

Microsoft must now fish or cut bait. So far, Silverlight has not been a serious competitor to Flash on the Web, and its future on mobile platforms other than Windows Phone 7 seems doubtful. If Microsoft expects to retain current Silverlight developers — let alone win new ones — it should publish a clear road map for the platform, complete with specific, credible milestones that will allow it to remain competitive against HTML5, Flash, and traditional applications. Absent that, pro-Silverlight puffery by Muglia and other Microsoft execs comes off as so much whistling past the graveyard.

This article, “Developer dilemma: Does Silverlight have a future?,” originally appeared at InfoWorld.com. Read more of Neil McAllister’s Fatal Exception blog and follow the latest news in programming at InfoWorld.com.