It does not have drivers support as good as Linux. Though I found that most peripherals work as intended. The desktop/windows managers are the same as in Linux world - Gnome, KDE, Xfce and Lxde. Most softwares which work on linux will work on FreeBSD too like Python, Ruby, Java. On top of that, FreeBSD has Linux binary compatibility. So, technically, you can run anything that runs on Linux. But, I found that google tools or gigantic packages like eclipse do not work on FreeBSD (or I don't know how to make them work). The best thing about FreeBSD is what is best about distros like Arch Linux. They have rolling release. So, you don't have to distupgrade every year and face some weird upgrade problems. Another thing is FreeBSD is much stable (like Debian), which has the same advantages and disadvantages. The cutting-edge stuff does not appear in FreeBSD ports/packages till it is thoroughly tested. Third advantage is FreeBSD is a whole Unix OS in contrast to Linux being a kernel. So, you don't have a lot of variety like in Linux world, which is again a good thing and a bad thing. Most sys admins have experience only in a debian or red-hat distro. So, it will be difficult to find somebody if you are using a distro like Gentoo or Arch or Slackware. In BSD world, there are only two server-based OSes - FreeBSD and OpenBSD, which are similar (at least not as different as debian and red-hat). Finally, FreeBSD is closer to its Unix-roots than Linux. I find that FreeBSD people believe that if you have good documentation, people will be comfortable with command line. Linux world is more about making it more newbie friendly with nice GUIs. (Hence the dominance of Ubuntu).