In a word: time. Just for kicks I decided to spin up a new kvm virtual machine with FreeBSD 10.1 on it, to shake out how BSD might work out as a desktop. Like any old time BSD user, I went right to the ports tree and kicked off an install of KDE4. Oh the humanity!
For a long time ports was the only way to get software on a BSD systems. But over the years binary packages for most common software have become available. The main difference between installing from ports and installing from binary packages is that when you install from ports you’re actually compiling the software from scratch. This usually gives you very fine grained control over various optional features not available in its binary package counterpart. But there’s a cost to compiling: it can (and usually does) take a very long time. Binary packages, on the other hand, usually install in seconds or minutes (depending upon the dependencies that also need to be loaded), but you don’t have as much flexibility in enabling option features (if you can do it at all.
On my own systems, for example, I usually build the Apache web server and php from ports, but most everything else from binary packages.
In my little desktop project I kicked off the ports install of KDE4 last night around 6 PM and woke this morning to find it still chugging away. KDE is a really BIG application with lots of dependencies.
So I aborted the compile and installed the binary packages.
Sometimes you just have to know when to cut your losses and move on.