First of all, using GNU/Linux doesn’t mean you have to tolerate systemd or snap. I use GNU/Linux since… forever, and I never used a distribution with such bloatware - and never will. There are several systemd-free choices, but I would also consider distributions free of other crapware (at least for me, that’s exactly what it is) - such as elogind, and pulseaudio.
Now, about FreeBSD. I use it for a few years now (real installation to disk, both 32- and 64-bit versions). Fortran-wise, there are no issues to speak of (at least for gfortran.) In fact, while developing my libraries, all I have to do to make it work on FreeBSD is to untar and rebuild, with zero changes in the code, makefiles, FORD documentation, valgrind checking, etc.
Admittedly, I had to modify my makefiles so that they install stuff at the right place (for example, shared libraries go to /usr/local/lib instead of /usr/lib or usr/lib64.) But it’s not hard to make a generic makefile that will detect the operating system running, and pick the right place for libraries, *.mod files, etc. Those are trivial changes you do once and then forget about it. In fact, pretty much all my projects were developed half-GNU/Linux, half-FreeBSD, depending on the machine I was working at the moment. It’s not uncommon for me to have a part of the code written in FreeBSD, then switch to GNU/Linux the next day, add some code, then back to FreeBSD. With very little effort done years ago, the transition is literally seamless since then. I even forget what operating system I am using while programming.
If you want the latest gfortran always installed, you will have to do tweaks, because FreeBSD is a bit conservative on updating packages (comes with gfortran 12.2 by default right now.) But that’s nothing new, many GNU/Linux distributions do the same - except the “bleeding-edge” distributions, which I wouldn’t recommend anyway. Other Fortran compilers may not work.
Some pros worth mentioning:
- Excellent package manager. Easily the best one I’ve ever used. Debian’s “apt” is not bad at all, but FreeBSD’s “pkg” is better.
- The “native” file system, ZFS, is excellent (but you can use others too.)
- Great documentation out-of-the-box, and the forums are full of people willing to help (as long you follow the rules, which are more strict that the norm.)
- Dual booting is done the easiest and most lightweight way ever. You can easily forget about bloatware such as GRUB, if you want to.
- Can run on ancient hardware. I have a 15+ years old netbook, which was nothing to write home about even when it was new, and it runs the latest stable FreeBSD release (I use it for programming when I’m not at home and have limited space for a proper laptop.) The same machine can’t run most GNU/Linux distributions, and soon won’t be able to run any. That’s because glibc breaks compatibility with some old hardware (since glibc 2.36.) It is very unlikely something similar will ever happen in FreeBSD.
- Forget about systemd and elogind once and
forall (sic - or should I say “
concurrent” to be more up-to-date?) There ain’t such a thing in FreeBSD. Pulseaudio is installed only if you want to.
- Most software you would expect is there, one
doas pkg install away. It is a myth FreeBSD lacks important software. It doesn’t.
- “Linuxisms” are frowned upon and, I dare say, for good reason.
Not everything is la vie en rose though:
- Lack of drivers… if you have the latest, expensive GPU, you 'll probably have issues. And if you have a laptop, make sure your WiFi chipset is supported (this is the most common problem,) or get ready for a WiFi dongle.
- Bluetooth is… problematic, to say the least.
- BSD in general is treated as a second-class citizen. Several developers don’t even bother to mention it (but like I said that’s not true for “important” software.) That’s not a problem for me, but might be for others.
To sum up, I will completely migrate to FreeBSD (together with OpenBSD, which I also like) at some point. It’s that good. However I keep using some GNU/Linux distributions (together with BSDs) because… good luck convincing people to do the same.
I’d say, if you have a spare machine, or an external SSD, or even a decent USB, give it a try with a real installation. I have seen issues caused by virtual machines, which you won’t have in real installations.
The least issue you will have is Fortran programming.