Pet Peeves about Windows
I'm a developer so I'm going to go about this from a developer standpoint and not bother covering the "viruses, right click, and games" arguments you people so like to latch on to.
1. DLLs
FUCK DLLS seriously. It's an outdated piece of shit way to reuse executable code. If you have a different or wrong version of the DLL in question, your program will still run it'll just give random idiotic errors, crash, and burn. So... What DLLs does my program need to run? I'll just stick them in the same folder as the exe and all is well. Using SDL... and openAL... and openGL... and that's about it. OH WAIT NO visual studio links with it's standard c/c++ library too, which unfortunately isn't a standard header on windows and has a different version for every version of visual studio and 40 different versions for each type of processor and junk and it's stupid. I think I solved it after a while, but DLLs are hell to organize, especially when you have multiple versions of the same dll on your computer (and programs need a specific one to run, not any one)
OSX has a much more graceful option, "frameworks". It's a package format where it stores data about the current and past versions of a specific dynamic library, much more organized than microsoft's crappy DLL system. Plus, .app packages on OSX are way nicer than windows .exes. I can package all my resources and frameworks and junk into one nice .app package. It's a glorified folder, but when you open it it runs the program inside instead. No need to distribute the game as an exe, a folder of resources, and a list of DLLs to install, just zip the app and the user never knows that it is actually a package.
2. Xcode / Visual Studio
Visual studio has a better debugger. Too bad the good version costs like a crapload of money.
I use Xcode on OSX. It's a cleaner, nicer coding environment and it's FREE.
Visual studio takes FOREVER when you try to open a text file with it. That's expected for a project file and junk, since it's a massive bloaty program, but it's a pain to double click a small .cpp file and have it spend 2 minutes starting up.
Xcode takes some time to open up a project file too, but here's the kicker: when I just click a raw cpp or h file to open, it starts up near-instantly (and doesn't load any of the project management IDE junk, basically just acts as a lightweight text editor). That's huge, and a really awesome feature to have when i'm working on small junk that doesn't need an IDE for compiling.
3. Screenshot tool
print screen is way outdated and retarded. On OSX, I hit cmd-shift-3 to screenshot the whole screen and save it to the desktop as a png (no ugly copy-paste junk). BETTER YET, I hit cmd-shift 4 and get to select what to capture by dragging a box. Or, instead of dragging a box, I hit space, and it'll let me capture 1 window, no background objects, and is nice enough to put the alpha transparency drop shadow on the window too (see: http://www.closuregame.com/Log/screensho ts/2009/08_AUG/Picture%2019.png )
(this is built in OSX stuff)
4. Spotlight. I type what I want to search for on my hardrive, it takes about a second to find EVERYTHING (searches in files, in filenames, etc). On windows, I hit the search button and the dog with the magnifying glass pops up and talks to me. I tell him what I want to search for, then walk away and go cook dinner. I come back and he's found 2 things, neither of which are the one I want.
5. Everything else. There's a ton of hidden OS usability things on the computer. I don't even realize how much I use these features till I move to windows, and suddenly the tiny features I use all the time are gone.
6. Windows API, Cocoa API
BOTH are retarded in my opinion
Cocoa: void NSApplicationPoolShittiness(NSString*&&*
** nuts, NSShitballs n)
Windows API: HANDLE WinGetHandleToKeyboardKeyCapitalA(LPVOID HANDLE, WCHAR_T, LONG_INTEGER, NULL, NULL, NULL, NULL, 0, NULL, NULL, 0);