A build tool in JavaScript inside a PHP repository, examined for whether it should be rewritten and left alone.
the case for rewriting it in PHP:
one language, one toolchain, one set of conventions
the case against:
it processes a JavaScript build manifest and a
stylesheet AST. the libraries for both are in the
JavaScript ecosystem and are not in the PHP one.
rewriting would mean either reimplementing a CSS
parser or shelling out to the same tools from a
different language.
A tool written in the language of the artefacts it processes is not a language choice, it is the absence of one — and the consistency argument only applies when there is a genuine alternative. The Makefile is the interface, so nobody invoking it needs to know, which is what makes a mixed-language repository navigable.