Heads Roll As Microsoft Misses Vista Target
A reader writes: "Business version is on time, but the company won't make the key holiday consumer sales season.
After another delay in the release of its Windows Vista operating system, Microsoft last week put a new executive in charge of future Windows projects and replaced several other managers. The changes are designed to better align Microsoft's desktop and Internet software teams and get products to market faster." There's also a NY Times piece that discusses why Windows has been so slow (to come out). Worth the reading.
...cause I hear Linux is out already.
Swedish plasma phys. PhD student; MSc EE; knows maths, programming, electronics; finance interest; seeks opportunities
Either go to CNet's Hosting of the article or use this login.
Username: slashdot25
Password: Slashdot
The article in its entirety if you want to read it here:
Windows Is So Slow, but Why?
By STEVE LOHR and JOHN MARKOFF
Published: March 27, 2006
Back in 1998, the federal government declared that its landmark antitrust suit against the Microsoft Corporation was not merely a matter of law enforcement, but a defense of innovation. The concern was that the company was wielding its market power and its strategy of bundling more and more features into its dominant Windows desktop operating system to thwart competition and stifle innovation.
Windows 95 had 15 million lines of code. That grew to 18 million lines by the time Windows 98 launched, above. Windows XP, released in 2001, has 35 million lines of code.
Eight years later, long after Microsoft lost and then settled the antitrust case, it turns out that Windows is indeed stifling innovation -- at Microsoft.
The company's marathon effort to come up with the a new version of its desktop operating system, called Windows Vista, has repeatedly stalled. Last week, in the latest setback, Microsoft conceded that Vista would not be ready for consumers until January, missing the holiday sales season, to the chagrin of personal computer makers and electronics retailers -- and those computer users eager to move up from Windows XP, a five-year-old product.
In those five years, Apple Computer has turned out four new versions of its Macintosh operating system, beating Microsoft to market with features that will be in Vista, like desktop search, advanced 3-D graphics and "widgets," an array of small, single-purpose programs like news tickers, traffic reports and weather maps.
So what's wrong with Microsoft? There is, after all, no shortage of smart software engineers working at the corporate campus in Redmond, Wash. The problem, it seems, is largely that Microsoft's past success and its bundling strategy have become a weakness. Windows runs on 330 million personal computers worldwide. Three hundred PC manufacturers around the world install Windows on their machines; thousands of devices like printers, scanners and music players plug into Windows computers; and tens of thousands of third-party software applications run on Windows. And a crucial reason Microsoft holds more than 90 percent of the PC operating system market is that the company strains to make sure software and hardware that ran on previous versions of Windows will also work on the new one -- compatibility, in computing terms.
As a result, each new version of Windows carries the baggage of its past. As Windows has grown, the technical challenge has become increasingly daunting. Several thousand engineers have labored to build and test Windows Vista, a sprawling, complex software construction project with 50 million lines of code, or more than 40 percent larger than Windows XP.
"Windows is now so big and onerous because of the size of its code base, the size of its ecosystem and its insistence on compatibility with the legacy hardware and software, that it just slows everything down," observed David B. Yoffie, a professor at the Harvard Business School. "That's why a company like Apple has such an easier time of innovation."
Microsoft certainly understands the problem, the need to change and the potential long-term threat to its business from rivals like Apple, the free Linux operating system, and from companies like Google that distribute software as a service over the Internet. In an internal memo last October, Ray Ozzie, chief technical officer, who joined Microsoft last year, wrote, "Complexity kills. It sucks the life out of developers, it makes products difficult to plan, build and test, it introduces security challenges and it causes end-user and administrator frustration."
Last Mon
My work here is dung.
with millions of customers still running on that old version of Paint this is no laughing matter.
I'd love to see the major corps get behind a push to reimplement the Windows APIs (IE, Wine or similar) so all OSs could run Win32 executables. Then the big MS lockin would be over and we users could have some choices.
"I've got more toys than Teruhisa Kitahara."
Let me get this straight
1) MS is rewriting key components from the ground up ( tcp/ip for one ).
2) They are pushing for a faster and faster release cycle
3) They are replacing managers working on vista.
4) DRM will be built into vista
Yeah huh. If it's all the same to you guys, I think I'll stick with xp on my home system ( just recently upgraded, btw ). Vista sounds like it's going to be a painful upgrade for the world at large, and I'd rather not experience that if at all possible.
Mod me down with all of your hatred and your journey towards the dark side will be complete!
FTFA:
Microsoft also said Mike Nash will leave his job as head of its security technology unit for an unspecified role.
Now, as soon as I read this, I caught myself thinking, "Maybe he was doing his job TOO well, hence all the delays".
Mod me down with all of your hatred and your journey towards the dark side will be complete!
Why's it taking so long? Because, unlike previous "new versions" of Windows, this is not just a cosmetic overhaul but a complete redesign of the OS from the kernel up! Also, as somebody else mentioned, updating the mspaint.exe codebase is proving quite problematic :)
The difference between stupidity and genius is that genius has its limits.
The changes are designed to better align Microsoft's desktop and Internet software teams and get products to market faster
I thought it was delayed because of DirectX 10 and game\media\PVR issues. Now that 60% is being rewritten will hardware manufacturers like ATI have to ditch their millions of dollars of R&D and start their Vista drivers from scratch?
here and here. It's comical really. The first story goes on and on and on how lean Microsoft has become with their new development process. Obviously little has changed. It's also comical that their solution to these sorts of things always seems to be a management shakedown. A shakedown doesn't really help anything if there is a deeper problem. In reality, it will probably just result in further delays.
If an officer ever threatens to taze you, say you have a pacemaker.
> Vista was also held up because the project was restarted in the summer of 2004. The new work, Microsoft decided, would take a new approach. Vista was built more in small modules that then fit together like Lego blocks, making development and testing easier to manage.
Wow, Microsoft discovers modular design and good interfaces 30 years after the rest of the world went that way.
I am so sad now that I cant get her Vista for Christmas, I am sure may other of you are and in same boat. Because Vista was the Must have gift this year.
The truth is that MS is trying to get this on right, and waiting to ship Vista untill its done, at the same time they are being honest with us about ship date and features. Funny we bash them for shiping buggy programs and then bash them for holding back a buggy program.
In terms of Operating Systems, or for that matter, general commercial software applications/suites, how many do you think make it to market on time? 50%... if you are lucky.
"When life gives you lemons, don't make lemonade. Make life take the lemons back!" -- Cave Johnson
It must be awfully painful, getting your head decapitated by a thrown chair!
From Dave regarding NT:
Or, get someone with a trackercord of delivering a modern OS. Like Maybe Linus.
Or, hire Christopher Walken as a Project manager
"We are all geniuses when we dream"
- E.M. Cioran
If you read some of the postings on the minimsft blog, you see that Sinofsky has been brought in to streamline things, but the question abut what to do with all the legacy management overhead still remains.
They have so many people which they promoted up over the years that they'll need to figure out how to flatten the organization whilst thinking about what to do with all these people in middle management. That'll be the interesting question in the coming years, I think.
Netcraft confirms it! Windows OS is dying! ;P
Seriously, I spent some time last night reading through a Microsoft employee's blog discussing this very issue. While it might sound like big trouble in little China, it's likely to be well glossed over by their PR campaigns. Heads will roll at MS, but not the right ones. The big guys there will say that this was the work of either an "astroturfer" who doesn't even work for MS, or a disgruntled employee who really didn't have a grasp on the business end of things. In other words Ballme and company will be saying, "nothing to see here, move along".
As a side note, I found one of the comments on that blog particularly insulting. Someone had the audacity to say that Microsoft is becoming more and more like DEC. This couldn't be furthest from the truth. DEC was run by the engineers, meaning that the entire company was nothing but engineers. No suits. No business men. Just pure brain. That's why DEC's systems pretty much defined the phrase "just works". MS isn't even close. They tried and they got Cutler to design NT. But then they threw out everything that he had laid out in NT when they hit 2k for business reasons. If you want a great OS, you forget about business reasons. If you want to run a great business, then you need to accept that there will always be compromises and you'll always have a subpar product when compared to the output of pure engineering. Them's the breaks folks. That's why the FOSS world outshines Microsoft at every turn in terms of design and doesn't really make much of a dent business-wise. And it's why MS is so successful as a business but can't create an OS that you'd trust your life with.
-"...bad old ideas look confusingly fresh when they are packaged as technology" - Jaron Lanier (Digital Maoism on Edge.o
In an internal memo last October, Ray Ozzie, chief technical officer, who joined Microsoft last year, wrote, "Complexity kills. It sucks the life out of developers, it makes products difficult to plan, build and test, it introduces security challenges and it causes end-user and administrator frustration."
Well Ray should know, he does work there.
I think in Microsoft's desire to be the everything of operating systems, they have bitten off more than they can chew. They need to re-think their strategy and aim to a secure, less-complicated and smaller operating system. Then later, they can release a huge Vista at a time of their choosing.
He who knows best knows how little he knows. - Thomas Jefferson
I know who wants it.
The strange thing is that its not any users of Windows. DRM gives the manufacturers a new unpreceedent tool for administrating users computers without they having a say about it. Once you install an application that uses DRM your computer isnt yours anymore.
Who would want that? Good thing is it will make Linux look so much better.
HTTP/1.1 400
I hope I never have to use Vista either. I don't think you will ever have to. Most of the stuff released still runs on 98, with good reason too. It's high hardware specs make me cringe. It doesn't look much flashier than OSX, but requires like 5X the computing resources. I have a mac Mini at work, and it flies. Based on what i've seen for Vista, it wouldn't even come close to running aeroglass. I can't even see how the retailers would want Vista. all the sub $1000 CDN Dells have integrated video, and hence won't even be able to run Vista with Aeroglass. That's got to be a big slice of Dell's marketshare. How do you convince people to buy a new computer that can't even run the OS with all the features. How do you convince people who want to spend ~$500 on a PC to spend $1500?
Anthropic principle: We see the universe the way it is because if it were different we would not be here to see it.
Plain and simple. I remember when Windows 2000 came out, and that was hyped to the hills as the most secure and high quality Windows that was really going to replace Unix everywhere. Funnily enough, the hype sounded like Vista now. There was an article in 1999 that described their development process, how they were redesigning Windows for security, (just like with Vista!) and God, is it a mess. It is just a massive production line where code is committed by programmers with little regard as to whether it will conflict with changes other people are making. It gets shipped off to the testers, they test some build, OK it and then another team commits code that breaks it in the next testing cycle and build. They then rinse and repeat this process until it seems to work. Small wonder they need so many programmers and people involved as well as the huge amount of time that takes.
I hate to bring up Apple, but look at their OS. They've put an awful lot of features into their software, with less programmers and with much more of an idea of what they want to achieve - and I think that last point is the key. It just sounds as though some marketing people at Microsoft have been moving the goalposts shouting "Right, we need seven versions to extract more money!", "Oh right, now we're doing media!", "We're doing 3D eye candy!", "We're doing TV!", "We want support for new DRM hardware to please film studios!", "We want integration with some pointless app for social networking!" etc. etc. It seems to me that no one has drawn up a set of proper requirements for Vista. I get the Vista betas through MSDN, and honestly, I just cannot see how they couldn't have achieved where they got to now by evolving from Windows XP SP 2 and 2003 in a far shorter timescale and then building other products and components on top of it when it got finalised.
Two-fold, on top of that, I'm also convinced that because of all those teams putting code into Windows, and having Windows interoperate tightly with other components and products and vice-versa, Microsoft are having very serious integration and communication problems. What's that saying? Nine women can't have a baby in one month? It seems as though Microsoft's "let's just throw programmers at it" strategy is doomed now and post-Vista, and they're going to have to work out what they're going to do. The big problem is, Microsoft don't know how to develop any other way, and changing a few managers around will change nothing.
Computers that do speech? Intelligent systems? A digital home? Media systems running Windows? Flat touch-screen panels running Windows in every area of your house? On top of developing a base version of Windows, Office, development tools.....all inter-connected?! Fat chance. There's no way they'll be able to co-ordinate that kind of development complexity with the kind of absolute reliability that's demanded there. Windows still has a future, obviously, but I'm sorry to tell Microsoft that they're not going to be leading us into this new brave world they think we're going to buy into.
...is certainly going to quickly lead to their downfall. Breaking compatibility with old applications leads to people looking for new applications. If they were do to that, they should have done so years ago when they had the market power. Nevermind that they pretty much did going from Win95/98/ME line to WinNT/2k/XP.
.NET/Mono) or webservices (traditional or AJAX), you're not doing your job. Same goes for open standards, integration possibilities (e.g. XML/SOAP) and so on. When you're in the position Microsoft is in it's about making it as easy as possible to keep running Windows. Particularly the old cruft that work (hence, don't break it) but won't run anywhere but Windows.
Seriously, if you were looking at a new application today, if you're not considering cross-platform compatible apps (Java or
Live today, because you never know what tomorrow brings
Microsoft Windows Vista will be shipping with a free trial of "Duke Nukem Forever".
Not so for me. I have seen countless reboots from XP taking a hike in mid air. The difference is you dont notice most crashes since nothing tells you the darn crap has crashed. It just throws its hands in the air cycle itself. What a way to get rid of BSOD, perform harakiri instead of showing the bluscrean.
XP is better than crash_every_single_keyboardklick but its not that stable. Im not impressed until Windows is better than Linux or *BSD. Why shouldnt something i pay good money for be much better than something free?
HTTP/1.1 400
This is not unique to Microsoft. Any huge corporation that enjoys oversized success and has a small contingent of superwealthy employees by way of stock options faces this future.
Prove it. I'm not saying you're wrong, it's just that making such a broad statement with nothing to back it up is likely to draw "I call B.S." comments. (As I'm doing now.)
This sig rocks the casbah.
I have heard rumors that one of the reasons that Vista was not ready, was Microsoft's attempt to use "dot net", basically an virtual-machine based (interpreted) language similar in many aspects to Java, but the resulting code was huge, slow, and simply put - useless. Do these rumors have any basis?
.NET has been out for years, as have applications written for the .NET platform. What does this have to do with Vista? Some bozos thought Vista was going to be written in C# or some nonsense like that, which may be the crap you're hearing.
.NET, a C# desktop application performs pretty well. Much closer to a C++/MFC app as opposed to a Swing app.
What the hell are you talking about?
The reason I'm asking this is that I am getting the feeling that while companies (like the one I work for) love to code in Java, the users actually hate the resulting software, saying something like "Wow, this is nice software, but it's so easy to see it's written in Java - it takes half a gig of memory for doing almost nothing.
Then your developers suck ass. The performance issues associated with Java are 99% usually because of Swing. The devs should be refactor the code to deal with the performance issues, or look at an alternative like SWT. I'd also recommend wxWidgets, but a majority of younger Java developers will burn from lack of experience if tossed into the C++ fire. As for
Help me take back Slashdot. When did 'News for Nerds' become 'FUD and Conspiracy Theories for Extremist Nutjobs'?
Or, hire Christopher Walken as a Project manager.
Walken: Well guys, Vista looks good, but I tell you what... it needs more cowbell.
...take the current version of XP; change the default color for the desktop, scramble the order of every feature in every menu, and add some spiffy new splash screens and logos and a new package.
Every significant feature of Vista has already been removed, they might as well remove the rest.
Voila! They make their ship date, PC manufacturers have a merry Christmas, everybody is thrilled at how backward-compatible it is and how little retraining is necessary.
Nobody will get upset but a few literal-minded techies. Anybody dissatisfied with Windows as we know it migrated away years ago.
"How to Do Nothing," kids activities, back in print!
Why don't they rip out the legacy support, offer a slim, fast, "next-gen" Windows OS, and then offer an optional (free?) legacy pack that would install all the unnecessary crap if someone needs to run that DOS checking app from 1990? Or maybe if people can't run their 20 year old software that doesn't have support anymore, they might be inclined to move to something better.
"...who is actualy quite ineffective because he is marketing driven and not product and engineering driven."
/.? Either way, you're incorrect. Either way he's not really the one who should go for Longhorn fermenting on the vine.
Have you ever actually worked with Steve? Or are you making that claim based on the in-depth research you have read here at
I'm always shocked (shocked!) that the problems outlined in The Mythical Man Month are still happening, years and years after the fact. I too have been on projects where the knee-jerk reaction is "let's get more people!" and it has always been a disaster. In fact, one project I was on was hosed by a single commented line (long story) done by a consultant who was there for two days, and never even knew how the system worked (or else he wouldn't have done what he did).
On the other hand, how can projects like the Apollo Space Program succeed? Compared to any computer project, it's unbelievable that anyone can manage all the parts, companies, and research that went in to sending a man to the moon. I read a book, available on NASA's website (sorry, don't have the URL) which described what it took just to build the crawler and superstructure, and I think it was hundreds and hundreds of pages of minutia that I can't believe actually came together.
What's worse of all is that it's one thing to say "this time it's different because...", but with Microsoft they're not saying anything; they seem resigned to the screw up and figure that their monopoly will simply carry the day. "Yeah, we've botched it, but so what? You're gonna use it, you have no choice!"
These last few days of delay announcements at MS after 5 _years_ of development are really making them look incompetent from a business point of view. Though I highly doubt management "shakedowns" will help speed up the development process. The problem here, as has been mentioned before, is Microsoft's unwillingness to let go of the past. Do you remember when they announced that IE was a "mature product" and didn't need to be developed any further? I mean, did they think time would just sit still for them? Would Ford stop designing the Mustang because "It's a mature car"? Microsoft's IE6 is now the laughing stock of Internet browsers, and rightfully so since it's been neglected so badly. Maybe we'll see vast amounts of improvement with IE7, but I'm not holding my breath. At least MS now understands that development can never stop unless you plan on just dropping a product permenently.
Even after Microsoft wised up to their development blunders like IE, they still have a near unmanagable beast in 50+ million lines of codebase. The #1 weakness that Microsoft has is it's refusal to drop legacy support out of it's products. It may even lead to their undoing. They have allowed feature after feature to snowball into the massive clusterfuck that Windows currently is. In order to meet the demands of the future, Windows will have to simplify. I know it sounds like that is a step backwords, but think about it. How did Apple make such a successful product in OS X? They blew up OS 9 and started from scratch with a proven codebase. That is what Windows needs to do to keep up. Only after Microsoft ditches the i386 legacy and bloat that's suffocating them, will they get some much needed breathing room. Apple had to take a big step back to get ahead to where they are today, and I'm sure it wasn't easy for them, but it's already paying massive diviends. Imagine how wonderful it would be for everybody in the long run if MS took this same approach. Windows has turned into a massive out-of-control beast that has everything including the kitchen sink in it, with about 7 different variations of home and office OSes that are enough to confuse anyone in the industry, let alone the poor consumers who have to figure out which version of Windows best suits them.
That said, there is really only one roadblock for switching to Linux full time (at least for me), and that is the fonts. I've tried everything from grabbing the MS fonts from my Windows partition, to any combination of AA and/or hinting and DPI resolution I can think of. The fonts just come up weak IMO. I know a lot of you love the fonts in Linux and just wouldn't have it any other way, but I guess I have a different opinion then most of you out there. Windows and OS X fonts look about 100 times better to me. Say what you want, but when I boot up into Windows after spending a few hours in Linux, it's like cleaning a layer of grease off of my glasses.
Operating systems like OS/2 were able to retain almost 100% compatibility with DOS and 16-bit Windows applications without making the kinds of architectural sacrifices that Microsoft has made over the past 10+ years.
Why? They simply created a Virtual DOS Machine that was sophisticated enough to handle things properly, including running multiple isolated copies of a rewritten Windows 3.1 concurrently to protect 16-bit processes from each other.
Win32 compatibility doesn't require any of that.
The bloat we're seeing is simply poor technical design on Microsoft's part, and the "backwards compatibility" card is just something they played to explain some of the stupid stop-gap decisions made with their Windows 9x line.
Mainframe/UNIX Bit Twiddler and long time Windows/Linux Hobbyist.
The Theorem Theorem: If If, Then Then.
(Genuine question, as I honestly haven't heard of anyone who really wants it.)
Don't you just hate it when people reply to your signature?
In the last 4 years or so, Microsoft has rolled out 2 major upgrades to its flagship low-end OS, and introduced a new server OS and upgraded it.
Not a small feat. Not as impressive as what's happening in the BSD/Linux/Apple worlds, but still no small feat.
I for one would rather see Vista delayed until 2008 than be significantly buggier than the existing XP with SP/2, particularly if the bugs are security-related.
The only major downside to NOT having Vista out by now is that users of Windows 98 and Millenium Edition will have to switch to XP in July if they want an OS that gets security patches. Many of them would have skipped straight to Vista if it were available.
A word to Microsoft on behalf of 98 and Millenium Edition customers:
Before terminating an OS's support, make sure there are two successor OSes to choose from, both of which are stable and both of which will have at least security-bug-support for at least 2 years.
Knowledge is how to play a game, intelligence is how to win, wisdom is knowing what game to play.
What Microsoft said last week is that they won't launch Windows Vista until after Christmas. By that they mean the broad public launch with the OS on millions of new PC's. They also said that they'll finish the code in the fall...about two weeks later than the original target date...but that date would not give their OEM partners and the retail channel time to get new systems with the OS ready for broad retail availibility. Rather than have a wierd mishmash of PC's running XP and others running Vista, they decided to delay the broad consumer launch until after the holiday. I'm sure the powers that be at MSFT aren't happy about missing christmas sales but this announcement is not a significant delay in the completion of the code.
Meanwhile, in a secret layer hidden beneath Microsoft's corporate headquarters
[Maniacal brass music from Austin Powers followed by lighting flash with thunder]
Bill Gates [in an Ernesto Blowfield/Dr. Evil ethos] "Ladies and Gentilemen, welcome to my underground layer. I have gathered before me the world's deadliest marketing and sales representatives, research and development teams, and some guy who does--what is it that you do?"
Programming Henchman "I'm a programmer, sir. I'm in charge of all the other programmers at here at Microsoft. I found out about this secret meeting from a memo I found on the ground outside the building."
BG "O RLY?" [leet speek, spoken by an evil genius!] "We'll, you aren't really suppost to be in this room, however, there is a conference with the other programmers at 2pm in the conference room upstairs. We'll chat later."
PH "OK. Well, I'll see you around." [causally leaves the room]
BG "Right...OK then, everyone here that is suppost to be here? Good. OK, from the top. Cue the Maniacal Brass Music and the lightening again."
[Maniacal brass music from Austin Powers followed by lighting flash with thunder]
BG "As I was saying, Ladies and Gentlemen, welcome to my underground layer, I have gathered before me the world's deadliest marketing and sales representatives, research and development teams, and ofcourse our team of assassins. And yet you have all failed me in one way or another."
[The everyone else at the table begins to feel uncomfortable]
BG "Yeah, I assume that your squirmming means that you are in a world of shhh. For instance, Mike Nash, you are suppost to be incharge of security technology. Judging by these numbers, I don't see much security going on. On top of that, yesterday, I let you house sit for my cat that I use when we have these meetings and today I find that you did something horrible to him."
Mike Nash "But sir, I fed him, groomed him, I even gave him a bath just as you requested."
BG Look at what you did to Mr. Bigglesworth!"
[Hired musicials play Shock-and-Awe]
BG "You sure as hell can't bath a cat with Nair, and you definitely suck at software security. So I'm just going to cut to the chase and-- DIE!!!!!! " [Pushes release button, sends Nash to the incinerator]
MN "Auuuuugghhh!!!!1!"
BG [Sees Senior VP Brian Valentine snicker.] "What, Mr. Valentine? You think this is funny? Is there something amusing about why Microsoft is lossing ground? I hired you people to sell my product. How am I suppost to sell a product if people don't buy it?"
BV "Well, why didn't you speak to that head programming guy who was just--"
BG: " SILENCE! " [Pushes release button, sends Valentine to the incinerator]
BV "Auuuuugghhhhh!!!!1!"
BG "God, you people make me angry! And when Dr. Evil--er, I mean-- Bill Gates is angry, Mr. Bigglesworth gets upset. And when Mr. Bigglesworth is upset people DIE!!!!!1! "
[Pushes release button, sends random henchmen to a fiery doom]
BG "Steven Sinofsky, Jim Allchin, Paul Allen, Melinda, Evil Defective Linus Torvalds Robot-Clone, Karl Rove, man on the other end of the room who flips switches, man with clipboard looking busy, and Satan, I have spared your lives so that we can get this damn thing over with. They say our product is defective, but we are going to do what those insubordinate fools couldn't, were finally going to choose the colors for the box to put the software in!"
Steven Sinofsky "But what about the software?" [Sees Gates move toward the button with his name.] "Oh, wait, right! Sorry. I forgot, that's what programmers are for."
Man I wish I was this creative in English class.
The Rapture is NOT an exit strategy.
Backward compatibility is not the problem.
From early on the main goal of MS software was to "burn cycles". As Intel churned out ever faster processors something had to greedily consume those cycles, keeping the customers on the upgrade treadmill forever. MS software ensured that the latest generation hardware was just good enough, but the next gen of software brought the hardware to its knees.
So, what do you get after 20 years of bloatware and burning cycles? A monster that's become impossible to manage. A monster of their own creation.
Microsoft did not get into this mess because of its relentless pursuit of total, perpetual compatibility. As most people know, while a lot of effort has gone into compatibility the simple fact is that the current version of Windows is no more compatible with its legacy products (windows 3.x, dos) than Linux or OS2--it uses the "Windows on Windows" virtual environment to run 16-bit legacy code, and XPs compatibility with Win9x/Me games, etc. was more of a bolt-on than something that permeates into the core of XP. The result is that Windows is remarkably compatible but not totally so (any 16-bit Windows/DOS program that relies on communications ports for example will crash in NT/2000/XP). The large compatibility layer has resulted in a bloated, crusty registry and APIs that would only be purposely designed like they are by crack addicts. However, although this makes Windows a sometimes-frustrating environment to program at lower levels it is not what makes it nearly unmaintainable even by behemoth Microsoft.
The REAL poor design decision was electing to create a tightly integrated system. This was the root cause that made other questionable choices at Microsoft (compatibility and "Featureitis") difficult or impossible to correct. When Microsoft wanted to bundle its web browser with Windows it decided to take IE (which wasn't ingtegrated with Win95 at all initially) and sprinkle its libraries in the system directory and link a whole bunch of other components to it...to the point that even the GUI shell will not operate without IE components. It threw the GUI and all these drivers into kernel space. It made one big monolithic, multi-million-LOC pile of crap and justified it by doing it in the name of a "seamless user experience" at a good level of performance.
There is no excuse for this now--we have machines powerful enough to host full-featured virtual machines that can run self-contained copies of legacy OSes, so if customers really (often foolishly) want to run software that is over a decade old to do important things then they can take that route. The sad thing is that political reasons rather than technical reasons prevent Microsoft from taking the proper course of action. Microsoft should've "pulled an Apple" right after the release of XP and immediately set about developing a totally new OS as different from the NT-based XP as NT was from DOS (and the Win9x/Me derivatives). Apple smartly got out to market faster by building its foundation on open software.
The problem is MS is probably loathe to heavily depend on open source for its flagship product, and the problem is that Apple beat them to the most viable BSD-licensed option. Since MS has been asleep at the wheel there for far too long, they have two difficult options ahead: Firstly, they could bite the bullet and plan the first major, post-Vista Windows release around a BSD-licensed UNIX core as Apple has already done. MS would be risking a lot by doing this as they become less differentiated from Apple than before--can MS out-class Apple on the UI front, or maintain enough legacy Windows compatibility to keep its customer base? Second, they could try and engineer a new kernel/core system themselves and bolt on chunks of updated Vista as componenets. This could take longer than the first option but it is a made-at-MS solution. In the meantime competitors will have even more time to catch up.
Basically, Windows as we know it is fast approaching the end of its life cycle. I personally don't think it is really sustainable for even one more major release after Vista. Although this presents a great opportunity for Linux-based and OS X systems I don't think it is the nail in MS' coffin just yet. I figure that with the kind of shake up that looks possible to occur in the next few months at MS that in around 2010 we'll all be eagerly anticipating the release a completely new Microsoft OS--with a very UNIX-like architecture (holy shades of XENIX batman!) under the hood but something very 21st centurey on top.
This is true for the most part, but personally I've also felt that the problems with maintaining backward compatibility have been a result of Microsoft's decision to produce closed source software, and to encourage other developers and businesses to copy their model. (ie. Hide your source so people can't read it, charge people to install and continue using your software, and don't let anyone use or improve on your code.)
With closed source software applications, any or all of the following are typically necessary when the OS is upgraded:
In essence, every time Microsoft changes Windows, its customers either have to rely on Windows having backward compatibility, or they have to rely on the vendors of all their software... even if the underlying API changes have been trivial. There's also a single point of failure because if the vendor doesn't fix any problems properly, there's no opportunity for anyone else to do it better.
Compare this with open source software, where even though the OS API's tend to be a little more stable, it's still quite straightforward to upgrade to new versions of software when the API's do change. If the vendor of an OSS product doesn't do it quickly enough, and their product is popular enough, chances are that someone's at least going to produce a patch. There's rarely such a thing as a vendor going out of business and causing major problems, because at someone else is likely to pick it up if enough people use it, or provide an easy-to-implement alternative that'll simply read data from the original app's open formats.
I'm definitely not trying to claim that open source is superior to closed source for everyone, and I doubt Microsoft could have been such a commercially successful company if it'd built itself on open source software. Having said so, though, I think the backward compatibility issues are a direct result of Microsoft promoting closed source software. It's not something that's even a consideration with open source users for the most part, and Windows wouldn't have to be anywhere near as backward compatible if it was easier to adjust and upgrade the applications that run on it.
Most of the code looks like this:
1) Setup & Initialize
Get an interface here, claim some memory, find another interface over there, register own functionality here and there, try something else in case something has failed until you succeed or run out of options
2) Delegation and Fallback
If some particular module is not available, fall back to other implementations, reformat the data, manage lifetime and ownership, synchronize with some other activities, and then delegate the call to some other interface
3) Error Handling and Recovery
After each call, perform error checking, pass back the result to the caller, potentially reformatting it again, or raise some exceptions or create new higher level error codes from lower level error code you got
4) Cleanup
When it is time, either because some reference count went zero, some termination function was called or a garbage collector comes by, free all resources claimed so far, deregister references downstream and upstream
The whole code is full of hungarian notation type casts, macros and microsoft specific language extensions, and the flow control statements are mostly branches. You are already lucky if you may write a loop that does some actual work, even if it is just collecting stuff from multiple calls.
And then, if you look at APIs, there are much more parameters and much more options than e.g. in UNIX counterparts, and many options are not orthogonal, so you are entangled in a web of obscure semantics almost everywhere. And you do not have one API for the same stuff, you got a shitload of them: Win32, WinMM, GDI, ATL, OCX, MFC, COM, DCOM, ODBC, ActiveX, DirectX, XNA and tons of product specific APIs. It is already a nightmare to decide which API to use, but to support them all in a bug-by-bug compatible way is programmer's hell. It is like travelling with a hospital ship full of corpses that are not completely dead and need to be kept alive by a team of doctors, high doses of painkillers and cardiopulmonary and dialysis machinery, just in case someone needs them because he speaks this ancient lanuguage noone else but these living dead understands.
With .NET, Microsoft did a good job at API design, but it is of no immediate help, it is just another API that has to be supported with all the other legacy APIs, so .NET does not reduce, but increases overall complexity and does not perform as well as the other APIs. Another problem with .NET is the lack of maturity, still requiring major changes on all levels, resulting in huge compatibility nightmares between different versions of .NET.
But even if Microsoft would throw away everything but the kernel and .NET, I still would not jump on it because I do not like to be locked in on a particular platform; I want to be able to run my Software in MacOS and Linux and have a chance to port it to some hardware or OS that does not exist yet.
If I were in charge at Microsoft, I would try some of the Google philosophy: Do not be evil, and give the people something they can like:
1) A solid, simple well documumented and rock solid foundation that manages device I/O using a small set of calls with clear semantics: open, close, read, write, ioctl seem to sufficient to do a lot
2)Choose the right atomic elements: Bytes, Characters, Numbers, Strings, Pixels, Images, Audio Samples, 3D-Polygons and video streams and make them first class citizens throughout the whole operating system.
3) Implement all APIs people seem to like in a rock solid, feature complete and efficient manner: OpenGL, gtk, POSIX etc.
4) Invent some new own cool High-Level APIs and frameworks and make sure they are available on Linux and MacO
Without order, nothing can exist. Without chaos, nothing can be created.