Why I don't like Silverlight.

The short answer: because it comes from Microsoft and reeks of its aspirations of total domination monopoly. Because it excludes Linux even before it’s out. Because it doesn’t conform to Open Standards.
The long answer: I recall only too well the web-hell of yesteryear when sites required Internet Explorer, when proprietary, temperamental Microsoft DHTML was everywhere, despite IE being, well, deficient in all ways possible and W3C standards were already vastly superior to Microsoft’s hacks. Microsoft calls Silverlight a ‘cross-browser, cross-platform plug-in’; that I find amusing. While the company has released the developer preview runtime for both Windows and Mac OS X, there are several things to note:

  • There are no developer tools for platforms other than Windows. The SDK is only available for Windows XP and Vista. This is funny considering that today, more than ever, the Web is powered by Open Source software (Apache, Java, Javscript, JBoss, Tomcat, PHP, Ruby On Rails, lighthttpd) and Open standards ({ECMA,Java}script, XHTML, XML etc.). Web design and development is more or less split between Windows and the Mac, with the latter getting most of the attention lately in this ‘Web 2.0’ era. Moreover, the specification of Silverlight is closed, which means it is not exactly easy or straightforward to create Open Source or third-party development/design tools for other platforms. Note that Adobe’s Flash/Apollo, its main competitor, is currently also closed and proprietary (for the time being), but is mostly based on Open Source/Standard components and as such the development of an Open Source SDK for it is probably easier. Strike 1 for the cross-platform claim.
  • Microsoft keeps ignoring linux despite the fact that it has a considerable and increasing market share on the desktop (at least comparable to Mac OS X). There is no mention of a future runtime or development tool release for linux. Flash (runtime) already supports Linux and Apollo is slated to support Linux, at least as far as the runtime is concerned. Strike 2 for the cross-platform claim.


While Silverlight may bring .Net to rich internet application frameworks (and that’s not bad) and while it may just improve on many technical points where Adobe, not exactly a hip company either (it took them about ten years to do something about the sorry state of Photoshop, exactly because it was practically a monopoly in that market), has failed to do so with Flash over the years, the whole thing stinks of Microsoft domineering even before it’s out. Obviously time will tell whether Microsoft intends to truly release a cross-platform framework or whether its main short-term goal is to hijack its competitors before a large part of its profitable and expensive desktop applications is rendered obsolete by true cross-platform, cross-browser RIA alternatives.
Unfortunately, for the time being, there seems to be complete absence of a high-profile Open Source effort to counter those two proprietary ones. From the outset Apollo is in a better position to be Open Sourced, given that Open Source support/libraries for XHTML + AJAX is much more mature than support for .Net (Mono) is. J2EE+XML could be another possible solution there, but without some serious corporate backing (Big Blue, Sun, Redhat, Apple?) it wouldn’t stand a chance unless it was out now; Java is years behind in most things desktop anyway.


Given all that, I am very sceptical about supporting any such effort from Microsoft, given its corporate strategy, its past actions, its tactics and the complete lack of acknowledgement of the fact that the web is not the proprietary ‘Windows+IE Required’ mess it was between 1999-2003 and that Linux has become a mainstream operating system for millions of people; and its desktop maturity era is only beginning. More to the point, contrary to Adobe’s Apollo, Microsoft seems intent on keeping people locked into Windows no matter what, by releasing an SDK only for that platform, by using a proprietary vector graphics format (cf. SVG) and so on. The point to note here is that for many people technology comes second to Openness. I’d take an Open Source, corporate backed framework, perhaps lacking some of the technical features of Silverlight (e.g. .Net’s undoubted superiority over Actionscript) over Microsoft’s lock-in products+services any day. Lacking that, I’d opt for the most open solution, and that currently is Adobe’s Apollo. So should you, even if you use Windows exclusively; your choice will help put some sense in Microsoft’s strategy before it has to be dragged to court like last time it decided to play nasty. Having said that, I guess the ball is firmly on Adobe’s court to leverage existing technology, fix Flash’s deficiencies and present a potent competitor to Silverlight. Open sourcing Flex was a first step. I wonder what’s about to follow given Creative Studio’s 3 numerous improvements over its predecessor (check out ActionScript 3), a sign perhaps that the post Macromedia-merger Adobe is serious about building upon its marketshare and truly innovating.
Microsoft’s MIX07 is currently in progress. This article was written before this conference took place and as such does not contain any information announced therein.
[Update: A more elaborate post-MIX op’ed on Silverlight, by Ars’ Ryan Paul, results in a simliar conclusion with regards to the approach chosen by Microsoft.]