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

In the topic of classifying build systems, there was a really interesting paper about that published at ICFP last year

https://blogs.ncl.ac.uk/andreymokhov/build-systems-a-la-cart...

They classify it based on how the build system detects what needs to be rebuilt and how the build system chooses the order things should be built in



I'd like to get a good grasp of the differences between Bazel and Buck. I've used the Bazel but not Buck - most descriptions of Buck describe it as being pretty similar to Bazel. (Also, that's a very interesting paper, will read in depth.)


From a historical perspective:

Bazel is the open sourced version of Blaze, google's internal build system. Buck is Facebook's open source version of their own implementation of a Blaze-like system. Pants was built as an open source implementation of Buck, before Buck was open sourced.

From a bird's eye view, knowing this history of their creators, I would guess that Bazel is more complicated internally, its API has a wider surface area, and ships with many optimizations included for the use case of building extremely large artifacts with many, many dependencies.

Someone who's more familiar with both, feel free to add details or correct my over generalizations! I've used Pants professionally and tried setting up Bazel for personal projects, but found it was too complicated for my needs.


one of the biggest differences between buck and bazel is,

when you want to write new build rules(to support your specific use case or to support an unsupported language etc):

- in buck you should update the buck code itself(you should touch so many places in JAVA) - whereas in bazel, you can extend bazel with starlark(subset of python) language and do all sorts of things like supporting whole new language. without touching even a tiny bit into bazel core.

This was the main reason my company is switching to bazel from buck




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

Search: