I had a forty-line bash script that parsed a log, did some arithmetic on it, and printed a table. It worked fine. So naturally I rewrote it in Rust, because that is the sort of decision you make at half nine on a Sunday.
The honest accounting: the Rust version took an afternoon, where the bash took twenty minutes years ago. It's now about 180 lines. clap gives me proper --help and argument parsing for free, which is genuinely nicer than my hand-rolled case statement ever was. Error handling is real now; a malformed line gives a sensible message and a non-zero exit instead of awk quietly producing nonsense. And it runs in single-digit milliseconds against a file that made the script-and-pipe version stutter.
Was it worth it? For a one-off, absolutely not. The script was fine and rewriting it was pure indulgence.
But this isn't a one-off. I run it daily, other people on the team run it, and now it's a single static binary I can drop on any box with no runtime to install and no "works on my awk" surprises. The compiler caught two edge cases I'd been living with for years without noticing. That's the bit that won me over: not the speed, not the binary, but being made to handle the cases I'd been ignoring. Rust doesn't let you shrug at the unhappy path. Sometimes that's exactly the discipline a script needs.