9 ms·
> We had a googler at our company switch everything to bazel and it just slowed everyone down. I'd love to hear if anyone can make a case for Bazel knowing tha
by simplotek 3y ago
> We had a googler at our company switch everything to bazel and it just slowed everyone down.
I'd love to hear if anyone can make a case for Bazel knowing that cmake+build cache tools like ccache buy far better performance improvements than any full or incremental build.
- fsociety 3y agoIf I want near-instantaneous compile times with my build system I'll just make a bash script or Makefile and use a single compilation unit (which Rust does not really do). When I use Bazel it is because: - I want to build nearly everything from source in a controlled hermetic environment. No more "well it works on my machine"... only to learn the developer's libs leaked into the build environment. - I want to do this with a single build system that works across many languages, and to build libraries which are used in many different languages. - I want to do this within a sandboxed environment for peace of mind when compiling thousands of dependencies. - I am willing to pay the money and time to setup remote executors to keep performance acceptable.
- bjackman 3y agoFWIW performance is not really in the picture when I say "I wish everything was Bazel". Configured properly, CMake and Make are probably unbeatable for speed. It's just that I really really hate maintaining Makefiles and CMake configs. Admittedly in the latter case it's because I have never grokked CMake, but also... I don't want to grok CMake, I grok a perfectly good way of building C++ already. And it can also build Go and Rust and Typescript and Proto and JSonnet and it can run my janky codegen shell scripts and if we migrate to Carbon it will build that too and I won't even have to read the documentation. Not saying I think everyone should migrate to Bazel (I hope I will not become That Ex-Googler), just explaining where the urge comes from.
- simplotek 3y ago> It's just that I really really hate maintaining Makefiles and CMake configs. CMake is a high level makefile/build system generator. There is nothing to maintain in modern cmake. You just set what executables/libraries you want to build, set their dependencies, and you're done. And of all alternatives you chose to push, you pick Bazel of all things? Feature-incomplete and requiring all sorts of low-level maintenance?
- HervalFreire 3y agoI don't like bazel, but cmake is a piece of shit too. The logic is convoluted, documentation is over complicated and the language contains too many primitive functions and ways to shoot yourself in the foot. There's really nothing good that's available.