Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

As an older and more cynical person, hard to be impressed by Yet Another Build system. Build systems just keep coming, one after another. New stuff, such as a new or different programming language or OS, is typically fun stuff. Another build system is never fun stuff. Please yell at me (have poor hearing) when you find a logical, useable build system that is fun.

FWIW, have used autotools, but mostly use scons.



A lot of build systems focus on trying to make it "easier" to define a build, and invariably that notion comes with a certain naiveté about what is needed for a build.

Build systems are never fun, agreed. That's not the point. The point of Bazel is having one that is correct and efficient. That makes a huge difference, though not with the same out-of-box-experience as the "easier to use" build systems.

We'll see where this goes, but I'd encourage you to recognize the difference in what is being attempted here (admittedly, not for the first time, but this design has a pretty established track record... note the comments here of people actually missing the Google build system).


Will suppose that bulk of you people are corporate minions doing desktop or web stuff. At home and at work do 'deeply' embedded code. Assembly and C, with some Python honey poured on top to fill in the cracks. So perhaps it is a POV thing - huge company stuff done by several programmers vs small little black box stuff done by one or two EEs.

But a good tool, however mundane the task, will always be fun. This is my second Law of Engineering.


> So perhaps it is a POV thing - huge company stuff done by several programmers vs small little black box stuff done by one or two EEs.

It absolutely is a POV thing. There is a reason why Make wasn't implemented with the features and design objectives of Bazel.

> But a good tool, however mundane the task, will always be fun. This is my second Law of Engineering.

A good tool will always be fun where "good" is based on your criteria, which is based on your context.


I would classify djb's redo as being "fun", in large part due to its high implementation terseness and conceptual elegance permitting equivalency with make while ensuring target file atomicity, proper incremental rebuilding and a highly straightforward way of expressing build dependencies/relations based purely on metadata from the file system namespace, all while being persistent and driven solely through the shell.

Build systems can be eye-opening. tup, redo, memoize.py and Bazel all demonstrate different, interesting paradigms.


I'm surprised how little scons is mentioned in all the chatter around the announcements of Bazel, Buck, and Pants. We use it with swtoolkit and it's really slick how multiple environments can be built up. The only problem is it's slower to start building than I would like (because it has to set up the OS environment for msvc every time, which takes 400+ms).

Unfortunately swtoolkit seems to be dead since a couple years ago.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: