Open letter to Microsoft about Windows 7
To the powers that be at Microsoft,
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.



I agree with a lot of the things you’ve said but I don’t think your firewire example is necessarily a good one. It doesn’t mater if drivers are installed that aren’t being used. For instance, nobody complains that Apple include drivers for lots of printers and having a plethora of drivers just helps with PnP.
I think the problem lies with all the services and scheduled events that are running by default. The fact that there are so many guides telling users to turn this or that service off to improve performance proves that a lot of them are unnecessary or not essential.
I quite like the idea of having a basic OS install that matches the hardware on your PC provided that I can easily activate additional features. However, remember that Microsoft did provide Vista Basic to address this need and nobody wants it. In fact, Microsoft have been sued because Basic users decided that it isn’t really Vista because it lacks Aero.
I think all this proves is that it’s very hard to please everyone and it’s probably best that I stop here before I end up writing a comment as long as your post.
One last thing, I agree 100% with you on how sleep should work and hope that this can be implemented in the next version of Windows. MS should not treat a sleeping PC like a sleeping Pocket PC which I think is the problem.
Linux isn’t guilt free with alot of these either but I might add a few things:
1. Don’t CREATE new hardware with Intel to fix your stuff. If you do anything, work on a new standard WITH the Linux developers so that Suspend/Resume/Hibernate works perfect no matter WHAT OS it is.
2. Get rid of bloat….we don’t the file system to be a database too. We need it to be a filesystem. WinFS is a HORRIBLE idea. Just improve upon and then OPEN ntfs so others may use it. Stop pretending you make money off of ntfs. You don’t.
3. In fact, open Windows itself. With prices hardly changing between devices with Windows and without, you can’t make that much money on that Windows license. Plus you could use a little help closing your security holes.
@gorkon – I disagree about WinFS. Although users may not have used it directly any more than they do the built in desktop search, it would have been great for developers. I’d love to be able to query the folder structure as if it is a database rather than deal with the file commands that Microsoft currently make available.
When I get my computer in the near future with Win7, I just want the darn OS to be compatible with all my softwares. Please!! Just make sure all the programs I have installed in VISTA right now, which took me considerable amount of time and effort to get them to work, will run without those dreaded compatibility issues.
Great Letter James. Maybe MS will hear some of it.
I don’t care what bells and whistles MS decides to put in, just make sure that they work with a real computer and not some imaginary 4 core ,8 gigs of ram dream machine. I’m actually OK with having to upgrade my hardware every 18 to 24 months. But. I don’t want to have to spend top of the line money just so my OS will run reliably.
Please MS, look at the 10 most common things most people do with a computer and design an OS that makes them super easy to do with 99% reliability.
Microsoft is a lot of things but stupid isn’t one of them. I expect to see a big change in an upcoming version of Windows if only because they were slapped pretty hard with Vista. It’s hardly the dog some people make it out to be but, being a dev, I don’t use it. I don’t personally know a single dev that does use it. In fact, I only know a handful of people that use it regardless of their vocation. Microsoft likes to throw around the numbers of Vista units sold but what percentage of those were “sold” only because they forced manufacturers to preinstall Vista? I don’t know offhand, but I do know they were forced to again allow XP preinstalls and forced to extend their support of XP. Personally, I needed a new laptop and, yesterday, I bought a new Macbook Pro despite it’s being painfully expensive compared to a lot of the Windows laptops I looked at. Why? Vista. Sure, I could have wiped the drive and put XP on it but I can do that with OSX, too, and have the best of both worlds. Users complain about Vista, devs complain about Vista, manufacturers complain about Vista, retailers complain about Vista…if Microsoft hasn’t learned a few things from this, they deserve to lose a sizeable chunk of the market. But I can’t believe they’d be that stupid so I’m optimistic.
>>>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.
Or they could just outsource it all to Apple, who seem to be able to get the task done. (Recall the Allchin memo marveling over the things Apple had while MS was still “at work” on them — for *years*.)
And look, by the time Win 7 is at Alpha, we’ll already have better Linux and maybe a rev and a half of Google’s Android OS. Those two are *seriously* gunning for MS.
Great letter! I already installed linux (Suse 10.3) on my 2 desktop computers and my sony vaio UX. But on my UX I use XP, because Linux gives me 1:40-2:10 hours of worktime while XP can work for 4:00 simply))) That is the only point.
Great letter James. And while your at it make most of the preinstalled programs optional. I don’t need MS Mail, Calendar etc. Make Windows 7 smart enough to see that if I install Outlook that it should offer to uninstall those programs that I don’t want. Having an install system like Office where I can choose a full install or what components to install in a custom installation is really the only way to go.
Also design a proper uninstall system. Registry entries, program folder, the lot. Stop clogging up my system with stuff I’ve tried to uninstall.
Gordon
I agree with some comments but disagree with others.
E.g.: sleep.
I use Vista as a Media Center PC. In that scenario I definitely WANT Vista to wake up at 2am for its scheduled maintenance, defrag, updates, etc.
Just give users the choice to turn things on and off.
While I agree with the sentiment displayed here, the issues that you are talking about aren’t purely down to Vista, but are also down to shonky hardware and drivers for that hardware from manufacturers. The reason that Vista takes so long to sleep is because driver writers have made the OS do assorted tasks before it’s allowed to sleep, this is *required* to make sure that devices still work when they get woken up. When your computer comes out of sleep Vista has to re-initialise that hardware, again things have to be done. Apple has the luxury of making hardware and software, they can make sure it all Just Works. If you want an example of just quite how hard it is look at all the sleep issues with Linux.
Incidentally, Vista doesn’t poll for hardware, and no operating system has for near enough a decade. When some new hardware is attached the controller it’s attached to (USB/firewire/SATA) will raise an interrupt which will stop the OS from doing what it’s currently doing and get it to pickup the hardware. It’s a bit of a simplified description, but I’m sure that if you’re interested you can just use google.
As for modularity, I don’t really care all that much. There was a point when I cared about every piece of software installed on PC, now I just want things to work, and there are operating systems that do that. I don’t want the hellish Windows 98 problems again when it turns out that I didn’t click some silly tick-box during the installer.
But mostly I agree with you. I think that MS built a nice base with Vista, I just want Windows 7 to be the same but faster and leaner, most of the features that I want are already there.
I’m okay with scheduled tasks running during sleep… It’s having then run on battery power that’s the problem. I hope Windows 7 will be able to detect when mobile units are on battery and disable power intensive tasks, postponing them until the unit is back on AC power. That’ll solvethe “hot pocket” problem too.
— Steve
Steve, the problem with scheduled tasks running during sleep is that in Vista it actually wakes up the device and sometimes it doesn’t go back to sleep.
Great letter! hopefully some that can make a difference reads it.
Hope you get a consulting job working as part of the design team!!!
I agree with a lot, but here’s what I hope for:
One of the biggest advantages of other competing OS’s is tweakability. By this I mean having a setting for everything. I understand that this may confuse many users but that’s what default settings are for. With this regard, I agree that the user should have the option to install whichever features they deem necessary. Thus, their system will only be as loaded as they need it to be. When in need, additional features should be able to install from the original OS media as they do currently, or automatically from the web (let’s not bury our heads in the sand here, most users have net access at some point).
Regarding the power abilities, I propose REM: no not Rapid Eye Movement, but Rapid Energy Management. If I want my computer to sleep a deep sleep, I should be able to configure sleep to turn everything off. Permanently. Don’t wake up for anything. If, however, I want my PDA to be able to check my mail, my computer should be able to succeed where SideShow so miserably failed: Leave Bluetooth in a low power state on sleep, and when I access my mail with my PDA, I should be able to have my computer fetch my mail without ever having to turn it on. This includes using local WiFi access, enabled without the system waking, providing me options of which network to use (and the respective settings) on my PDA, essentially turning my computer into a low power router. Throughout this process, BT was in a low power state, and WiFi was turned on and off. Nothing more, nothing less. I understand a lot of this is up to hardware manufacturers, drivers and many other factors, but the dire truth is that’s how it should be by now…
I’ll end my rant now and crawl back under my Vista and Windows Mobile rock, mold, algae, earthworms and all.
Hi Nice work James. This is just IT !!!
I would add a request too :
Make the new windows a breeze to update from XP because i don’t and i wont go for Vista anyway !!!!
Amen to optimization and customization of installed components. Also, I suggest rethinking of the UI and input methods. The UI needs to consider that for some, being able to do most tasks should be completable without using the cursor. Others need to be able to do most tasks without keyboard input. Consider things like pen-input. It needs to work, and work fast. I can’t wait for it to pop-up a window, and I don’t want to have it take up screen real-estate always. Think about touch-screen input — I need a sweet onscreen keyboard that knows when to come up and when not to.
Copy apple if you have to. It’s worked for you before! Steal from the iPhone, from MacOSX, and even from those crazy ubuntu compiz guys. You know all that stuff that people drool over on youtube? Do it. But then make it optional, for those that want it.
But most of all, make it work. Please. No bugs, no lag, no features that I need to spend all day disabling that should never have been the default anyways.