It has been my primary for ~16 years, and I’ve been running -current (tip of development branch) for nearly 10 years. Base system (which includes tmux[0]), X11 (which is optional, but maintained by NetBSD), dwm[1], Tcl[2] cURL[3], fossil[4] and Firefox and I’m usually on my way...
Perceived balance of Unix tradition, progressiveness and sane engineeering/community.
The base build system (build.sh)[0] which is essentially Makefiles is absolutely beautiful to work with, ditto for pkgsrc[1]. They’re “progressive” enough to include dtrace[2], work on neat security[3], and kernel models[4][5], but have eschewed modern Linux-isms like ip(1), systemd. Of BSD v Linux, my heart is definitely with the more traditional BSD. Of BSDs, I feel Net is capable enough, simpler than Free, but more feature full than Open. The other interesting BSD would be DragonFly - really interesting, but I’m happy enough w Net that I’m not going to swap it out, and don’t need more (different) systems in my life right now.
Additionally, it’s not windows, not MacOS, and not Linux. It’s difficult to escape those in day-to-day computing, so my daily driver (thinkpad laptop) is slightly different on purpose, the idea being that, to a degree, everything I do is necessarily very “conscious”. What I mean is that nothing works automatically because I’m part of a vast majority. Where I run into friction, I try to take note and keep this in mind with the rest of my relationship with the world, whether it’s developing software, or making assumptions about the way people use computers.
I often cite Neil Young to describe my “ditch”[0] computing.
I also run NetBSD (mostly on servers, but occasionally PCs as well). I can relate to this. Difference is good; it helps challenge assumptions. Running different operating systems is good for the same reason as testing websites on different browsers is, or having things tested by disabled people for accessibility, or visiting foreign countries and learning about different cultures.
One of my NetBSD machines is an UltraSPARC box. I've heard both NetBSD and OpenBSD devs say it's one of their favourite platforms, because being a big-endian 64 bit machine, it helps discover many false assumptions made in low level code.
This is another good point that I think can’t be overstated (running on big-endian or otherwise non-x86 arch). Support the unconventional and it supports you back. It’s a fun, positive feedback loop.
I love this approach and analogy. You're absolutely right: it's incredibly hard/impossible to _not_ make assumptions when you're part of the herd.
I'd like to think there can be enormous payoffs to this kind of careful thinking, but I suspect it pays out sporadically and sometimes not at all. Such is the fate of any outlier or pioneer.
Either way, traveling "in the ditch" means you get a lot of weird looks from people cruising by on the latest bandwagon. :-)
Can you go a bit more in detail why Net vs Free? I would LOVE to replace Linux (Fedora) with one of the BSD's. It's philosophy and everything basically suits me far more than anything else, but I need CUDA, I need Nvidia drivers, I like to play with ML, I need few more things like that which makes it a no go as far as I'm aware.
You probably have a herculean challenge ahead with the Nvidia / CUDA stuff. A couple years ago I got an R stack up and going on OpenBSD, and that took some deep dives to get all my packages working. It was rewarding and worked well, but it wasn’t something I’d do under deadline.
NVidia on the other hand seems like a far harder problem than needing to patch some C code here and there. NVidia make the drivers that they make. AMD has been more open source friendly these days, which is good if you want 3D graphics, but doesn’t solve the CUDA issue.
Forgive me if you've already heard this a lot, but Slackware is often described as being a very "BSD-like" Linux and might be another way to get some of the philosophy you're seeking.
Indeed, Slackware, Void, or Arch. Or since the parent poster seems to be somewhat into scientific computing, NixOS could also be interesting. NixOS is like having virtualenvs for everything.
I've got a lot of netbsd running machines. The one I use now is a Haswell CPU with nvidia graphics, and everything works well on it (even nvidia graphics!).
Not all machines are so good. I have a too new Dell XPS. It doesn't have graphical acceleration. But it was very cool to have the touchscreen working already (although with rough edges).
It's very easy to build and modify everything, it doesn't hide errors under a rug (syslog messages are legible, coredumps not disabled by default and so on), so I feel like I can tackle any problem I encounter on it.
Also, if you're the type that carries their long .xinitrc/.Xresources/.profile around, it's more comfortable than the friendly linuxes which require you to re-do everything but in dconf.
[0] https://en.m.wikipedia.org/wiki/Tmux
[1] https://en.wikipedia.org/wiki/Dwm
[2] https://en.wikipedia.org/wiki/Tcl
[3] https://en.wikipedia.org/wiki/CURL
[4] https://en.wikipedia.org/wiki/Fossil_(software)