I was actually a Fink fan until recently (if only because it's based on Debian utilities). But since Fink has been behaving very strangely for me lately (for example, the Fink mirrors weren't all reachable because their nameserver apparently was misconfigured or because their SVN port simply didn't work, or because support for 10.2 is a bit strange), I decided to try DarwinPorts. And I have to say, I really like the system.
However, what I don't like so much is the fact that not every program works out-of-the-box. mtr, for example, complains about raw packets that it can't generate because it's not suid-root. True - it wasn't. I don't simply install ports as root - I use a normal user for the build. That all works fine because the user has the necessary permissions. But an mtr that is suid-gb can't generate raw packets anymore, even when used by root...
However, the normal user will probably rarely stumble over this, and normal applications should work pretty much right away.
What really puzzled me, however, was my attempt to install Subversion. Okay, I can understand that Subversion needs a web server - after all, it's essential for the server (although personally I would prefer a separation into a Subversion server and a Subversion client). But that Apache2 should be fetched just so a local installation of it runs on the machine, just because you might need the Subversion client - I think that's rather awkward. Especially since there are Port variants for exactly that purpose - but Subversion only offers a mod_dav_svn and a Python variant. In the mod_dav_svn variant, Apache is a prerequisite - but I actually just wanted normal Subversion. Strange. Okay, well, I admit - if you know what APR is, it also becomes clear where Apache2 comes in. Here's the original article.