"We will streamline the next version of Windows from three operating systems into one single converged operating system for screens of all sizes"
So Microsoft rediscovers that fact that a single code base is simpler for the programmers and the users alike.
At the moment the company seems to be going in loops, but the good news is that, having deliberately sabotaged its nice neat single code base OS by producing Windows RT, WinRT and dumping Silverlight, it is heading back towards the sensible position.
Microsoft could have maintained a single code base for all of its target platforms for both the OS and the development but over the last few years its thinking wasn't really about technical issues, it was more about internal politics and which development group had, and has, control.
After making things difficult for its developers, Microsoft finally launched "Universal" apps, which are supposed to run on phone, Windows RT and WinRT. Universal clearly doesn't include deskop apps - so not really universal is it.
Microsoft was wrong-footed by the rise of the ARM-based mobile device and it decided that it needed an ARM-based version of Windows. Of course it already had one in the form of Windows Phone 7. This could have been scaled up for tablet use very easily and, with both being Silverlight platforms, it would have been very close to having Windows running on ARM. True non-managed apps would have not worked, but once upon a time Microsoft expressed the view that in the future all apps would be .NET managed apps.
So now having WindowsRT on the cards what does Microsoft do but throw out Silverlight and desktop development and opt to implement a whole new runtime - a runtime to replace Win32, the API that was (and is) the bedrock of Windows.
To cut a long story short, there never was much logic in the set of events that led to Microsoft being where it is today - with three, or four depending how you count, operating system versions and three or four different programming systems.
Microsoft could even have avoided implementing an ARM-based version of Windows at all, because it was fairly obvious to any observer that Intel wouldn't stay out of the mobile market. Now as Intel has the hardware to allow x86 phones and tablets to compete with ARM-based tablets - guess what - Microsoft no longer needs Windows RT. When Nadella talks of unifying Windows he doesn't mean Windows RT.
Windows RT has been a disaster. Lenovo has said that it is no longer supplying Windows RT tablets; the Surface has hardly made a dent in the market and Chromebooks are moving into Windows traditional territories very fast.
The underlying reason is that Windows RT isn't Windows - it simply can't run the legacy software.
A new range of x86 based devices could be 100% backward compatible, something that would please programmers and users. If Microsoft can bring back the truly universal app then it might discover that its problems with filling the app store's shelves vanish very quickly.
Before WinRT and Windows RT, Microsoft had good technological solutions to many things - overlapping windows, hierarchical program organization, near universal apps, managed code, a sophisticated UI framework and so on. The period that produced WinRT and Windows RT has to be seen as a big step backward taken in the name of trying to catch up.
Now Microsoft really does have to catch up.
One final thought. Microsoft has always been wedded to the x86 architecture. How much simpler it would be to catch up now if all of the systems that Microsoft supported were x86. What does this say for the future of the ARM based Windows Phone 8?
So you have a programmer to buy a gift for? Not easy because you might not understand their strange world or the strange humour. We have a solution - just read on. If you are the programmer in questio [ ... ]