Future of Silverlight: is this technology outdated already?

From the times of release of Silverlight 2 in 2007, Silverlight was one of Microsoft's highest-prio technologies and has grown into a powerful framework allowing effective cross-platfrom development of rich Internet application using such well-respected tools like Microsoft Visual Studio and such popular languages as C# and XAML. On the other hand, there are limitations to this power. It is well-known that browser plugins like Flash and Silverlight has some inherent problems like poor performance and less effective SEO (duplicating contents and deep linking problems). These problems has become especially significant with increasing popularity of smartphones and worldwide recognition of HTML5 as a standard. It seems there is an evident tendency to reorient all development towards HTML5.

Adobe recently has fired 750 workers and reducing Flex-related development activity. Adobe official blog states that “In the long-term, we believe HTML5 will be the best technology for enterprise application development”. Surprisingly, Adobe seems to agree with Apple's leader Steve Jobs conclusion that “Adobe should focus more on creating great HTML5 tools” a year after it was formulated.

In a similar move, Microsoft is also reducing Silverlight-related activity and focusing on Windows 8. Also it is stated that “light” Metro version of IE10 oriented to mobile devices and cheap netbooks will have no support for plugins at all. It means – no Flash, no Silverlight.

It is too early to say it, but it’s possible that in the upcoming Windows 8 there will be two versions: “light” and “rich”. “Light” will be very performant, but very restrictive, it will allow to start only “Metro-style” application, developed for new WinRT platform. These “Metro-style” applications can be purchased only through Windows Store. Also this “light” Windows 8 will probably have only the “light” pluginless version of IE. On the other hand, WinRT will have excellent, highly performant support for HTML and JavaScript.

It seems that all these decisions were too hasty: JavaScript/HTML5 as technology choice currently is not yet well-suited to developing complex applications. However, in current situation it seems it is impossible to roll something back: psychological impact of recent Adobe and Microsoft’s decisions is too great to be ignored.

There’s another aspect behind all this: Silverlight and Flash/Flex are mostly finished platforms. There’s not much features left. Currently Silverlight 5 does not require as much improvement as it was in times of Silverlight 2 when developers even had no profiling tools, and some crucial parts of framework needed optimization and improvements. These times are over now, and we can say almost the same thing about Flex. Of course it would be nice if Microsoft will continue working on Silverlight and developers will get more advanced 3d features and more binding niceties, but will it be crucial for most applications? I doubt it. Currently the most common request is to support Silverlight on more platforms, but Moonlight team is already working on it, and their progress is impressive.

So when Microsoft transfers resources from Silverlight development to Windows 8 development, it does a perfectly reasonable thing, reorienting efforts towards less developed and possibly perspective technology. The main problem is not with the fact of possible stopping Silverlight development for a while, it’s with a fact that all the inevitable discussion about these decisions along with some doubtful statements like “plugins are bad” will have a negative effect on the future of plugin-based technologies.

Does it mean the end of Silverlight? Currently it’s hard to say for sure. By my estimations, this situation may lead to the following consequences:

Short-term (nearest 1 or 2 years): serious decline in development for Flash and Silverlight. Their future is uncertain. In this situation HTML5 will be regarded as a safer choice, even if it is a rather raw, complex and time-consuming technology.

Long-term: here very much depends on the success of Windows 8. And the important factor to the success of Windows 8 is its success on the market of mobile devices. But it seems that here positions of Microsoft are undermined by mere expectation of Windows 8 release. In short-term perspective, Microsoft’s only hope on the mobile market is Silverlight-based Windows Phone 7, but with the release of Windows 8, which is also touch-optimized, it may seem inevitable that all mobile-oriented software should be sooner or later rewritten with usage of WinRT. XNA, Microsoft’s toolset for video game development which has Windows Phone 7 support, also won’t be supported on WinRT. Perhaps understanding the impact of these decisions on Windows Phone sales, there were some statements that Windows 8 is not targeted on Windows Phones. These statements created even more confusion, and even if Windows 8 won’t be supporting smartphones after initial release, future unification of Windows 8 and Windows Phone 7 on basis of WinRT may seem inevitable. Besides, one of smartphone manufacturers has already announced they will be producing smartphones with Windows 8 support, and it seems that they are just the first in the upcoming technology race.

In this unstable situation, it seems that many mobile development companies will be deliberately ignoring Windows Phone 7 as a non-perspective platform, and it is possible that this problem will seriously reduce the percentage of Windows Phone 7 devices on mobile market.

Windows 8 will probably be released next autumn. Also it is possible that this revolutionary new system will repeat the fate of Windows Vista. It may have its own problems and it will require some time to polish it as a whole. This situation will give Microsoft’s competitors an additional advantage of time. On the other hand, without success on mobile and netbook market, there won’t be much motivation to transfer on Windows 8 at all, and it reduces the chances of worldwide acceptance of Windows 8 and WinRT as a technology.

But if Windows 8 will be a successful system, it may increase the chances of usage of Silverlight in RIA applications. First, WinRT and Silverlight are not similar, but they have much in common, so multitargeting application for Silverlight and WinRT will be easier than multitargeting application for WPF and WinRT.

Second, WinRT will be using WCF RIA Services as a recommended transport technology, and it means that WCF RIA Services-related code written in Silverlight most probably can be reused in WinRT.

In these circumstances, Silverlight can be regarded as a light cross-platform addition to WinRT, as “WinRT everywhere” or “WinRT light”. If Windows 8 will be a success, many might take a decision to follow a multitargeting route and develop “rich” WinRT version and light, cross-platform Silverlight version simultaneously. In this situation, Silverlight may be in more advantageous position than Flash, and interest to this technology after a period of decline may considerably rise. Also, it is possible that after a release of Windows 8 Microsoft will start transferring resources back to Silverlight to add new features and support Silverlight on even broader range of platforms.

Another possible reason why Silverlight won’t be forgotten is that other Microsoft’s products like LightSwitch and Microsoft Dynamics GP are using Silverlight (which is another proof that HTML5/JavaScript is not well-suited for complex application development yet).

So, to summarize all these facts:
1. Plugin-based rich Internet applications are now regarded as less perspective than HTML5. But they are still a valid technological choice for many complex applications, and this situation isn't going to change very fast.
2. The fate of Silverlight is closely connected with the fate of recent Microsoft's innovations like Windows 8 and WinRT. If these innovations will be successful, than the future of Silverlight may be even brighter than it may seem now.