A Rust shaped hole
By a process of elimination, I've arrived at a conclusion that I should write Rust, or at least give it a rigorous try.
Let us say I want to write a "native" program.
This train of thought started with wanting to write a program, an xfdesktop replacement, that can serve as my desktop background, slowly meandering though a pastel game of life, or floating through a Mandelbrot set. But the specifics are not relevant, because I find myself on the same train when thinking of other native programs, CLI tools, etc that I want to write.
My weapon of choice is TypeScript, a sword mighty yet light to wield, cutting through problems like butter. TypeScript also compiles to JavaScript, so it runs everywhere. Or does it?
While I can jump through hoops to compile JavaScript into a binary, such wouldn't feel "solid". And the very point of writing a native program in the first place is to make it feel solid.
Maybe this is preconception on my part, maybe one day the TypeScript -> JavaScript -> WASM -> binary pipeline will be straightforward, or maybe it already is and I just am not aware.
That leaves me with the following options — C, C++, Go, Rust.
Technically, there are a lot more options, and I wrote a long section here about eliminating them piecewise, but after writing it I felt like it was just noise.
Of these, C++ is the easiest to eliminate. I once spent an entire year in the heaven of C++, walking around in a glorious daze of std::vector and RAII, before one day snapping out of it and realizing that I was just spawning complexity that is unrelated to the problem at hand. The experience was so vivid that I've never felt the urge to partake in C++ ever again.
... continue reading