Hacker News new | ask | show | jobs
by sigil 796 days ago
Good question! Here's a paper, "Build systems à la carte: Theory and practice," that compares Make, Shake, Bazel, and Excel:

https://ndmitchell.com/downloads/paper-build_systems_a_la_ca...

Yes, Excel can be considered a build system! A cell outputs the result of a computation, but it can also input computation results from other cells. For performance reasons, you don't want to recompute all cells in a spreadsheet when one cell changes. You want to do the minimum – an incremental rebuild. You do that by traversing a DAG with cells as vertices. You might not be "compiling" "files", but it sure looks like a build system in other important ways.

I've worked on build systems on & off for most of my career, but your question made me realize I've never read a book that presents build systems in the abstract. Everything I know comes from studying specific build systems and, in some cases, writing my own. The design space for build systems is huge and still expanding. That makes a unified theory of build systems difficult.

Can you share what motivated your question and what you're hoping to learn?

2 comments

> Here's a paper, "Build systems à la carte: Theory and practice,"

Awesome, thank you. I actually had that saved in my files to read later, then started really digging into it after your suggestion. Almost exactly what I was looking for!

> Can you share [1] what motivated your question and [2] what you're hoping to learn?

I suppose the simplest answer is "[1] pure curiosity and [2] whatever I can to slake it." How build systems in particular piqued my interest is a weirder, zig-zaggy story involving a bunch of different things catching my eye at random, and I'm not sure that's what you wanted to know, so I'll omit for now.

obviously popular since it was submitted twice in the past month

https://news.ycombinator.com/item?id=39968887 (11 comments)

https://news.ycombinator.com/item?id=39763074 (16 comments)