Why my company runs Linux on critical services (CRM, web, e-mail, spam filters, and so on...) and not FreeBSD:
- People familiar with FreeBSD are much harder to come by, as mentioned above. It feels like for every 50 people familiar with Linux there's one guy with FreeBSD experience.
- Hosting is limited. Harder to find tech support staff if you have problems with your BSD box. On clouds, custom kernels getting in the way. E.g. I've had a FreeBSD box on a cloud hosting I couldn't upgrade because it ran a custom kernel they provided to make it compatible with their hardware. Snapshots weren't working properly. Support was like, "oh, that's because you're running a FreeBSD. It works for everyone else on Linux." Not BSD's fault, of course.
- No reasonable server defaults. I remember we've had to tweak sysctls endlessly to get boxes working properly in some fairly standard environments, e.g. caching and optimizing proxy. Our admins were something along "geez, this stuff just works on Linux! We should wipe it and install Linux." Eventually, as a CTO, I tried to steer the company towards BSD but didn't force it, and let our admins decide what they want. Eventually most of the boxes were switched to Linux.
On the desktop:
- Many key apps not running or requiring lots of time to find a workaround. Someone above mentioned Dropbox works for them. Well, great example. I go to Dropbox's web site, there's Ubuntu and Fedora binaries to download, and the source. There's no FreeBSD. End of story. Nobody is going to waste their working hours trying to fiddle with getting stuff to run. No TeamViewer. ML software is behind. No Tensorflow. No CUDA. So much stuff is Linux-centric these days. I still run Skype in a Chrome browser. (And yes, I can't replace Skype with something else.)
- The Wi-Fi ecosystem is ancient. 802.11ac doesn't work. Is there a nice GUI app to switch networks? (I use WiFi Networks Manager. Damn!)
- Poor reasonable desktop defaults - there was a thread not so long time ago about this. FreeBSD is not geared for any particular use out of the box. You have to make some effort to get it running well. This is great, but doesn't contribute to its popularity. This is not appealing to many people who need to get their stuff done. I am running FreeBSD on my main laptop, but only thanks to that I've had a MacBook and had a year or so playing with it and tweaking it endlessly (with multiple reinstalls) on a second laptop until I said - yes, this is now my primary OS. Most people probably don't have that luxury.
- Occasional stuff breakage in the repos. I remember something broke X in my case on FreeBSD 9 (or was it 10?) and it wasn't repaired for weeks. Right now I have Scribus segfaulting, no fix. There are many more hands working on Linux, so if something breaks chances it will get fixed sooner are higher.
Please take all this as me simply whining. My lazy ass should learn how to port and help other people, I know. FreeBSD and OpenBSD are the most sane environments I've encountered in computing. I love them and thank all the people working on them. I understand there are people shortages, it's a hobby for most contributors, and nothing is perfect.