Rust
A systems language I arrived at from the wrong direction.
I didn’t come to Rust for the borrow checker, which is the reason most people give and a good one. I came to it because I’d written an editor in C on top of a gap buffer I’d built myself, and nearly every bad bug in that thing was a byte where I’d meant a character. Rust offered a rope somebody else had already gotten right, addressed in characters instead of bytes, and that whole family of mistake simply stopped being available to me.
Which is a narrower reason than most people have. It’s the one I’ve got.
Two places I actually use it. Owl is four crates: the editing core, an SDL2 app, a terminal app, and the wasm half of the web frontend. Napkin’s core is a Pratt parser compiled to WebAssembly and shipped to the browser.
The Version I Happen to Have
Mine comes from apt rather than rustup, because Debian is what I run everywhere and I’d rather the toolchain match. What that costs is written up on that page: pinned dependencies, no wasm-bindgen, and the Rust web frameworks all sitting just out of reach.