I wish tools like CMake and Bazel simply used Lua, Python or JavaScript for their configuration instead of making their own languages with numerous quirks. There's literally no benefit of doing that.
Starlark is a subset of Python that's only primitive recursive. And in a distributed build system, being able to guarantee termination is a very good thing. It also means Bazel can do predictable fan-outs of builds. Starlark has very good reasons for existing.
CMake almost ended up using Tcl, but it was rejected because that would've introduced an external dependency, running counter to what they were trying to achieve at the time. Would Lua have been a good alternative to creating their own (rather janky) language? Sure, but Lua had very little mindshare in 2000. Even with the weird configuration language it has, it's still preferable to the horrible agglomeration of m4 macros that is Autotools.
If you want to pick on any build system for not picking an existing language, Meson would be a better target, as it's similar to but not Lua, and a suitable subset of Starlark-esque subset of Lua would've been useful.
Is anyone really using bazel outside Google in any meaningful capacity? There used to be a number of really popular and widely used projects such as closure compiler, gwt/j2cl, guava and other Java libs, and supposedly lots of golang stuff (not to speak of k8s where people seem to be satisfied it's a black box) that are dying behind bazel walls.
I wish tools like CMake and Bazel simply used Lua, Python or JavaScript for their configuration instead of making their own languages with numerous quirks. There's literally no benefit of doing that.
Starlark is a subset of Python that's only primitive recursive. And in a distributed build system, being able to guarantee termination is a very good thing. It also means Bazel can do predictable fan-outs of builds. Starlark has very good reasons for existing.
CMake almost ended up using Tcl, but it was rejected because that would've introduced an external dependency, running counter to what they were trying to achieve at the time. Would Lua have been a good alternative to creating their own (rather janky) language? Sure, but Lua had very little mindshare in 2000. Even with the weird configuration language it has, it's still preferable to the horrible agglomeration of m4 macros that is Autotools.
If you want to pick on any build system for not picking an existing language, Meson would be a better target, as it's similar to but not Lua, and a suitable subset of Starlark-esque subset of Lua would've been useful.
Bazel uses Starlark, which is pretty much a deterministic subset of Python. Using Python directly would not be a good idea.
Buck 1 used Python directly and it had lots of issues compared to Starlark.
Is anyone really using bazel outside Google in any meaningful capacity? There used to be a number of really popular and widely used projects such as closure compiler, gwt/j2cl, guava and other Java libs, and supposedly lots of golang stuff (not to speak of k8s where people seem to be satisfied it's a black box) that are dying behind bazel walls.
> Is anyone really using bazel outside Google in any meaningful capacity?
Yes. For instance, Stripe uses Bazel internally for ~all of its builds. https://stripe.com/blog/fast-secure-builds-choose-two
For other users, you might peruse the Bazelcon 2025 schedule, which happened earlier this month: https://bazelcon2025.sched.com/
“dying behind bazel walls” is a bit dramatic when it’s a freely available tool that anyone can learn and use.
imo, it’s also among the very few options that try to solve the hard problems of build systems (alongside Buck and maybe Nix).
Open source projects? Maybe less so.
But there are definitely companies that use Bazel in a major way.