I would like to add though that there is a big difference between a language-specific build tool that pretty much can’t build anything else and will bleed out at the first sight of another language in the project, and something like Gradle which is a fully generic build system capable of, say, a whole android build.
Of course a specialist will be “more elegant” at solving it’s intended problem, but that’s often not all we need.
I much prefer composing a handful of simple and elegant tools, rather than working with a single ones that tries to do everything for everyone. The latter invariably turns into a mess.
Of course a specialist will be “more elegant” at solving it’s intended problem, but that’s often not all we need.