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

I quit my last job in no small part because of Bazel. I hated it so much. It tortured me.

I think Bazel is the kind of really complicated language that invites clever engineers to build incomprehensible balls of spaghetti. And the tooling and docs are really underinvested in.

But I got a new job, and to my surprise I've been doing Bazel all day. And I love it. I don't really know why.

All this to say, don't make a final judgement yet, there's something brilliant buried underneath that pile of rules and aspects.



Bazel confused the hell out of me at first, and I think the two-phase execution model (the “plan-execute pattern” as I called it) is to blame.

My favorite thing about Bazel is how easy it is to get stuff done if somebody sets up the rules for you. Copy-paste a code snippet and fiddle with the dependency list until it works.

But as soon as you go deeper, you get overwhelmed with new concepts, and the documentation doesn’t explain them well enough. I think this huge spike in complexity makes people hate Bazel, especially if their colleagues force it on them, breaking the usual workflows.

I don’t love Bazel, but it’s the build system I hate the least. And it taught me a lot.


I work on a couple sets of rules at Google. I enjoy it. Though I agree people really can make balls of spaghetti with it. Everyone’s macros are terrible except for mine . The configuration system is where things can get really out of hand: transitions, selects, flags, etc.




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

Search: