> Win32 is the only thing going for Microsoft on the windows side
And this is their key problem. They're stuck in the past, relying on previous successes and unable to come up with anything new that's sufficiently compelling for people to adopt.
Contrast to Apple, who made the switch to a modern, object-oriented API 13 years ago which has steadily improved, and their willingness to cut old technology (after a transition period - see Carbon and PowerPC).
iOS had zero compatibility with anything that came before, with the exception of the underlying frameworks. Microsoft needs to be able to demonstrate this level of innovation in order to survive in the long term.
I don't trust Apple. I can run Win95 programs on Windows8 still, and that is a good thing. If I'm building programs that last decades, I don't want to build them upon Apple's quickly changing landscape.
I mean, afterall, as much as Win32 is legacy code... Posix / SysV compatibility in Linux is an even bigger one. That doesn't make Linux a bad system, on the contrary, it makes me confident in building long-term solutions on top of those systems.
Microsoft has their new APIs: C# and .NET, which are all good and all for new programs. But their constant support of Win32 API is frankly one of their best assets. APIs with 30+ years of backwards compatibility are _good_ for the programmer.
> If I'm building programs that last decades, I don't want to build them upon Apple's quickly changing landscape.
There's definitely a niche for "write once, run forever" (for a more extreme example, see the IBM 360/70/80/90/z/Architecture; a modern z/arch mainframe can run binaries made for a 360 half a century ago, unmodified), but it generally isn't that exciting to consumers, and even the enterprise market seems to be getting a little more cautious of it for internal stuff.
And this is their key problem. They're stuck in the past, relying on previous successes and unable to come up with anything new that's sufficiently compelling for people to adopt.
Contrast to Apple, who made the switch to a modern, object-oriented API 13 years ago which has steadily improved, and their willingness to cut old technology (after a transition period - see Carbon and PowerPC).
iOS had zero compatibility with anything that came before, with the exception of the underlying frameworks. Microsoft needs to be able to demonstrate this level of innovation in order to survive in the long term.