Is Silverlight dead?

So, last year there was a big eruption from the .Net development community over what was effectively Microsoft revealing too little information on Windows 8 which caused a lot of people to believe that new applications in Windows 8 would need to be developed in HTML5 and Java script.

I felt, at the time that this was rubbish (both the news and the notion) and was eventually proven right. Windows 8 will run Silverlight applications (in desktop mode and likely only on x86 devices) but more importantly, WinRT applications can be coded using XAML and C# code behind. From a skills perspective, that basically means all of your Silverlight and WPF skills are highly transferable. From that perspective (skills) nothing has died and the conversation ends. Silverlight will continue to exist quite literally, AND your skills are "first class citizens" in the new ecosystem.

But all of this misses a point which some people were worried about (though from what I read these were a much smaller fraction of that group). Silverlight wasn't just XAML and C# code behind. It was also a cross platform plug-in enabling people to target a larger audience with a single code base. Some people were concerned that this role will be played down now, and still eventually lead to the demise of Silverlight. On this topic, I think there is some validity, though I still think being mad at Microsoft for it is misguided at best.

You see, this famously started with Apple refusing to allow Flash to run on it's phones and tablets (funny how Microsoft is eating blame for a trend Apple popularized). Now I'm not taking a stab at Apple here. Apple did the right thing. Enabling flash (and potentially other 3rd party browser plug-ins) had a great possibility to compromise the security, performance and battery life of those platforms. But then, what solutions are left to make a cross platform application? iOS and many other mobile platforms (including Windows Phone) don't have a supported implementation of the JVM, so you can't run Java which is the next big runner up (and I imagine kept off the platforms for the same reasons as browser plug-ins). Which leaves you with HTML and related technologies. Well that's a kick in the pants. Flash and Silverlight exist solely because HTML without browser plug-ins was both horribly inadequate and inconsistent across browsers and platforms.

But, if the world is moving towards adopting more and more mobile devices, with more and more as the users primary computing devices, then the world is moving more and more into a realm dominated by Apple's decisions. They weren't the first, but they were the ones that made it popular, and so they got to make most of the rules.

What does this mean for Silverlight? Well, it means that cross platform compatibility via browser plug-ins is dying in general. Not just Silverlight, but also Flash and every other plug-in based approach to cross platform compatibility are dying. If the trend continues, in some number of years you won't be able to buy a computer that even offers a browser that supports plug-ins. Also, if the trend continues, regardless of how wholeheartedly Microsoft tries to keep Silverlight alive, eventually you will have no one out there using your software. Don't blame Microsoft, blame the market or blame yourself for not noticing it.

So, if you love XAML and C#, write WinRT applications that support a single operating system. If you love native applications that you want to run on multiple platforms, then look into some of the companies out there which provide suites for developing such applications (or if you have the time and resources, simply write multiple versions of your application). And if you want an application which you can write once and run anywhere... go HTML5 and CSS (at least for the client portion).

I'll hold off for another time perhaps on my complaints over HTML5 and where I think we need to go next in computing.

Comments

Popular Posts