A deploy script rewritten twice — into a compiled language and back — and stable for eighteen months at a hundred and eighty lines.
2019-2024 600 lines of bash, with functions,
associative arrays and a retry loop
2024 rewritten in a compiled language: typed
errors, tests, one retry implementation
2025 split. 180 lines of shell orchestrating
commands, plus a small binary for the
part with data structures in it
2026 unchanged
the rewrite was right about the problem and wrong about
the boundary. about eighty of the six hundred lines
were genuinely a program.
Shell is the right tool for orchestrating commands and the wrong one for anything with data structures, and the boundary is crossed gradually enough that no single commit looks wrong. Eighteen months without a change is the evidence that the split landed in the right place.