Coming from apt-get or yum makes brew, port, and fink look like a joke.
When I most recently used Linux on the desktop, in 2010, I finally grew frustrated enough with Ubuntu's screen management setup (there was no way to get it to respect my wishes for it to turn off the screen completely, until I finally killed the power manager entirely) that I switched to Arch. That was superficially better (stuff mostly worked as advertised), but the rolling release means either keeping up to date and dealing with constant breakage ("Oh, look, the new kernel has a broken driver for my audio card", or "Oh, another update, another few hours troubleshooting Wine. Yay"), or waiting a while and having the update become riskier and riskier.
Linux will be ready for the desktop when updating doesn't mean near certainty that something breaks. I realize that things used to be more broken, but when I used Linux as my primary desktop back in 1998-2003, my expectations were lower. Being a Mac user for 5-6 years seriously reduced my patience with troubleshooting random problems just to get all the functionality that the system I'm using claims to provide.
It's not clear to me that there's any way to get the level of polish needed for a major desktop OS without at least an army of (very critical) testers and developers, and maybe without forking most of the packages in the distro. Nevertheless, if OS X continues down the apparent path it's on, I'll be switching back again in a few years.
Arch is definitely the best workstation for a developer. The convenience of binary packages, the flexibility of PKGBUILDs (analogous to Gentoo's ebuilds, but much more reasonable), vanilla packages and quick releases make it a dream workstation for a developer, despite a rare wonkiness here or there. It works much better than Ubuntu et al for a development box.
Package management is definitely a disaster on OS X, though. Regardless of whether you use Homebrew, Fink, or MacPorts, packages tend to break often. Some of this may be unavoidable: there are enough differences between Linux and OS X that compiling programs developed for Linux for OS X is bound to cause problems.
MacPorts and Fink try to create their own little microcosm of a Linux system complete with all libraries and utilities. They generally seem to fail at this because major packages are broken all the time and conflict in a million little ways with the system ones.
That's more like a philosophical (and failure prone) difference that both Fink and MacPorts intentionally abandoned through experience, not really a "miles ahead" difference.
Not reproducing Apple's OS dependencies is a nice idea, but let's say I want to use python2.7 with openssl 1.0. Apple only shipped openssl 0.9.8 in Lion. If I mix modules that use OpenSSL 1.0 and OpenSSL 0.9.8, weird stuff happens. Now what?
(The answer is: now you have to start reproducing OS dependencies. This only gets worse as the OS dependencies grow more stale).
They generally seem to fail at this because major packages are broken all the time and conflict in a million little ways with the system ones.
I haven't observed this.
> Darwin ports? Fink?
I've used both for the past near-decade (fink for 4 years, now macports for the past 3), along with a Debian desktop, and they're much worse imo. They do the job sort of, but it's a mess. Stuff just outright breaks much more often than even in Debian 'unstable'; you'll install a package and it'll fail to compile, fail to link, a script will die, etc. Dependencies are a mess, especially as regards versions of interpreted languages (python/perl/etc.), and anything that interacts with X11 tends to be flaky. And the use of binary packages is still very spotty, so a simple install, if it pulls in big library dependencies, might spawn an hour or two of compilation, rather than a few minutes of installation.
It gets the job done somewhat, but I'm not really happy with the situation overall; for many things I prefer to use a Debian VirtualBox install, despite that also having some awkwardness.