Rust: Nope, Not Yet

https://marc.info/?l=openbsd-misc&m=151233345723889&w=2

Yeah, About Those Compile Times

The compile times are terribly slow, even on a !potato system. Maybe C++ programmers can tolerate that, but not me. Perhaps if someone else paid for a gonzo compile rig, but that would be little different than me twiddling my thumbs waiting for Ansible to get through whatever it took so long to do.

For those who think "but you can multitask!" and work on several other things while the rust compiles or Ansible pythons, no, humans are in general not good at context switching like that, and burnout is a very real thing. I do recall a new hire during orientation once saying they were glad to be leaving the "software death marches" of their previous job.

xkcd://303

AFAI can tell, the effect of tech overall is to cut some jobs while making the remaining ones harder and more stressful, while increasing so-called context switching.

https://news.ycombinator.com/item?id=33410770

Anyways...

Lack of Portability

Portability is not very good; there are very high odds that a random rust compile will blat out on OpenBSD with some inscrutable error message. C, Common Lisp, and Perl already offer me inscrutable error messages without wasting a glorious amount of CPU to get there. Or, the openssl package for Rust insisted on only compiling with LibreSSL 2.something to 3.5, and thus failed to compile on OpenBSD 7.2 that ships with LibreSSL 3.6. I did not bother to wait for the fix to ship.

https://github.com/pyca/cryptography/issues/5771

https://lists.alpinelinux.org/~alpine/devel/%3C20181004162040.42aa3360%40ncopa-desktop.copa.dup.pw%3E#%3C9ad5661e-d7f1-e43d-063b-f663f6e6d061@Wilcox-Tech.com%3Eo

Porting Rust is hell, BTW. We've spent at least two months on it, and right now we have ... it's bad.

Fun times.

Security?

Security, well, maybe rust has something going for it there from all that tardy time the compiler takes doing whatever it is that the rust compiler does when it is doing its thing, but I would pick a C daemon with a good pledge and unveil policy (and review the code, which in the case of the vger gemini daemon is about 700 lines of C that compiles in 0.4 seconds) over a rust gemini daemon that lacks pledge and unveil support, takes four minutes to compile (hey, it actually did compile! wow!), and has some amount of code in various external packages to worry about for malicious actors and supply chain attacks. In theory pledge and unveil packages exist for rust. Maybe in the fullness of time someone will add that?

And A Small Shell Script That Used To Crash Alacrity

    printf "\033[32;32;32;32;32;32;32;32;32;32;32;32;32;32;32;32;32m"

Coding is hard, I guess.

But What Does This All Mean?

One takeaway from all this noise is that different folks have different experiences and thus different reactions to technology; for instance I recall some programmers swearing up and down that memcached was the best thing since the reinvention of unsliced bread, and others who went into full "reeee! kill it with fire!" mode whenever memcached was mentioned. Me, I don't really care one way or the other about it. Or, one group hated the squid proxy (it was being used somewhere where it did not make sense) but then loved it (when it was used somewhere it did make sense). Others have been happily using Apline Linux under vmd on OpenBSD, somehow; I've never managed to get more than a swift linux kernel splat right after the boot: prompt. I might not be trying very hard to get linux running or rust working, but if you are stepping on rakes the whole way, and do not have an urgent need for whatever it is, there's only so much of that that one can take.