Let’s set aside the possible benefits of those additional build tools for a moment. Chances are that they require you to use domain-specific languages. Your IDE generally isn’t going to be good at handling this stuff, and locating relevant pieces of code will become harder.
and I’m thinking, “I’d rather use yacc than hand-roll a LALR parser by hand”. But then their example is:
Maybe the lesson is using less dynamic magic and factory factory factories when there’s no proven benefit. For it is written:
Never put off till run-time what you can do at compile-time.
– D. Gries