Windows Vista doesn’t suck

First let me say that I wouldn't classify myself as a Microsoft advocate. I have a Linux box I use for my daily work and a Windows machine for both work and play. I am however, an early adopter. So pretty much as soon as I could get my hands on it, I installed Windows Vista.

I'll start out with what I don't like in order to be fair. I really am annoyed that there is no longer a "navigate up" button in windows explorer. I find myself missing it all the time. I understand that they are trying to go with the "breadcrumb" navigation scheme, but with long path names, it just takes more work.

Also, Vista tends to be a slug on a lot of hardware, particularly if you are short on ram. This is likely a combination of a few things, the aggressive ram usage for caching, the pretty GUI, etc. You just don't get the same performance out of that Pentium4 with 1GB of RAM as you did with XP. However, on brand new hardware loaded with RAM I find it more responsive than XP. The bottom line here is that there seems to be a tipping point where given enough room to play, Vista starts to feel faster.

Backwards compatibility is a tough thing here. Too much focus on backwards compatibility and you lose the ability to add new useful features. I have only encountered one program which I simply could not get to work in Vista, and it was an older game. Programs I actually care about work just fine. I like that fact that running as a less privileged user is the default. However, I would have liked to see the option to run old applications in a more compatible sandbox of sorts. I am thinking of something where you right click and choose "Install in compatibility mode" and it would copy a minimal directory tree structure into a special directory and run the program "chrooted" there. It would have it's own registry, it's own filesystem, etc. Under the hood file system hardlinks could reduce the wasted filesystem usage. Almost how wine works with a virtual drive c, so could a compatibility mode.

Finally, I don't like how some things are different just for the sake of being different. I used to be able to get at my network settings by just right clicking on an icon in the system tray and choosing "Status." Now that information is hidden behind at least 2 extra dialogs. I understand that they are trying to provide a unified look at networking even on systems with many network cards...but when I just want to know the IP of an interface, clicking through several new (and confusing) dialogs or opening a command prompt and typing ipconfig is simply slower. I nice middle ground would have been to have right click have a submenu for each interface each of which would have a status menu. This would be simple, functional, and fast.

On to what I like :)

First of all, as everyone points out, it's pretty...very pretty. The eye candy is done well and is usually functional from a usability perspective (the 3D flip is an exception I can think of) . The default look of XP just looks like a Fisher Price toy to me. Of course if you are running Windows Vista Basic edition then you are probably going to be missing out on this. But that's OK, but it's not what makes the OS good.

Vista is also much more stable on average than XP. My new system had some issues, but it turned out to be faulty hardware. After Dell replaced my motherboard and CPU, haven't had a single crash.

The most useful addition I found is the way that search/running is just a single button push away. You simply hit the windows key and start typing. Immediately the start menu will filter out the entries which don't match the keywords. In addition to that, it'll start displaying files it found. Finally if you hit enter when done it will try to execute the search string as a command if found. So the run dialog, desktop search and start menu have all be integrated in a way which work really well. I know a lot of people are going to say "well OSX had something like this for a while now." This is true, but just because you didn't do it first, doesn't mean it isn't a good idea, it just isn't innovative. Someone was first to offer airbags in cars, I don't see people giving the other car companies a hard time because they also offer this feature.

The software compatibility wizard also is very nice. Whenever Vista detects that an installer tried to do something that may or may not play nice with the limited privilege concept, it will ask "did that work correctly." If you say no, it will try again with more backwards compatible settings and potentially store information about it in it's issue manager for later resolution.

Many features exist under the hood where people don't see any visible difference, mostly in the name of security. There is Address Space Layout Randomization (ASLR), which is very effective in reducing the severity of buffer overflows because it makes finding a viable "offset" much more difficult. It also makes return-into-libc attacks a lot less likely to succeed. The net result here is that while code execution is technically possible, it is more likely going to be a DoS which is bad, but a lot less bad. The user space heap has been hardened beyond what was done in XP SP2. This once again tends to turn what was arbitrary execution into a DoS instead. These two things combined with the non-executable stack capabilities effectively make standard buffer overflow attacks much harder to pull off. In addition to these direct approaches, they have also made many improvements to the compilers used. Modern versions of Visual Studio will warn the developers about the usage of potentially unsafe functions. Not only that, but Visual C++ by default will disable the "%n" functionality of the printf family of functions. Once again this turns a vulnerability which would have the possibility of arbitrary code execution into a DoS. In the format string case, there is no longer any possibility of execution using existing techniques because there is no way to corrupt memory.

Finally, the much debated UAC. People seem to hate this, but you know what, it's a good feature. Coming from the UNIX world where I have to type "sudo " whenever I need to do something privileged, this was a welcomed change. I understand that it is inconvenient, but the fact of the matter is that most users can't be trusted to be administrator all of the time, particularly in a corporate environment.I feel that it is in the business world that UAC will shine. Simply set the UAC to require the system password instead of just a prompt and the vast majority of Trojan horse installs will disappear.

The real problem is that both users and developers are too used to being administrator, this has created horribly bad habits. Microsoft has tried to meet halfway here by virtualizing reads and writes to files in what are now protected locations to a local store. This is done seamlessly and improves backwards compatibility.

In the end, I feel that Vista is an improvement over XP, if you have a new machine. I would not recommend upgrading anything with less than 2GB of RAM to it. Certainly there is no need to upgrade from XP, but if you have the horse power it runs like a champ.