In Defense of Vista and the Challenges Facing Windows 7
Perception is everything. That applies to everything in life and certainly applies to Vista. It doesn't take much web searching to find plenty of commentary indicating that Vista has not been well received and is often downright hated. In a lot of ways, I think Vista's been given a bad rap, and my opinion is that it is quite a bit better than it gets credit for. In this article I want to talk about what I think Microsoft did right with Vista. Is it perfect?--of course not, but no software ever is. Additionally, I want to address where I think many of the Vista problems are coming from. Finally, I want to also discuss what I see are the challenges Microsoft faces with Win7 given the Vista perception and how Microsoft can negate them.
Before I start, I need to say that I'm definitely not either a marketing person or much of a business person. I'm software developer who's bet my whole career on developing for Microsoft operating systems. I started with DOS 5.0 and switched to Windows 3.0 as soon as it came out. While some of you will say that makes me old, I prefer to think that means I have a long term perspective on Microsoft and its position in the developer mindshare. As a reminder, these opinions are my personal opinions.
Vista, especially after SP1, is definitely better than Windows XP. Every time I have to use Windows XP or Server 2003, I find myself really missing some of the features and abilities I've grown to love in Vista. As I was reading yet another screed against Vista, I jotted down the six key things I find invaluable about Vista. There are many more, but these are the ones that are important to me as a user and developer.
- User Access Control (UAC)
The most important point Vista has is that it is the most secure operating system Microsoft has ever released. The reason for that is UAC finally keeps people from running with administrator credentials by default. Having run as a non-admin on XP and Server 2003 for nearly nine years, I'm much happier than I was being forced to use the RUNAS tricks. I can honestly say I've never found the UAC pop ups annoying or too frequent.
While many people have complained that Microsoft should have implemented something like UNIX security, I think UAC is the best compromise for the reality of the Windows world. Microsoft has to deal with a ton of poorly written software from third party developers who assumed everyone was an admin just like they were. While some of this fault lies with Microsoft, a majority of it belongs to developers who won't or can't follow the design guidance. Microsoft has been issuing recommendations and steps for years on how to correctly write software, but developers certainly haven't been listening.
What always bothers me is when I see someone recommending that you turn off UAC. If you turn off UAC and run all processes with administrator rights, you deserve all the viruses and slowdowns you'll get. Microsoft does a good deed working to make the OS secure and these "experts" go off and completely ruin the security. I wish Microsoft had not allowed UAC to be turned off.
- Mobile Computing
Another Vista feature that makes my life better is that mobile computing finally works consistently and reliably. Back when I had Windows XP and Windows 2000 on my laptops, it was always an adventure opening a sleeping laptop. You just never knew if it was going to wake up. With Vista on multiple laptops, it's just works.
- Search on the Start Menu
The search in the Start menu is simply brilliant. I've become addicted to it and whenever I go back to Windows XP or Server 2003, I'm always stumbling over how to open files or start programs. The OS now gets out of my way and doesn't interrupt my thoughts nearly as much.
- Ink Input
As a Tablet PC fanatic, I love how Vista has made ink and the pen first class input for the OS compared to how it seemed to always be a tacked on feature in previous releases. I work best by writing things down by hand and Vista's trainable handwriting recognition means I easily get 98% to 99% accuracy when searching for things in my beloved OneNote. It's very sad how few people have gotten to use a Tablet PC because Bill Gates is right: a pen is a wonderful way to interact with a computer.
- Better Scalability
In my opinion, Vista scales better than previous Microsoft operating systems. In the past, I was always in the habit of shutting down applications unless I was actively using them. As a developer, I always gave most of the machine to development tools because the more programs you had running the slower everything got. With Vista, I'm rarely shutting anything down and running tons more applications. Right now on this Vista x64 machine there are five instances of Visual Studio 2008, five PowerShell windows, Winamp with G-Force, three Internet Explorer sessions, OneNote, Outlook, Word, Process Explorer, and those are the just the open windows. I do more on a machine than 95% of users do, and Vista handles it easily.
- Fewer Reboots
Finally, I never reboot. What's the old developer answer to everything on Windows? Reboot. Back on Windows 2000, I rebooted three to five times a day. On Windows XP, I generally rebooted every day. With Vista, I only seem to reboot on patch Tuesday. Both my desktops and notebooks running Vista go weeks between reboots.
There are many other positives to Vista, such as Media Center, and so on. Having felt Vista was pretty good, I wanted to give it credit given all the negative reports floating around. I'm definitely not discounting the bad press, because a lot of it is true. What I want to turn to now is where I think the blame lies for the perceptions around Vista.
Many of the problems with Vista have been entirely self-inflicted by Microsoft. From the beginning, they "over promised and under delivered." What it looks like to me is that almost nothing we were promised at the 2003 Longhorn PDC was actually delivered. The stream of announcements saying this feature and that feature were being cut started the Vista perception long before it ever shipped. I know I'm stating the obvious here, but I think it's one of the major issues that affects perception with Vista.
The whole "Vista Capable" fiasco certainly didn't help. The story is that Microsoft labeled computers with Intel integrated graphic chips as able to run Vista, when they clearly could not. (Am I the only one who thinks it's ironic that Microsoft did this to help out Intel, but Intel decides to repay Microsoft by refusing to upgrade its corporate machines to Vista? Wow!) My father got stuck with one of these machines from a major manufacturer and even I couldn't get Vista running well on it. The only sliver of good that would come out of this is if Microsoft really learns a lesson.
While everyone's taken Microsoft to task over Vista, part of the blame also belongs to the computer Original Equipment Manufacturers (OEMs) such as Dell, HP, Toshiba, and Lenovo. It's not like the manufacturers didn't have sufficient warning Vista was coming, but many of the problems people attribute to Microsoft are the direct fault of bad drivers for just about all devices. Add in the horrible out-of-box experience you have with your average computer that comes with Vista installed and it's no wonder Vista looks bad.
Most of you reading this are developers. What do we do when we get a new machine? Completely wipe it out and reinstall the OS. We're fortunate enough to have things like our MSDN subscriptions so we have the real OS DVDs we can use along with the technical expertise to get things working. Your average person is scared to death to do that because they don't know how to get rid of the garbage on the machine so they suffer with it. Even the machine has a backup partition where they can reinstall the OS, that image contains all the garbage the user wants to get rid of in the first place. I'm annoyed that Microsoft has allowed this to happen.
At least there's something average users can do today to avoid this mess: buy Apple hardware. I've blogged about how I put Vista x64 on my Mac Pro long before it was officially supported by Apple. Based on the traffic and comments in that entry, there are quite a few people doing the same thing because they want to control the machine and not just deal with the garbage from traditional PC manufactures.
You'll see in a second why Apple makes the best Vista machines, but first compare my experience with the Mac Pro with the hell I had to go through with my Lenovo X60 Tablet PC. As a super experienced Windows developer who has done everything from drivers out on Windows, it took me eight hours to figure out what was the minimum set of driver software I needed to use the machine. Why can't Lenovo (or Dell, or HP) give me a single install that puts on nothing but the minimum drivers necessary? Apple can do it, why can't the others? I sent a bill to Lenovo for my time getting the machine in the state that it should have been delivered. Unfortunately, I have never heard anything back. Maybe I should turn them over to a collection agency. In Lenovo's favor, they have started allowing us to uninstall some, but not all, of the garbage with their latest machines.
What makes Vista x64 so stable and wonderful on my Apple Mac Pro is that all the core drivers come from Microsoft out of the box. If you can avoid any drivers from a manufacturer and just use those in the Microsoft install, you'll have much better luck because they are so much better tested. I highly recommend never installing any drivers from Windows update that come from any manufacturer. Yes, that includes video manufacturers. Based on my experience over the years I think little or no driver testing is done outside Microsoft. If Microsoft includes it with the OS, it's been really tested and you can trust it.
So this is where we are with Vista today, but Microsoft is hard at work on Windows 7. Microsoft will finally have to deliver "Wow" when they ship Windows 7. They have to under promise and totally over deliver in order to remove the perception problems with the operating system. This is going to be hard, but if any company can do it, Microsoft can. They have great people; they just need to be turned loose.
In my opinion, there are two key things that must be at the forefront for Windows 7 development. The first is that Microsoft has to seriously crack down on the OEMs. They've tried to do this in the past with the Windows Logo program, but it's basically a joke. For the first time Windows Logo must be something with teeth that ensures that drivers and user mode software works correctly. I feel Microsoft must require that every computer manufacturer delivering Windows 7 includes the Windows 7 install disk and a single install that installs nothing but the minimum drivers necessary to make the machine work.
In order to ensure the drivers for everything are solid and workable, Microsoft has to spend some of that pile of cash they have to help anyone developing a driver to get the driver right. This could mean continuing to force more drivers into user mode or it could mean providing even more developer support. It will definitely include developing testing resources to ensure the drivers are beat to death and earn the improved Windows Logo before they can be shipped. It's obvious the device manufacturers are not doing sufficient testing, so Microsoft will have to help them do it.
In the final part of the OEM crackdown, Microsoft also must completely own the initial out-of-box experience for the operating system. Based on how bad it was when I initially booted my Lenovo, where there were actual ads when I logged in the first time, there's no way anyone will think anything favorable about Microsoft. Those initial impressions are critical, and Microsoft can't trust them to anyone else.
The other thing that Microsoft needs to do with Windows 7 is to target today's hardware, not the top of the line hardware for 2010 when it's expected to ship. The relentless focus of the whole development effort needs to be on speed. The average user should go "Wow! I installed Windows 7 on my machine and it feels so much faster now." That's what it will take to completely eliminate the "Vista's a big fat pig" perception that exists today.
Even though I make my living with Windows, I use OS X on a Mac Book Pro for basically one application: iPhoto. I've found nothing on Windows that works as well as it does. I'm not a professional photographer; I just enjoy taking pictures of my vacations and life. iPhoto does exactly what I need to make my photo management simple and easy. I've been using OS X since 10.1 so I've seen a few operating system upgrades from Apple. Each upgrade of the OS always feels faster and seems to do more with less memory. With Windows and Vista today you just know that you have to buy a new computer in order to make the operating system work as advertised. This is Microsoft's last chance to change the perception, so it's absolutely critical.
One of the hard lessons I've learned in my many years of Microsoft operating systems development is "small code is good code." At the World Wide Developer's Conference in June, 2008, Apple announced Snow Leopard, OS X 10.6. You can read more about the feature list in Snow Leopard at Roughly Drafted. What's most interesting to me is that Steve Jobs specifically said that the features are for developers and not the end user.
At first I thought the features in Snow Leopard were interesting, and then word trickled out about the shrinking size of applications under Snow Leopard. The following chart, with full credit to Roughly Drafted, really caught my attention.
Apple's doing many things to shrink down the binaries, but it's blindingly obvious that they are focusing on making everything fast and efficient. That's exactly what Microsoft has to do with Windows 7 to keep in the game. The rumors are that the same version of OS X will run on a small iPhone as well as a maxed out Mac Pro desktop. If that's the case, Microsoft needs to be very worried.
Microsoft really has their work cut out for them with Windows 7. Vista is actually quite good, but the general perception is such that they have to execute to perfection in order to eliminate the negativisms thrown their way. Microsoft has responded very well in the past when they have real competition. With Apple's OS X market share nearly 8%, it's high time for the Windows team and executive management to unleash the creative forces inside Microsoft.
I'm very curious what other developers feel about Vista and what the challenges are for Windows 7. Do you disagree with my good assessment of Vista? What do you think Microsoft needs to deliver with Windows 7? Write in the comments or your own blog entry.