FreeBSD, because it's solid, has thousands of ports, and
well, is BSD... And I access it via my MacBook :-)
Free is nice as a desktop environment, but over the last several years
it has accreted a lot of bloat. Ever since clang arrived I've become
much less enamoured with it, despite being an active user since the 1.x
days. As a server platform, anything I cannot remotely install over the
network using PXE, tftp, and http via the IPMI console is a non-starter.
That's the show stopper that's keeping it out of our data centres right
Has FreeBSD lost the ability to do unattended PXE installs? Certainly
this capability was there in the old sysinstall installer, and I used it
extensively back in the FreeBSD-3 through FreeBSD-6 days.
My personal preference is still for FreeBSD, and it's what I use on my
personal desktops, laptops, and most servers.
Most of my professional experience has been with Redhat Linux. During the
dot-com era, I found Linux to be disappointing (relative to BSD), but it's
obviously caught up by this point, and I think it's a fine choice.
I tried hard to like Mac OSX. On paper, it seemed like the ideal thing: a
real unix kernel (well, sort of...) married to a "real" UI. But in
practice, I've found it hugely disappointing. My main complaint is that
the interfaces have been so unstable. "It's just unix; you configure it
by just editing files! Oh, except that we decided to switch all the apps
to reading this NetInfo database, we just left the flat files in /etc
for... reasons... but all shipped software ignores them. Wait, did I say
NetInfo? I meant OpenDirectory." It felt like important interfaces were
changing practically with every version, and not updating was, of course,
not an option.
And then there was the whole Darwin v. OpenDarwin debacle and the
basically fake approach to being open source.
It eventually became clear to me that Apple's intention was that users
should never look under the hood nor tinker with the system. And since
looking under the hood and tinkering are kind of _sine qua non_ for me for
an operating system, I stopped using it.