I am so much impressed by this man being able to get to the core of a very complex problem, and present the insights in an understandable way.
I was in the audience for this talk, and WOW! I knew there were differences between build systems, but this description is the clearest I’ve seen.
I’m doing a lightning talk on this next week at work, our build process could be so much better.
PDF here from a while back. Tying them together.
Interesting, it reminds me of Google’s MapReduce Programming Model — Revisited, in that they are using the Haskell type system to model deployed systems.
Any other good papers like this?
I like how they decomposed the design space into schedulers and rebuilders, and put Make, Ninja, Bazel, etc. on there. However I question the completeness of the model, since those build tools differ along several other dimensions. Also, they don’t model parallelism, which is essential in build systems.