So to jump on my soapbox about this whole #xz thing: it has become my personal mission at work to say that bash is not good enough, after being seriously burned by it in production.
Now, I am fully on-board the bandwagon of writing my release "scripts" in #Rust. To be specific, I am hoping that I eventually get to the point where I have built a tool where I can do the entire release process end-to-end with very strong types. Does this fix the problem with #xz? No! But I can see many ways it reduces the scope.
The only other language I'd be interested in using if I wasn't doing this in Rust? #miniKanren, hands down. But that's not feasible today without a lot of bootstrapping, and Rust gives me a lot out of the gate even if I have to solve the deployment problem before I can deploy the tool that I want to use to solve the deployment problem. Fortunately, this is well-trod ground.
Zack Weinberg (@[email protected])
Suppose that's not good enough. Bourne shell is still a shitty programming language, and in particular it is really dang hard to read, especially if you're worried about malicious insiders. Which we are. Now we have another problem. The #1 selling point for autotools vs all other build orchestrators is "no build dependencies if you're working from tarballs," and the only reason that works is you can count on /bin/sh to exist on anything that purports to be Unix. If we want to stop using /bin/sh, we're going to have to make people install something else first, and that something else needs to be a small and stable Twinkie. Python need not apply (sorry, Meson). What's small and stable enough? Lua is already too large, and at the same time, too limited. There's one language that's famous for being tiny, flexible, and pleasantly readable once you wrap your head around it: Forth. If I had investments to live off, I would be sorely tempted to take the next year or so and write my own Forth that was also a shell language and a build orchestrator, and then have a look at rewriting Autoconf in *that.* This is the castle in the air.