The model for Microsoft is its nemesis IBM, which has succeeded as a lumbering giant. Thirty years ago, Microsoft dethroned IBM by making the "personal computer" the center of computing, obsoleting IBM's mainframe. Yet, today, IBM still sells $40 billion worth of mainframe hardware, mainframe software, and mainframe consulting. In fact, the mainframe business today is nearly as big as it was in the 1980s. It's slowly dying, but on its way down, it's making IBM a ton of money.
Microsoft's glory days were the 1980s and 1990s, when it was at the forefront of computing. Even as late as 1998, Microsoft was still the lead innovator in the industry: it's WinNT platform was by far the best platform for the dot-com era, it solved the c10k problem before people coined the term referring to Unix's inability to scale. Microsoft's WinCE platform was the dominant "smart" mobile operating system.
But in the last decade, Microsoft has lagged the rest of the industry. Linux leapfrogged Windows and is now more scalable for web services. Apple (and Android) leapfrogged WinCE, redefining what it means to be "smart" device.
Microsoft still does good stuff, but it increasingly out of touch with the rest of the world, and irrelevant. Take it's Visual Studio development environment. It's still the best system for writing and debugging code, but only if you are writing Microsoft-specific code. Try compiling C99 standard code and it won't work -- because it's compiler isn't compatible. Instead of fixing their C compiler, Microsoft spends its resources focused on its proprietary C# language. There's nothing wrong with C#, it is indeed an excellent language, it's just that it's Microsoft-specific.
That's why Ballmer is retiring: because Microsoft already did. Ballmer, in his mind, is still the innovater he was back in the 1980s. It's just that Microsoft the company isn't that innovator any longer. Back in 1980s, it was Microsoft laughing at IBM for existing in it's own separate bubble, out of touch with the innovation in the industry. Now it's Microsoft's turn. There's no chance they are going to fix their C compiler. There's no chance Microsoft will make it easier to write "portable code" that runs both on Linux and Windows. Instead, Microsoft is going to continue to separate the "Microsoft Windows" world from the rest of the industry, to lock customers in so that they cannot escape, to milk them for profits.
I remember being a kid in the 1980s. I'd heard of mainframes, but I had no idea what they where. In my my mind, there were a relic of history. Today's children have the same experience. That desktop in their parent's bedroom is a relic -- the future of computing is their iPad or Android phone. It's the same thing for kids graduating from college. Their choice will be to go to work on Windows machines, and have a lifetime career in the ass end of technology, or to take a lower paying job working on mobile or cloud services -- but a lifetime career at the forefront of technology. When I was a kid, I had that choice: I chose a lower paying job at a "Internet startup", back when that was a new thing, and well, here I am today.
What's funny is that back in the 1980s IBM was known as Big Blue. These days with their blue Windows logo, Microsoft has become just another shade of the same color. Microsoft has a profitable future ahead of it -- just one out of touch with where the rest of computing is going.
Update: Several people have pointed out that Ballmer really isn't an innovator. Well, of course not: it's just that he thinks he is. He knows that mobile/cloud has displaced the desktop. In his eyes, he's either part of the mobile/cloud, innovating at the leading edge, or he shouldn't be in the game at all.