Hacker News new | ask | show | jobs
by jpgvm 1845 days ago
Those who do not understand Make are doomed to reinvent it poorly.

When you do finally outgrow Make you should be looking at Bazel or similarly full build system.

Creating Make with YAML syntax is strictly worse than Make and yet this has to be the most popular style of "new build systems" I am seeing recently and it really does confuse the shit out of me.

EDIT: Realized this is Show HN so here is some constructive critisism. If this is a learning exercise on how to build graph style build execution systems then carry on. If however you think this is needed I think you should invest some time learning from Bazel and other new generation build systems. Ideally take some large multi-project builds and try converting them between this tool and Bazel and see if you can understand what is different paying close attention to cachability, parallelism and repeatability. That last one, repeatability is actually what makes Bazel stand out from most of it's competitors so it's worth understanding why it values it so highly when it clearly has a very high cost.

1 comments

Thank you very much for your feedback :). I did take a look at both (make and bazel) before I decided to start this project.

What I was missing in make was the containerization which enables running tasks inside container and take leverage of the installed tools there. That keeps the requirements on available tooling low and makes it als easier for cross platform development.

Bazel on the other side was very hard to get into and felt really complex. I am sure it's a great build tool and you can archive great things, but I thought maybe I could create something simpler that's almost as relable without the complexity. I am sure I miss a lot of features in my project that bazel covers and hope I do not end up with the same complexity.

At least I will learn a lot, either way :)