Non-Recursive Make Considered Harmful: Build Systems at Scale (2016) [pdf]
Is it really worth blaming the tool? Has reimplementing make for the 50th time really improved things?<p>The fact is, building software that requires 500 dependencies and 500 sub-steps and 500 configuration options is going to be complicated. It&#x27;s complicated in the same way that implementing an operating system is complicated. There&#x27;s no way around it. The complexity is there because it&#x27;s inherent in the problem.<p>But it doesn&#x27;t have to be. Instead of spending 300 hours implementing Shake, or Rake, or Bake, or Cake, or Jake, or Take, why not spend those hours cutting down the complexity at the source? Trim your dependencies. Stop putting so many sub-steps and configurations into your build systems. Cause it&#x27;s the build systems with the 500 dependencies and 500 the sub-steps and the 500 configurations option that are harmful; not the tools