With the surprising news of Sinofsky's leaving Microsoft still fluttering in the winds, I knew I'd hear some rants about Silverlight be heard among the XAML-lovers out there. I decided I needed a blog post (albeit a short one) to say my peace.
I've heard many say that Sinofsky is responsible for the death of Silverlight and that it's absence on Windows 8 is a shame. I hear a lot of Silverlight enthusiasts (or apologists) that Silverlight, while being a great technology, was killed because DevDiv and Windows couldn't get along. At last year's build, it was big news that Sinofsky actually said the word Silverlight made news. While the idea that Silverlight ran on a Mac certainly caused waves in the Windows team, it's not the reason for it getting pushed to the pile of technologies that are now in 'sustaining engineering' mode. If any executive is responsible for the current state of Silverlight it's one who is no longer with us...and not even part of Microsoft: Steve Jobs.
When Silverlight launched the target was clearly Flash. Flash was a great platform for advertising, games and starting to push into line of business apps. Silverlight was the dual barreled shotgun that Microsoft was pointing in Adobe's face. But at some point Flash became irrelevant. When did this happen? It wasn't Silverlight, it was iOS. When Steve Jobs decided to not allow Flash to be installed on any iPhone, Flash was demoted from the web.
In the face of realizing that Flash was being shoved aside and that Silverlight would never get onto handhelds either Microsoft seemed to move Silverlight into a Line-of-Business application platform. This was hinted at in Silverlight 3, but in Silverlight 4 and 5 this should have been crystal clear to anyone paying attention. I went from teaching designers at Agencies, to teaching .NET devs how to get into Silverlight. Silverlight 3 changed it remarkably.
But what about Silverlight on Windows 8? The fact is that Silverlight does run on Windows 8. It doesn't run in the
Metro Modern version of IE, but I don't think that matters. The reasoning behind no Silverlight in the new experiences is that no plugins work. Flash only works (sometimes) because Microsoft is embedding it directly into the browser instead of relying on Adobe's update mechanism. Plugins are dying, IE10 reflects that reality.
Where Silverlight really doesn't work is in Windows RT (e.g. the ARM version of Windows). I have no inside knowledge here but to me it's pretty clear that this is just a matter of cost/effort benefit analysis. Porting the plugin onto ARM to run just in the 'desktop' browser couldn't have made much sense. Probably a bigger job than you'd think IMO.
In fact, I think that a bigger problem here is that many Silverlight developers are simply holding on too tightly. In Windows 8 we have a great XAML stack (better than WPF and Silverlight IMO) and that's where we should be paying attention. Complaining about Silverlight is valid as there are many applications out there written in Silverlight that would like a better story of running on Windows RT...but the effort isn't trivial to make this happen (AFAICT).
But back on message...I am just as concerned and excited to watch what happens at Microsoft now. I think with Sinofsky leaving Microsoft has a chance to actually have the divisions work together for more integrated products. Windows 8 was a step in that direction, but I don't think it would have happened under Sinofsky. I like what I am hearing about Julie Larson-Green. In any case, I am interested in seeing what happens.
|Building a Web App with ASP.NET5, MVC6, EF7, and AngularJS (New)|
|Best Practices in ASP.NET: Entities, Validation, and View Models|
|Front-End Web Development Quick Start|
|Lessons from Real World .NET Code Reviews|
|Node.js for .NET Developers|
|Implementing ASP.NET Web API|
|Building a Site with Bootstrap, AngularJS, ASP.NET, et al.|
|Application Name||WilderBlog||Environment Name||Production|
|Application Ver||184.108.40.206||Runtime Framework||.NETCoreApp,Version=v1.0|
|App Path||D:\home\site\wwwroot||Runtime Version||.NET Core 220.127.116.11|
|Operating System||Microsoft Windows 6.2.9200||Runtime Arch||X86|