A small compiled tool in a PHP project, and the question that matters more than the language.
the questions, asked before writing it:
who can change this in six months? two of three
where does it build? in the same
pipeline as
everything else
how is it versioned? with the
repository
what happens if it breaks at 03:00? the shell
path still
works — the
binary is an
optimisation
the last answer is what made it acceptable.
A second language in a repository is a maintenance decision rather than a technical one, and the mitigating factor here is that the binary is not on the critical path — the fallback is the shell implementation it replaced, kept and tested. That is unusual and is what makes this defensible; a tool with no fallback would need a different conversation.