I hate OSX and yet I use OSX because alternatives (by which I mean Linux, obviously) seem even worse. Here's a very short list of pros and cons as I see them.
Most important things:
- OSX pro: TextMate. I really cannot use any other editor without feeling physically ill, they just do everything wrong. There are some attempts at getting semi-decent editors for Linux like redcar, but I have no idea how good they are.
- OSX con: MacPorts - source based distribution systems are just failful, and MacPorts is far more failful than most. It is completely routine that upgrade will leave you with broken packages - neither upgradable nor downgradable.
- Linux pro: apt-get. I wouldn't even seriously consider any Linux without apt-get for anything.
- Linux pro: same software on desktop and servers. It saves me a lot of complications, 32bit vs 64bit is annoying enough without OSX vs Linux.
- Linux pro: better development tools. strace, ltrace, and LD_PRELOAD for example. It is system made for developers by developers and it shows.
- Linux pro: virtual desktops. Spaces on OSX doesn't work and it will never work as long as OSX stays Application-centric instead of document-centric like Windows and Linux GUIs.
- Linux pro: better internationalization. Especially if I want to type in multiple languages. There's proper Polish Dvorak keyboard for example. (I remember I once haxored such for Windows 95 by editing binary drivers... these were good times).
- Linux pro: Amarok. It's vastly more awesome than any OSX music playing program, especially shit like iTunes. Even old Winamp is far better than iTunes.
- Linux pro: shell. Ubuntu bash has smart tab-completion, command not found suggests what to install, and everything else in shell got as much attention to detail as GUI got for OSX.
- Linux con: Support for laptop hardware. Last time I tried it, even something as simple as getting external monitor in and out was a massive pain.
- Linux con: GUI usability: Now that Windows 7 finally catched up, KDE is in general the second least polished GUI, the absolute worst being GNOME of course. It's not just looks, it's all the minor things that make it work seamlessly.
- Linux con: GUI programming. C++ based Qt, and fake-OO-C based Gtk are both massive pain in the ass compared to even less than amazing Cocoa. There are Ruby etc. bindings for all, but it's just like putting lipstick on a pig. Everyone develops GUI for web these days - that even dealing with MSIE6 and all ridiculous web limitations is still far less pain than desktop GUI programming shows how bad it is.
- OSX pro: It's prettier. Font rendering is a particularly good example
- OSX pro: Omnifocus. Every other GTD software I tried was so bad I simply stayed with paper, but Omnifocus suckiness is fairly moderate.
- OSX pro: Development for mobiles. Right now the only categories of mobiles are iPhones and turdbricks - one needs OSX, the other nobody wants to develop for. It might change in 2-5 years, but right now I need OSX if I wanted to develop for OSX.
- OSX con: Support for laptop hardware. It's ridiculously bad, even though it's Apple's own hardware. The only way to turn off laptop monitor is by sacrificing a chicken (put computer to sleep; wake it up without fully opening the laptop screen; then maybe it will work, maybe not) - and routine software upgrade broke the "turn off trackpad when mouse is in" option.
I see no chance of OSX ever catching up with Linux before I get old.
Linux would need at least a decent editor - and if redcar won't work, I'm out of hope - Emacs and vim are stuck in 80s and haven't improved the slightest since I started using Linux. All KDE/GNOME-based editors are made without any clue.
Laptop hardware support gets better each year, while Mac seems be to getting worse somehow, so that problem doesn't bother me that much. And I can live with ugly fonts and less GUI polish.
I might miss Omnifocus a bit, but that's definitely something I can live without, especially since Omnifocus is OK but not that awesome, and fairly moderate amount of GUI programming should make it possible to make something more or less as good, if only GUI programming wasn't such pain.
So I'm quite tempted to switch to Linux. Am I missing some big pro or con of either system?