Software development is all about not re-inventing the wheel. Yet there are countless build systems, tons of pointless frameworks. I wonder developers have nothing else to do. Every company releases their own version of everything.
My understand of Buck (and Pants) is that they are the result of ex-Google employees going to other companies (resp. Facebook, Twitter), realizing that Blaze was more or less the Right Way to do a build system (at least for their set of circumstances), and then being forced to re-implement the ideas from scratch (edit: or memory, or exfiltrated docs/code) because Blaze was not open source. Reusing extant software is…
Buck: A high-performance build tool
51–60 of 71 posts
Re: Buck: A high-performance build tool
#52Bazel is significantly superior.
Re: Buck: A high-performance build tool
#53Re: Buck: A high-performance build tool
#54Software development is all about not re-inventing the wheel. Yet there are countless build systems, tons of pointless frameworks. I wonder developers have nothing else to do. Every company releases their own version of everything.
- Support for thousands of related and unrelated codebases in the same repo, with a nuanced understanding of dependencies so that all "dirty" objects, and no others, are rebuilt/retested for each change.
- Hermetic builds to weed out undeclared dependencies.
- Support for remote build cache / remote build workers.
- Understanding of many unrelated languages.
I can't imagine GNU Make being reasonable in this kind of use case. What would you choose?
Re: Buck: A high-performance build tool
#55I get the sense that Bazel will end up with a larger ecosystem than Buck, because Google’s Cloud business depends on open-sourcing more stuff, so they’ll put more effort into open-source Bazel. Uber is migrating from Buck to Bazel, for instance.
Re: Buck: A high-performance build tool
#56Here is what I would like to achieve in own projects:
1. Work on a NodeJS project A that can locally install NPM packages based on packages.json.
2. Have another Python or Go project that build depends on project B.
3. The build tool allows the dependencies pulled either from artifact repository or use checked out version locally.
This build system focuses on the WHAT to build vs HOW to build, which will be driven by project's own build tool, e.g. ant, npm, maven, etc.
I am considering creating my own simple build tool which is inspired by the Amazon's own tooling.
BTW, does not anyone know if I am allowed to develop my own tooling inspired on company's internal tooling? Obviously it won't be exactly the same but taken with lots of inspirational values.
Here is more details on the Amazon's build tool: https://gist.github.com/terabyte/15a2d3d407285b8b5a0a7964dd6...
Re: Buck: A high-performance build tool
#57Re: Buck: A high-performance build tool
#58I get the sense that Bazel will end up with a larger ecosystem than Buck, because Google’s Cloud business depends on open-sourcing more stuff, so they’ll put more effort into open-source Bazel. Uber is migrating from Buck to Bazel, for instance.
Buck and monorepo is a disaster (there). A bunch of people from Google forced that stuff down everyone's throat. Concerns and real life problems were simply discarded. Another solution in search of a problem. Not invented here at the extreme.
Re: Buck: A high-performance build tool
#59We think Buck is great. It's Deterministic hermetic builds and it's composable and declarative high-level build description language made packaging very easy. We built even built a package manager for Buck: https://github.com/LoopPerfect/buckaroo Currently we marketing it for C++ but it can be used for any language that is supported by Buck.
Re: Buck: A high-performance build tool
#60Earlier quoted context omitted.
Uber is migrating away from Buck to Bazel. One major reason is poor support for a variety of languages (Go being one big one, where fixing issues was historically slow due to a need to upstream fixes to Buck core). I haven't worked with Buck myself, but colleagues who evaluated it for JS have expressed concerns with lack of support/ecosystem there as well. In comparison, there are various Bazel rulesets for JS/Typesc…
Does this include mobile projects? I know Uber was/is pretty big on the Buck migration