This is going to be a long post. I can tell. I have all these thoughts, jumbled together, and it is going to take a lot of words to get it all out. Sorry.
The subject is Windows. I am a student of Windows; I have used it since Windows 2.0, and I have programmed for it since Charles Petzold first made writing SDK programs doable (shortly after Windows 2.0). I remember Windows 386 (do you?), and Windows 3.0, and 3.1, and 3.11, and 95, and 95b, and 98, and 98SP. And ME. I remember NT 3.1 (do you?), and NT 4, and Windows 2000. Now we have XP and 2003. All through this evolution, Windows has solved three main problems, or should I say, has provided to software developers the means to create solutions for three main problems. First, it enables development of reasonable and consistent graphical user interfaces. Second, it enables multiple large programs to be run concurrently. And third, it enables machines to be networked together. Everything else - device management, multimedia, security, etc. - is peripheral. (That ought to get me some email!)
So how well does Windows solve these three problems? Well, it does a great job with GUIs. Mac aficionados may beg to differ, but on balance, Windows has succeeded because it provides a nice GUI, and because developers can create reasonable and consistent GUIs. It does a so so job with enabling multiple large programs to be run concurrently. Multitasking is now a solved problem, as is multithreading, but storage management is still klunky and slow. Windows has the worst paging algorithms of any OS in general use. And it does a crummy job with networking. Windows computers can easily join TCP/IP networks, but file sharing is a great mystery, domain management is difficult and idiosyncratic, and providing network services in applications is complicated.
Which brings me to my main point. Microsoft has now spent four years building Longhorn, the "next" version of Windows, and it looks to be spending two more years at least. When Longhorn is released, it will have been at least six years since XP came out. That is a long time in computer years. What will we get? If it were up to me, Microsoft would stick to its knitting, and instead of trying for more and more functionality - which is properly the province of application software anyway - it would fix paging and fix networking. Do the things Windows should do well. I won't get my wish, but that's what I want.
In fact, the whole way Microsoft has approached Longhorn is flawed. In the fall of 2003 I attended the MS Professional Developer's Conference. This was where Longhorn was first unveiled to the public. The conference itself was great, but at that time I opined that "there's a lot less here than it would at first appear". MS appeared to be trying to change everything with the intent of providing a lot of new functionality, but actually it was just making things slower and harder.
What Microsoft should do, instead of this incredible six-years-in-the-making grand new version, is it should release a simple upgrade to XP/2003 which is faster, and which has a few new features. You could call this Shorthorn. Fix paging. It is past time Windows had a decent implementation of virtual storage. Fix networking. It is about time for Windows to have a simple computer-to-computer communication mechanism.
Imagine you are a developer king, sitting at your desk. You have a state of the art PC and every possible development tool. You have the entire Windows source tree. You can do anything you want, build anything, change anything, fix anything. What would you do to create value for all Windows users? Would you implement some new multimedia features? No. Would you rewrite the presentation layer to use vector graphics? No. Would you implement some new security layer? No. Well, maybe you would, but I wouldn't. Now imagine you made paging twice as fast, and made it degrade gracefully instead of falling off a cliff. That would be cool. It would benefit 100% of all Windows users, and it would be entirely upside, with no incompatibility, nothing to re-learn. Just pure greatness. Now imagine you made networking computers easy. That would be cool. It would benefit nearly 100% of all Windows users, and it would be entirely upside.
That's the technical view, but what about the business view? Well, let's see. For Windows there are two parts to the market, new machines, and upgrades. You get the new machine market automatically; basically everybody who buys a computer buys a copy of Windows. They don't particularly care or even know whether it is Windows XP or LH or SH or whatever. (Corporate IT departments do know and care, but they still take what you give them.) What about the upgrade market? We have these millions of computers out there. If you release Longhorn, with lots of spiffy new features but which makes everyone's machine slower, will they buy it? I don't think so. They might have to buy a new computer just to run it. They might be afraid of the incompatibilities. If you think this wouldn't happen, check how many people are still running Windows 2000. On the other hand, if you release Shorthorn, with fewer spiffy new features but which makes everyone's machine faster, will they buy it? Of course. They won't have to buy a new computer, and they won't have to worry about incompatibilities. If you think this wouldn't happen, check what happens in the Mac market. Everyone upgrades from Jaguar to Panther to Tiger, because each release is faster, and they are all compatible. Sure there are cool new features, but that's secondary.
I would bag 50% of the code created for Longhorn. Just trash it. Make Shorthorn a smaller release, with fewer new features, with some key performance enhancements, and get it out there. Release the spiffy new features as add-ons, when they're ready.
Actually there are signs Microsoft is doing this; they've already tossed the WinFS bags from the balloon, and now we see that Longhorn won't be written in C# after all. I think they discovered that GUIs are fine in .NET, but low level drivers are not. There is a performance price to be paid, and the cost is too high.
As enlightened users, we should do all we can to accelerate this trend. Post to your blog. Write to your local Microsoft blogger. You know there is panic in the halls at Redmond. They did not plan to spend six years building a new OS, just so they could cut everything back. They do not want Longhorn to be a disaster. If we all - and I mean all - encourage Microsoft to release Shorthorn instead, maybe they'll do it. They can claim the change in strategy is because they're listening to their users, and it will be true.