Microsoft's Extinction Event
Written by Mike James   
Friday, 25 May 2012
Article Index
Microsoft's Extinction Event
The RT boundary

Programmers tend to celebrate the new. There is nothing more exciting than a new language, a new API or even a new operating system but there are costs when the new replaces the old. Windows 8 may be an exciting new "re-imagining" of the Windows OS but the effects on the ecosystem are nothing short of a mass extinction event.

Microsoft is currently going though a mass extinction event bigger than anything the programming world has seen before. Of course. Microsoft is doing its best to avoid describing what is going on as anything like a replacement of old technologies by the new, but it is mainly doing this by saying "of course product x will be around in the future".

What they are not saying is "new versions of product x will be made available in the future".

This is the typical death by neglect syndrome that most often sees the demise of corporate software tools. We reach a point where the framework, tool, language or whatever is no longer seen as the best option for the company creating and maintaining them and so it just goes to work on something new, exciting and potentially more profitable - all the time telling the programmers who they got to commit their future work to the framework, tool or language that everything is just fine.

Over time the tone generally changes as the excitement of the new product starts to take over; the internal teams developing it, the marketeers and the spokespeople can't really keep their enthusiasm in check. They start to explain how wonderful the new is compared to the old - the old that until just recently they ware praising in the same fulsome colors.

Occasionally they are brought back down to earth when they encounter a backlash after saying or doing something crass that makes it all too clear that the old technologies are doomed. Then the only course of action is to try and explain away the slip as an over-eagerness to praise the new accidentally seeming to bury the old.

Then you start to notice that new releases tend to cut out the old technologies and maneuver the market in the desired direction.

This is marketing by exclusion.

So it is with Microsoft at the moment.

The shift from Windows to WinRT is the equivalent of the Yucatan meteor and as yet the dead dinosaurs of technology are still walking around and looking viable - but we aren't across the RT boundary just yet.

 

explode

 

In one shift Microsoft has sidelined many pieces of technology and left others in a lonely isolation.

I know that you can convince yourself that your favorite technology is untouched by what is happening - but ask yourself what is its future and where does it fit into Microsoft's plans.

For example, ask yourself if you would pick VBScript for any sort of project. Once it was the Microsoft promoted way to write scripts. It still exists, but are there any new versions? Is it supported with new how-tos and general promotion on any Microsoft website? Would any third party website bother to write an article about using it? No, VBScript is dead even if you are still using it.

Let's take a look at the ecosystem and how it is changing.

The .NET Languages

While both C# and VB are supported in the new ecosystem, they are both in inferior niches. To the enthusiasts of each language they both look as if they are full members of the WinRT club, but there are some old inequalities finally coming home to roost. Neither of them is cut out to hack COM like C++, and WinRT is a COM based operating system.

The rough and ready parts of COM may have been polished a bit and some additions make it easier to work with but it is still COM.

One huge impact of this move to COM is the simple fact that neither C# nor VB have any official way of working with DirectX under WinRT. You might not think this is important but DirectX is WinRT's graphics system and if you want to do clever things in a WinRT environment then you might well need to program DirectX graphics straight to a Metro application. After all this is exactly what Mozilla had to do when they were porting Firefox to Metro - so it is good that they didn't have to work in C# or VB. There are third party libraries for C#  to DirectX but it is very significant that there is no official library.

The message that is coming from Microsoft is very clear - use C++.

What of the other .NET languages?

Given the way IronPython and IronRuby have been treated, there really is only F# to consider. This is a remarkable language, but it started life as a second class citizen and it still is.

If you want to feel that your favorite language is still there then fine - but be ready to find yourself increasingly isolated and ignored. In theory any CLR-compliant language should be able to work with the APIs, but some compiler modification is needed. So far no changes have been made to the F# compiler and there seems to be little urgency about doing anything about it.

The message that is coming from Microsoft is very clear - use C++.

WPF

There isn't really much to say about poor old WPF.

Confined to the desktop it has a bleak future.

If WinRT is the way of the new it is just the memory of the old. Microsoft hasn't come out and said that it is officially dead but it is the father of Silverlight and it is generally agreed that Silverlight is not going forward. I doubt we shall see another UI library of its kind in our time.

And don't say that WPF lives on in XAML under WinRT. This is just a smokescreen designed to convince you that everything is as it was.

 



Last Updated ( Monday, 28 May 2012 )