throAU said:
Dude, not everybody wants to mess with source code.
Some people just want tools to get other things done. Computers are a means to an end for them, and time not spent screwing around with the command line or a compiler is time they can spend being more productive at what they actually do.
The Ports system "screws around" with a compiler behind the scenes, not you. The choice whether or not you want to mess with the source code vs. just installing a specific port and being done with it is entirely up to you.
My experience with FreeBSD vs. the different Linux distributions is that FreeBSD has a much clearer and more logical system structure. For example, I think it is completely unnatural to throw the operating system specific and third party applications all together in the same file system namespace, where with FreeBSD the operating system is stored in
/ and third party applications get placed in
/usr/local.
I also had more problems with Debian or Ubuntu release upgrades than with
freebsd-update(8) or simply rebuilding world, and there are much less 'gotchas' because the FreeBSD base system is a centrally tested self-contained set of software... Things like this upgrade guide:
http://www.debian.org/releases/stable/amd64/release-notes/ch-upgrading.en.html makes me really hesitant to just upgrade a box quickly, while with
freebsd-update(8) the process is much simpler because it does not touch any of your third party software at all, only the things that the FreeBSD team is distributing.
The way things are being developed in FreeBSD land also seems more professional to me, I really like the "release when it's ready, not when it's time" motto... backed up by the very small number of errata problems after a release finally happens. I actually feel much better about putting a new FreeBSD -RELEASE in production the day that it comes out compared to release upgrading to a new Ubuntu the day it comes out.
I also don't like the speed with new features are being added to the Linux kernel with one line of development, leaving the actual production QA process in hands of the distributions (the previous stable (even) and testing (odd) Linux kernel branches were much better in that respect imo).
Btw, the lack a lot of desktop oriented things like drive automounting are not entirely FreeBSD's fault, because desktop environment developers tend to use a lot of Linuxisms in their code or depend on Linux-only services by default (DeviceKit anyone?). This will get ported over by FreeBSD porters eventually, but that takes time and sometimes needs new operating system features to work correctly.