As this is a bit of a controversial topic, let me first note that all operating systems (including OS X) suck. The how and the why can be debated elsewhere, but in conclusion it’s a matter of finding one who’s bits that suck don’t annoy you too much such that you can gain the benefits of the bits that don’t.
Right now, I’m a big Debian fan. It rocks. I’ve been using it for over a decade on desktops, servers, laptops and every other bit of not-locked-down hardware I use for any serious period of time. I contribute bug reports and patches back to the project; I’ve sold t-shirts for them at FOSDEM; and I’ve seriously considered going through the complex process that is becoming one of the formal Debian Developers. Before that I’ve used Red Hat, Slackware, SuSE, and had a shot at installing Gentoo. I’ve spent a fair amount of time in Windows as well, but purely in “paid project” situations during recent years, and I’ve also previously used OS X before (on a Mac Mini as a fixed-purpose system), but not seriously for about 7-8 years.
However, I’m starting to get annoyed about one aspect of Debian, and that’s resulting in my revisiting my using it as a desktop OS, and as a result I’ve spotted a few other things I’d like to get fixed along the way. So, the major thing that annoys me right now is updating. In order to have something usable, I’ve run a mixed stable/testing/unstable/experimental system for most of my Debian time (for those confused at how this can be done, go and read the Apt-pinning for beginners guide). This does however result in quite a lot of upgrade clashes and a fair amount of time spent in the package manager sorting things out, and when you stop doing that for some time, as I have more recently, your system gets fairly out of date and fixing it afterwards is painful and time-consuming.
For those of you wondering why I don’t just switch to Ubuntu, with it’s much more static versioning system (and general tendency to go “if you’re not running the latest version, we don’t care” in it’s bug reports), this would fix some problems, but not others. The package management issue is the big one, but there’s a bunch of other things. Most of which come down to the lack of commercial software for Linux. I’m not talking about all the big apps, I’m talking about the little stuff. Things like an RDP client that doesn’t suck in various ways. I’ve got many connections to manage, so I’m using Remmina, but it’s got several problems. Most of these get fixed once you know all it’s idiosyncrasies and are willing to drop to the command line occasionally, and I’m immensely glad there’s a free and mostly functional client, but not being able to find a better client, even if I’m willing to pay up is occasionally frustrating. There’s possibly better ones out there for Linux, but I’d run into the same problem again elsewhere. Open source is incredibly cool, and I plan to keep on contributing stuff back to various communities, but I like the freedom to also choose to just give someone some money and make a problem go away.
So, I’m considering switching to OS X. It’s irritating in other ways (not trusting Apple at all; disliking their design decisions; annoyed at more expensive hardware that’s not as good as equivalent priced PC hardware; etc, etc), but it should solve the problems above, at a notable cost. I wouldn’t describe it as a modern Unix system (Apple’s disregard for the “many little text files for config” design of a true Unix, and their crappy outdated copies of most of the standard system tools for starters), but it’s sufficiently close enough for most uses, and I think bludgeonable into a usable state for most of the rest of it. I’m currently testing this out on a borrowed Mac, and so far I don’t want to throw it out a window too much (RightZoom has been a particular saviour in this case). I’d much prefer it if there was a good Linux-type system but with a better variety of programs, but there isn’t so I may have to live with the annoying compromise that is OS X.
One of the interesting things about this switch is that it’s similar in many ways to some other choices I’ve made in recent years regarding technology use i.e. are made for the point of reducing the amount of work I need to do in certain areas, while reducing my choices in others. For example, my personal site’s web hosting: at one point in the past, I had a virtual host. With this, I could basically install *anything* I liked – I could have whatever services I wanted provisioned how I liked them, and that was cool. Downsides of that was that I then needed to maintain the damn thing, and when I wanted to get on with the rest of my life, I was still being poked with security updates and the like. I ended up instead dropping that service, and going to somewhere else which just give me web hosting (with a support for only a couple of server-side languages) and email hosting. It probably costs me a fairly similar amount, but someone else is dealing with all of the updates. When it goes down, it’s someone else’s problem. I’ve still got Pingdom poking it and making sure all goes well, but in general it gets corrected 10 minutes later without any further input from me. I’ve got less freedom, and it costs more, but in exchange I can get on with the rest of my life.
In a way, this also reflects the wider build v.s. buy option for software creation. If you can buy the right thing, it’s a much better option, but the real world tends to often consist only of existing items that aren’t quite the right thing, and so there’s always the choice of “how far away are they from ideal, and can we live with it?”. I think OS X is non-ideal for me, but it’s the best option I’ve got at the moment.