While I do think there are a lot of reasons to why one should not write in assembly, time-critical base routines can often benefit a lot from being written in assembly (take GMP's mpn-module for instance). However, this puts some constraint on how the code should be formatted (in GMP's case, this means that everything the mpz-module does is derived from the mpn-module), which cannot be said for all applications.
I've been interested to try out (Net|Open|Free)BSD for a while. I mostly code and compile C code. What should one expect when going from Linux to either of these BSD systems?
If you want something with GUI out of the box, consider GhostBSD. IMHO OpenBSD also has an advantage when being used as a laptop or desktop because its developers seem more inclined to daily drive it than free/net.
It's true that drivers might require a bit of fiddling, but if your hardware has been around for a while you'll probably manage.
I'm quite fond of OpenBSD. It's such a nice, wholesome Unix experience. The man-files are great, typically you can get by on those if you mess up and lose Internet connection. To me it has a feeling of being rock solid, like it'll never break. Common programs differ a bit, pkg_add rather than apt/RPM/pacman/&c., you'll probably use pf rather than ufw or iptables, vmm/vmd rather than Docker/jails, flags on some everyday terminal tooling work differently.
Some software just isn't available due to it being considered insecure by the OpenBSD community or its 'dictator for life'. As a C developer you might run into such constraints.
Poor driver support, poor performance, lots of manual editing of config files to accomplish routine tasks, but BSD is "more cohesive" according to most of its proponents.
Matches exactly my annual experience of trying OpenBSD. It is not misinformation.
The FreeBSD handbook, for example, directs the user to manually edit wpa_supplicant.conf. If you want to switch from a static IP to a DHCP lease you need to run some commands as root and restart the daemon manually.
Try one in a VM first. Get used to the different pkg management in whichever BSD you use vs. the linux distro you're used to using. NetBSD uses pkgsrc, which is pretty straightforward to use.
No systemD.
If you're using it as a desktop, it will take a little more time to config things to fit what you need. More command line editing of config files, than say Linux Mint or similar linux distros.
FreeBSD has the biggest community so it's easier to get help online.
That being said, NetBSD is worth checking out, especially for your use case.
If you decide to try it out on hardware, check out https://bsd-hardware.info/ and see if your machine is supported.
Also check out UnitedBSD.com It's a forum and there are many NetBSD users there.
Great to see some opposition on this issue. As a swede, I have been baffled by the silence from Swedish media about this. Mullvad VPN has been bringing up this issue a lot, most notably in the swedish newspaper SvD [1], but also by advertisements in the Stockholm subway, but that's about it. Understandably the ongoing NATO process takes up a lot of headlines, but most of the other headlines are just about murders, unfortunately.
I presume you compile C/C++ code. How does your file structure look like? Do you have a lot of files with little to no content? You can speed things up by merging files. I have managed to reduce the building speed by around 95% by doing such simple things.
Reducing the amount of unnecessary headers is also beneficial, but in comparison to merging files it barely makes a difference.
I think many of the ideas originates from the problem that many users of Latex does not know how to combine proper Latex formatting with stylistic code. The output should be nicely formatted, and given the code it should be very easy to see what it will produce.
As such, I do not like the second example with the code format int_5^20 4 x dx. The absence of backslash \ makes me think that "int" is a variable, "_5^20" is too tight for me, and dx also looks like a variable. Personally, I prefer typing \int_{5}^{20} 4 x \dd{x}, where \dd is your favorite differential typesetting (for me it is \mathop{}\!\mathrm{d}).
But I suppose it is only meant to be a substitute for MathJax and similar markup programs, and not actually Latex.
EDIT: With the 8-wide dispatch system, I suppose it can actually target Apple's silicon when it comes to asymptotics, no?