10. Windows should automatically identify failing hardware and tell me what needs to be replaced.
Today, when your RAM starts failing, your applications just start randomly crashing or going berzerk, or Windows starts randomly locking up, rebooting itself, or blue-screening. It’s up to YOU to suspect a RAM failure based on the symptoms and run a memory test program such as memtest86+ to scan for failing RAM. Instead, wouldn’t it be great (and sensible!) if Windows would detect misbehaving RAM and pop up a niffty dialog telling you that your RAM needed to be replaced?
Similarly, today when your hard drive starts to die, Windows mysteriously locks up (blocked trying to carry out a stalled disk operation), or the files and folders on the disk (or the drive letter itself) start to randomly disappear when you try to view them in Windows Explorer. Wouldn’t it be great (and sensible!) if Windows would detect when disk operations are unexpectedly stalling, or disk contents are randomly getting corrupted, and pop up a helpful dialog telling you that the disk is failing and needs to be replaced?
This may require the entire PC hardware industry to adopt new technical standards so that devices can report their own health/status to the OS. Who is in a better position than Microsoft to propose such standards and push the industry toward them?
11. Don’t let me onto the desktop until all startup services and programs are done launching.
With XP and even Vista, you log in and get turned loose on the desktop before all the "run at startup" programs have even started loading. The result is that the desktop is slowed to an unusable crawl for upwards of 30 seconds while all the "run at startup" programs (that typically appear in the system tray aka "notification area") load from disk and begin executing. The only reason Windows works this way is historical: Win95 used this approach to cheat its way to a lower "startup time" metric, and we’ve been stuck with it ever since. The better user experience would be to not even let the user onto the desktop until the system is ready to be responsive to the user, meaning that all startup services and programs have aleady loaded and begun execution and entered the idle state.
12. Eliminate hidden "run at startup" launchpoints.
Today, there are a myriad of ways (many hidden) for a program to set itself up to run automatically as soon as you log in to Windows. There are two "Startup" Start Menu folders (one in the "All Users" profile, and one in your own user account profile), several "hidden" registry keys (HKLM/HKCU Run/RunOnce), "Automatic" services, and even more I’m not personally aware of. The problem with this approach is that it steals awareness and control (over which things run at startup) away from the user and instead puts it in the hands of programs and malware.
Here’s how it should be changed to work: the only way a program should be able to run automatically at startup is if it’s an "Automatic" service, or if there is a visible entry for the program located in the "Startup" start-menu folder. (All "hidden" launchpoints, such as the Run/RunOnce regkeys, should be deprecated.) And the only way anything can get added to either place is for the user to either put it there manually, or for a program to ask the OS to ask the user to approve putting it there. This way, control over startup programs/services is given 100% back to the user, where it belongs, and the user can plainly see everything that is configured to run at startup without having to be a Windows expert and go poking around in the registry. This would eliminate 100% of malware or junkware that hijacks your system by running things secretively at startup without the user’s consent.