Mea culpa: I was judging Rust largely based on some aspects of its tooling - one aspect in particular - and I was wrong, wrong, wrong, blaming the toolset instead of the environment, mostly because I wasn't using enough of the environment to notice something about it.

I, uh, don't care for Scala, for a few different reasons - mostly the toxicity of its ecosystem, the people who use it, who seem to take pride in being cantankerous curmudgeons with a flair for pointless dissent and discouragement. But one of the other reasons is that developing in Scala is slow. SBT - the preferred compilation tool - is a huge speed bump in Scala development.

(I actually like the base Scala language. It's just everything else about Scala that makes it unpleasant.)

I saw Rust in some similar ways: not the ecosystem, mind: all the Rust programmers I know are great! Their worst attributes tend to be that they're proud of being Rust programmers, especially if they're good at it (and they are!) - but honestly, that pride's probably deserved. I understand the borrow checker conceptually, sort of, I hope... but do I really understand it? I'm gonna say no.

But developing in Rust... the language is nice (like Scala!) and the developer ecosystem is great (unlike Scala!), but the compiler was ... well... let's just say I was having SBT-like "Sure, why don't we hit the brakes hard" flashbacks.

Every time I hit cargo-update to keep some really nice tooling updated (dust, eza, bat, topgrade), I expected a seven-minute coffee break, if one of those packages needed to be recompiled.

It isn't a pleasant user experience.

But then I wrote something that I wanted to run on that server. Locally, it finishes a complete initialization in under ten seconds, which is okay (it's doing negotiation with a few other servers; the application's initialization itself is under three seconds.) On my remote host - the one on which I judged Rust - it took three minutes.

What.

I mean, okay, my work desktop is pretty high end these days - not top-of-the-line killer material, but it's recent and it's able to hold its own against anything out there, I think. But that kind of differential is nuts.

So I tried building on the VPS. This is a Maven project; I compile it with mvnd locally, and a full mvnd clean package cycle (i.e., full test, full deploy) takes twelve seconds. On my VPS... it took eight minutes and 32 seconds.

What.

So, uh, I created a new remote server instance, on a dedicated server. It's on a processor that's few years old, certainly nowhere near cutting edge; no GPU. Decent RAM, I suppose. But on that machine, it's 34 seconds - which is still three times as much as my development machine, but it's tolerable. (The application is in Java anyway: I can compile it locally and run it remotely, the OS doesn't matter for the executable.)

And Rust? I installed a set of packages in one fell swoop (cargo install du-dust eza bat topgrade) in far less time than my current VPS could update one of those packages.

Rust, I judged you unfairly. I'm sorry.