As we reported this week, Silverlight seems to have reached the end of its road. What nobody seems to have noticed yet, is that sinking Silverlight drags Windows Phone 7 down with it.
There is a bit problem with Microsoft's latest road map. It is a problem that is just off the map, but all roads seem to lead to it. If you can't be bothered to read to the end and want a simple summary:
Sinking Silverlight drags Windows Phone 7 down with it.
OK, let's now go over the facts and some of the assumptions that lead to this conclusion.
The first factor is the move away from all things .NET, including Silverlight, in Windows 8. You can dispute this but only by pointing out that the Windows 8 desktop still supports .NET. This is true, but it doesn't really matter as it is the new WinRT environment that is planned to run on tablets and this is the really important observation.
You can see how the operating systems guys sold this idea to management.
We need to catch up in tablet OS and the only way to do this is to create a lite version of the Windows runtime. It needs to be based on C++ (i.e. native code) and we need a runtime object technology that fits with C++ not with a slow managed code system (i.e. COM).
So WinRT is born and Microsoft thinks it has a tablet operating system. Of course, we know that Microsoft had a tablet operating system before the iPad was ever thought of - Windows XP Tablet Edition - but it didn't catch on because the hardware wasn't up the job and it didn't have touch input. It seems doubtful that you really needed to invent WinRT just to create a tablet OS.
WinRT as a Trojan horse to get C++ and COM back into mainstream Windows development seems a much more likely scenario.
Next we have news that Silverlight 5 is to be the last version and that it will not be supported on a range of browsers. OK, this isn't a hard and fast fact but until Microsoft contradicts the widely circulating rumour that there will be no Silverlight 6 it seems like a reasonable conclusion. You can also argue that it doesn't matter as Silverlight will be supported for some time to come. True enough, but would you start a new project using it knowing that it had reached the end of the line?
So assuming Silverlight really is dead we move on to the next part of the argument - Windows Phone 7.
WP7 uses a sort of cross between Silverlight and XNA. It is probably more accurate to think of it as Silverlight with some 3D extensions that XNA provides. WP7's Silverlight isn't quite like mainstream Silverlight in that it doesn't have the full class library, and even the classes it does have differ in minor but very irritating ways. Even so, creating apps for WP7 has the feel of Silverlight and the skills certainly generalize.
When asked about the way that they seemed to be concentrating on HTML5 rather then Silverlight, Microsoft was fond of saying that Silverlight was its development environment for WP7 and mobile. I think that if you had been wanting to predict the future at that time you might well have guessed that WP7 and Silverlight would be the route that Microsoft took to create a new tablet system. If you think that this is silly consider Android's move from phone to tablet. Also consider the fact that Android runs Java using a JVM and is proof positive that you don't need to go "native" to create a joint tablet and phone OS.
So Silverlight didn't make it to tablets and what actually happened was that desktop Windows is making the trip instead. That is, rather than migrate WP7 and Silverlight up to tablets, Windows 8 is moving down - with WinRT. As already indicated this causes a problem of fragmentation just as bad, if not worse, than allowing WP7 to go tablet.
The problem is that when Windows 8 gets onto tablets the world is going to have Windows 8 WinRT apps and WP7 Silverlight apps. What mobile eco system can support two distinct application platforms? Are you going to sit down and create a WP7 app only to have to port it to WinRT so that it runs on tablets? What is more you are now going to have to learn and use Silverlight for the sole purpose of creating Windows Phone apps - is this sensible?
The answer is, of course not. It is simply crazy to split your development platform at a point that is so similar from a hardware point of view.
Microsoft has already given hints that big changes are possible for WP7 - see Could and should Microsoft change the heart of Windows Phone? which indicates that a kernel switch from Windows Embedded Compact to MinWin is quite possible. This would make WP8 more like Windows 8 as this too uses MinWin. For this article, Mary Jo Foley interviewed Hal Berenson, a former Distinguished Engineer at Microsoft, who commented that he
"wouldn't be surprised to see the convergence of kernels result, over time, in WinRT (the new Windows 8 runtime)becoming the primary development model for both Windows PCs/tablets and phones."
This seems perfectly reasonable and anyone with any logic should regard this as more-or-less inevitable. What this means is that, while Silverlight is currently the development environment for Windows Phone, it wont be for long.
Now this change could be completed quite soon but, from developers point of view the sooner, the better. After all, what is the point in putting in all that work to create WP7 apps only to be told sorry all change now you have to use WinRT and create WinRT apps.
OK, I agree it may never happen. You may even really be wishing that it will never happen but the alternative is just as bad. You are either going to have to rewrite your Silverlight apps for WinRT tablets or your WinRT apps for Windows Phone.
This is not good and it's not good planning and Microsoft is saying nothing, even though the situation is fairly obvious for anyone to see.
If Silverlight is dead then it's only a matter of time before the current WP7 development environment joins it in the delete bin of history - making WP8 like the launch of a completely new product.
Steve Ballmer is reported as saying at a shareholder meeting recently:
"We've got broad initiatives driving Windows down to the phone with Windows 8,"
Most media sources are interpreting this as meaning that Windows 8 is coming to WP7 - probably to make it WP8. Microsoft has denyed this interpretation saying it was just a general remark about Windows being suitable for everything. You can judge for yourself in the following audio recording: