It's been a while since I used it in earnest, so my memory is hazy enough that I can't be specific. One of the largest pieces of work I've done in C++ was not writing C++, but working out how to ask bazel to build a single shared library that imports other bazel libraries. I've never used such a confusing and frustrating package manager. It was frequently unclear how to do things, despite the project having quite a lot of documentation.
When I read it supports multiple languages, I had two thoughts:
- Why? That feels like trying to write a single style sheet for both English and Mandarin.
- That might explain why it's so confusing. I surmised: I has to bend over backwards to support all these different languages and their different module and packages architectures. And it doesn't manage to hide that complexity from the user.