I know you folks are no doubt hard at work on Windows 7 and if you see this it will be during the exhausted daze of a much-needed break. The work to produce a sophisticated operating system like Windows 7 is monumental in fact maybe epic is the right word to describe the task before you. Listen to what I have to say and maybe that work will be less than you think. Maybe.
This open letter is directed not only to those at Microsoft hard at work on the next version of Windows, it’s aimed just as much at the business decision makers too. I understand that the two groups often end up together (or at odds) determining what features and functions will make it into the OS release so listen up.
We are at an unusual time in the computing era with more notebooks than ever being sold and adopted by consumers. We’ve seen sales figures for a year or two that show that notebook sales outpace desktop sales and with the explosion of the mini-notebook genre I am confident that will not only continue but at an even faster pace. I speak to many people who have replaced their home computer with a laptop or intend to do so with their next computer purchase so it’s mandatory that we realize that mobile computers are here to stay. Unfortunately for you, Microsoft, this is the computing area that gives Vista the most problems and it is imperative that you address this with Windows 7.
I’m not going to go into details about the problems that Vista has with mobile computing, they are well documented and can be found all over the web. I am going to outline the areas that you need to address in Windows 7 to insure that the best mobile computing experience will be delivered. A lot of the problems that Vista has today running on notebooks and other mobile computers can be traced back to the hefty hardware requirements Vista needs to run well. There’s no point in burying your head in the sand and ignoring this as it’s a cold, hard fact and you have to make sure that Windows 7 doesn’t require such muscle to run acceptably. Sure, it’s cool to be able to claim that Win7 will run on the latest and greatest dedicated graphics and quad-core processors but these don’t play a significant role in the mobile PC space, a space that will be huge by the time Win7 ships. It’s not just a matter of OEMs wanting to keep costs down, which of course plays a role, but it’s realizing that this muscle is just not needed in most notebooks the way consumers use them. Rather than trying to deny that, it makes far more sense to accept it and optimize Win7 to run well with lower spec processors, less RAM, slower hard drives and integrated graphics. This is the real world and that’s the world you will be playing in with Win7.
Mobile PCs have different problems than desktops due to the different usage scenario they present and those problems must be addressed as they are currently horrible under Vista. The process to sleep and resume a notebook must be bulletproof and take place as fast as possible. There is no excuse for the operating system to be performing overhead functions while the device is sleeping or resuming. This happens all the time under Vista and even under WinXP. When the laptop is sleeping it shouldn’t need to do anything at all since it’s keeping memory alive anyway. Just go to sleep and then resume the same way. While you’re addressing these problems make sure, no it is imperative that you do not let anything in the operating system wake up a sleeping system. No scheduled tasks, no automatic updates, nothing. This happens more than you realize under Vista and the result is a super-hot notebook in a gear bag that has been sitting there running with the lid closed and the battery draining away. I have experienced this myself and heard from many others who have experienced the same thing. Along those lines a mobile PC running on battery power shouldn’t have any overhead things running anyway. Let the user devote all the power and performance to performing user functions only. The OS is not going to fall behind and if the OS needs to be running background overhead tasks all the time then something’s wrong anyway.
Another area that needs improvement in Win7 is in the docking/ undocking process. Mobile PCs have the ability to be hooked to a dock even if it’s a simple USB hub that has multiple peripherals plugged in. Vista takes a long time to reinitialize each peripheral plugged into a hub when it’s connected and that shouldn’t be happening. Just let the peripheral stay in the device tree if that’s what it takes and give an error if the user tries to access it when unplugged from the hub. That’s the way it used to work and a far better way to handle it than to constantly be polling for connection/ disconnection. Don’t make it take up overhead unless it’s a real problem. This theme can be applied to many areas of operation, don’t spend a lot of resources trying to protect the user from him/ herself. The system should focus on running the user’s tasks and running them only, not doing a lot of things in the background to protect the system from the user. This is such a waste of resources and there are no resources to spare in many of the notebooks that will be in use when Win7 goes live. Trust me, the sub-$500 laptop is here to stay so prepare for it, not exclude it like Vista does. You ended up looking so silly with your ULCPC program to let OEMs sell WinXP instead of Vista. Make sure that Win7 will run on all mobile PCs out of the box.
The best way to accomplish all of this is to make Windows 7 a modular operating system that only installs what is actually needed for the particular system on which it’s running. Vista has proven conclusively that a "one size OS fits all" is a myth that will not work on today’s hardware. The OS must only install and execute the major pieces that are actually needed for a given system so if it’s running on a mini-notebook with lower-end specs then it should only use what is really needed. Multi-touch is sexy all right but it’s not needed on 99.9% of the PCs in existence and I’ll bet even when Win7 ships so don’t bulk up the OS with it. That goes for any special functionality that doesn’t aid the user run-time performance on any given system so make Win7 a modular system. Win7 should be smart enough to analyze the system at install time and only install what will be used on that particular system. There is simply no room for code that is not going to be used on the user’s system so don’t even install it. If the system has no firewire ports then don’t install firewire support, and you can apply that across the board.
I hope you get the gist of what I am telling you here, that the days of bloated system code are over. The hardware and user demands will no longer support it, if they ever did. The computing landscape for the most part has shifted toward lighter PCs in both bulk and performance. This will not change between now and when Win7 launches so you have to plan accordingly. Of course given the development cycle time for a Windows OS I suspect the basic OS is already feature locked. If that’s the case I sure hope you’ve already gotten it right.