...Why do you put up with the deficiencies in Windows when there are superior alternatives that would only cost you a little extra money (OS X—and honestly the "extra cost" is debatable there depending on how you determine cost) or a little extra time (Linux)?
This isn't going to be yet another Windows-bashing article. Seriously. I'm going hold back on the name-calling. I'm going be methodical about this. I'm going to be as nice as can be. Let's get started.
My biggest pet peeve with Windows is the interface. Part of that you may feel absolutely free to chalk up to my computer experience, which I will admit is not ordinary at all. I started using UNIX at an early age and grew up in a house with Macintosh computers, beginning with Mac OS 5.5 back in the early days. Yes that's right. Anyways I look back on my experience and I see that UNIX has remained rock steady my entire life. Commands I used on the command line as a nine-year-old still work and still do exactly the same thing now. UNIX and pretty much any POSIX-compliant environment remain absolutely true to the adage that if something ain't broke you don't need to fix it. Mac OS has a similar history but it's been more of a slow progression with intermittent leaps forward. Today's OS X is a completely different animal than even OS 9 was. There are intermittent pieces of continuity among all of the versions but the interfaces are only similar in their operation the same way Windows and Mac OS X are. That being said, let's have a look at Windows XP vs. Windows Vista vs. Windows 2000.
Between versions of Windows absolutely everything moves, and to this day I'm not entirely sure why. This would be like car manufacturers deciding every year to move all the controls around, just to make sure that no driver ever gets used to them for long. Not just this but the names of things change, and where they are. Mapping a network drive in Windows XP is an entirely different sequence of mouse clicks than doing the same exact operation in Windows Vista. So, if you were accustomed to Windows XP for these past few years and you switch to Vista, you have to re-find everything. This may actually be less annoying for people who use Windows as their primary desktop OS, but for those of us who rarely have a Windows interface in front of them it is maddening. As an IT worker bee, I sometimes need to lay hands upon a Windows box and it is really embarrassing to have to poke through menus for ages to find where to ask it to re-acquire a network address through DHCP.
The story's the same for where the network connections are, where the filesystem can be accessed, where you go to change system settings, etc. Who is it at Microsoft who's so against consistency between versions? Seriously it's absolutely the most annoying thing ever. I've got a lot of material to go through here though so let's move it right along.
slowing me down
I think there's one thing about Windows that slows me down more than anything else, and it's kind of cruel to bring it up I guess because it seems that Microsoft really likes this kind of a thing. I'll demonstrate with an example: networking.
Let's say I'm on my mac and I want to connect to a new wireless network. I can do this one of several ways. I have the little airport icon in the menubar of my mac, and I can just click on that, bringing up a menu that has all the available wireless networks in it. I click on one of those, enter the authentication info for it (WPA/WPA-PSK/WEP/whatever) which is usually automatically figured out by the operating system, then I'm on. It just works. This is truly beautiful, because I frequently dart back and forth from one network to another, like my home and my work wireless networks, so having it just automagically do whatever it needs to do to connect to a new network rocks. If I have to do something like VPN or something really exotic like that, I tell the operating system what I want, because obviously I know what I'm doing. If I didn't, I'd use the network setup assistant (Mac equivalent to a "wizard" for you Windows people).
Now. That's all well and good, but what happens in Windows? Well, whereas Mac OS X will allow me to just get my shit done and get out, because I know what settings I want, Windows does not. I must travel through the menus and consult a Wizard. I'm not going to get into pedantic details, but Windows's interface for system settings and pretty much everything is based on presenting the user with a list of things that they may want to do. This is just stupid, because there is no other interface for making changes to system settings until you first get past this point. In Windows 2000 Pro, it was pretty easy to get to the TCP/IP settings. You right-clicked on Network Places on the desktop, choose "Properties", then you're presented with a listing representing the network stack. A little cumbersome to users who aren't exactly great at these kinds of things but at least you could get to those precious settings within a scant three to five (depending on what you were doing) mouse clicks. Now, when you try to do that, Windows will bring up a wizard. The wizard will ask you what kind of network you're setting up. Are you setting up a home network? An office network? Are you connecting to a DSL modem? Are you doing this? Are you doing that? SHUT THE FUCK UP. Seriously. What does it even mean that you're connecting to an office network rather than a home office network? What if I'm connecting to a token ring network, at home, that has a DSL modem connected to a router? What then, O Great Wizard? Okay. So that was kind of cheating because it's been a solid decade since I last set up or even saw a token ring network, but still!
Quite frankly, for a power user who actually knows what he's doing with networking and pretty much anything else that's not specific to one operating system, it is incredibly frustrating to work this way. It all boils down to this: real operating systems that are designed with respect for the user's time in mind let you tell the operating system what to do, whereas Windows will ask you questions to try to divine from these what you want to do. Weak sauce, people. Just let me do what I need to do and let the ordinary users learn how to use their computers rather than confusing them with these prompts.
there are how many different versions?
This has less to do with the actual operation of Windows and more to do with how it's marketed. There are so many different versions of Windows I can't even keep track of them any more. There's Home Basic, Home Premium, Business, Enterprise, and Ultimate, as well as a handful of special-purpose versions for media center or tablet PC or whatever (wiki wiki). THAT'S TOO GODDAMN MANY. Seriously. Too many. What's the difference between them all? Nobody knows! Besides the usual reasons that too many choices can be a bad thing, there's the fact that it's nearly impossible to market multiple products all at once rather than focusing on just one. Will everybody spring for the Ultimate version? Doubtful. I think a lot of people ended up with Home Basic and went home disappointed with it, because it's definitely missing some pieces.
Here's a novel idea. Why not make just one version of the OS? For servers there's already the hopelessly dated Windows Server 2003 (seriously, just go with linux for your server environments), and for home and business users why should they be different? What do business users require that home users do not? Taking it another way, why should home users be left without features that business users get? Taking it yet another way, why deliberately create multiple versions of an OS by removing features? It just seems counterproductive.
On the other side of the battle, Mac OS X comes in only two flavours: regular and server. I would wager that the vast majority of Mac users don't even know that OS X Server exists, and honestly they don't have to. They have the regular version that came on their computer and that really does have all the features they would need. Users who need the extra features of the server edition (domain administration, a much more intricate Apache setup, all kinds of other servers like mail and iChat and such) can buy it. Oh and how about this: the regular version of OS X ships with SSH, FTP, SFTP, and Apache servers. What does Vista (even Ultimate) ship with? Only Jack and Shit servers.
You didn't think this was just a rant where I wouldn't offer any solutions, did you? For shame!
First, ditch the multiple versions. I'm serious this time. Get rid of them all and just have "Vista" and "Vista Server", or continue to keep the regular and server branches branded differently. The point is to have one version of the operating system, and this is the right one for business users, for home users, for owners of tablet PCs, for owners of laptops, for anyone who is interested. Even if the price point was set a little high I think this would be a win for Microsoft if they could just pull their heads out of their asses and make it happen. Given their history I just don't think this will happen, but it'd be really nice!
The other thing is immediate bug fixes for all users. If you're a regular user you have to wait 'til Patch Tuesday for your fixes, but what if you've got an open vulnerability in the OS that needs to be patched right now to avoid an exploit? Tough cookies? Unacceptable. Also, while they're at it, they really need to not take for damn ever to patch zero-day exploits. "Zero-day" means "people can use this to pwn your box right now", so hurry it on up.
While we're on the subject, Microsoft needs to ditch its fetish for backwards compatibility in the form of ancient, unsandboxed code. Remember the wmf exploit in Internet Explorer a while back? That was because, in the days before the internet, it made sense to someone at Microsoft to be able to include executable code in image files. WHY DID THIS CODE MAKE IT INTO XP??? It really, really, really shouldn't have. Ever. There is simply no excuse for that.
Also, it's time to scuttle Vista. It was released way too hastily and it was obviously hampered by way too much bureaucracy in the corporation. The whole thing reeks of design-by-committee, and it's time for a do-over. While you're at it completely de-couple the internet browser from the operating system. It doesn't make a goddamn bit of sense to have IE not only bundled with the OS but also fused into the OS itself. That is just a really stupid idea and it's a giant hole that malware and spyware can just jump straight through. Get rid of it and migrate your user base to something that more accurately renders the web, or spin it off as a separate project so that it can get the attention it needs.
Last but not least, and I'm sure you all saw it coming: embrace open source. There are thousands of open source developers like myself that form a supportive community that is reliable and strives for rock-solid code. Why do we do this? Because we work with this software every day and it's in our best interest that it be the best it can possibly be. When you start to release software with the mentality that your payment is better-performing software, magical things happen and you get such great things as Apache, MySQL, Ruby, Rails, SQLite, and of course the Linux kernel. You don't have to open up the entire Windows kernel (although that doubtlessly would improve it over time; I'm sure a LOT of developers would jump in and make improvements) but a lot of the problems with Windows could be solved by substituting open source libraries for Microsoft ones. It'd mean a serious overhaul but I've already said that a serious overhaul is necessary, and I think a lot of IT professionals agree with me.
Will Microsoft ever follow my advice? Unlikely, as I've never really been a customer of theirs (I have one legal license of Windows XP and that's hopefully going to be the last Windows I need to buy). A man can hope, though. Sometimes that's all we've got.
Until next time, space cadets.