site banner

Friday Fun Thread for January 31, 2025

Be advised: this thread is not for serious in-depth discussion of weighty topics (we have a link for that), this thread is not for anything Culture War related. This thread is for Fun. You got jokes? Share 'em. You got silly questions? Ask 'em.

2
Jump in the discussion.

No email address required.

the language itself is actually grounded in a better theoretical foundation than its legacy competitors

Something every single functional language has, technically correctly, claimed.

There is a reason why functional languages are created- usually an obsession with safety and mathematical purity over all else; that reason is also inextricably linked to why every other language just takes the parts of those languages that enhance one's ability to reason imperatively about the code and leaves the rest.

You seem to have the impression that C++’s danger is what makes it an appealing tool

Inbuilt disdain of "computer says no because reasons" not enough? But then, that depends on thinking that "shipping product that works well enough" is more important than "mathematically correct, but your competition beat you to market by a month", and because Rust is developed by those who emphasize the latter, and not the former, it's going to make compromises in development speed for that safety (which is why everyone tends to bitch about the borrow checker).

Rust is not a replacement for C++. Rust is a replacement for Ada.

Inbuilt disdain of "computer says no because reasons" not enough?

What exactly are you arguing against here? Error messages at compile time? There’s plenty of interpreted languages that crash at runtime if that floats your boat.

Presumably, such people enjoy removing the annoying "check engine" light and just waiting for their engine to start smoking.

that "shipping product that works well enough" is more important than "mathematically correct, but your competition beat you to market by a month"

I don’t believe this is even a real dichotomy, at least in the Rust vs mainstream language sense. (Obviously if you’re formalising something in Lean4, that’s going to be comically inefficient compared to just building it, but that’s so far from the Rust vs C++ land it’s not even relevant.) The reason companies are fond of mainstream languages has nothing to do with engineering, it has to do with the availability of replacement labor. It doesn’t matter what technical properties the mainstream language has; what matters is that it’s mainstream.

which is why everyone tends to bitch about the borrow checker

I’m going to out myself as much crazier than anyone may have expected, but: the borrow checker is the least-inspired part of Rust and the language would be better without it entirely. The reasons Rust is good are because it actually has sane primitive types, non-ambiguous syntax, algebraic data types, parametric polymorphism, a non-busted standard library, and perhaps most importantly: cargo.

The borrow checker paradigm is basically a half-baked bastardization of linear types, and the way it’s done has some serious theoretical deficiencies that basically mandate leaky abstractions. But I’m not going to babble about that here.