Short version: If you'd like more control over your software (compiled and binaries), try FreeBSD. It's got the latest apps, and is a lot more predictable than Linux.

Damn, that's a tall order, don't you think? Well, I'm not a kernel hacker, but that's my opinion after trying a bunch of Linux distributions* and FreeBSD.

Package availability

There are two falsehoods that seem to come up when discussing FreeBSD: There are few available programs, and those few are old. Wrong on both counts - FreeBSD 6.2 has KDE 3.5.6, GNOME 2.18, Firefox 1.5, 2.0, and 3.0a, OpenOffice.org 2.2, GAIM 1.5 and 2.0b6, Skype, Thunderbird, KeePassX, and over 16,000 others. I've found all my favorites, plus a few surprises like Quake 3.

Package management

This is where FreeBSD really leaves Linux behind. Of all the *nix documentation I've read, the FreeBSD handbook's section on installing software must be one of the most lucid and immediately useful. It concisely explains how to install from source and binaries, check for security problems, search for software, update everything, and update the software collection with a handful commands.

Directory structure

Personally, I can't stand the way *nix file systems are organized. Where do I find the Firefox icon, after KDE "loses" it? Where should the different pieces of Apache go? I've used a bunch of tutorials for how to set up Apache on Linux, and they never seem to agree. Somebody should ax FHS and get us some directory names people can understand.

Now, FreeBSD uses the same old mess. But, the structure is stable, documented, and (seemingly) followed by the installation programs. So there's a single place to get the authoritative answer, and a single place where the file should go. If you're wondering where a single file went, you can use
pkg_info -L package
to find out.

Hardware compatibility

FreeBSD works fine with all the hardware on my Dell Latitude D610 laptop, which was a surprise after hearing several persons bashing FreeBSD for its hardware support. You might wanna have a look at the hardware notes for the version you're installing, just to make sure (e.g., 6.2-RELEASE on i386).

Help availability

Another great thing about FreeBSD is how rare major redesigns are. At least, I guess that's the reason why I've been able to use 8-10 year old tutorials and howtos successfully with the newest FreeBSD release. Try that with Mandriva (then Mandrake), Ubuntu (didn't exist), Fedora Core (ditto), or any other Linux distro, except perhaps Debian.

* Ubuntu, Mandrake, Mandriva, SuSE (before Novell), SLED, SLC, and Fedora Core.