This is the configuration language that Google uses internally. It's used in Bazel (which was open-sourced from Google's Blaze) and, I believe, in many other places inside Google.
Unlike Google's Jsonnet, which doesn't seem to have become very popular, it goes way beyond mere declarative templating, as it's actually a minimal implementation of Python, complete with functions, lambdas, for loops, etc.
The Google documentation for Bazel's BUILD files provides some context:
The concrete syntax of BUILD files is a subset
of Python. Originally, the syntax was that of
Python, but experience showed that users rarely
used more than a tiny subset of Python's
features, and when they did, it often resulted
in complex and fragile BUILD files. In many
cases, the use of such features was
unnecessary, and the same result could be
achieved by using an external program, e.g.
via a genrule build rule.
Crucially, programs in the build language are
unable to perform arbitrary I/O (though many
users try!). This invariant makes the
interpretation of BUILD files hermetic, i.e.
dependent only on a known set of inputs, which
is essential for ensuring that builds are
reproducible.
This is the configuration language that Google uses internally. It's used in Bazel (which was open-sourced from Google's Blaze) and, I believe, in many other places inside Google.
Unlike Google's Jsonnet, which doesn't seem to have become very popular, it goes way beyond mere declarative templating, as it's actually a minimal implementation of Python, complete with functions, lambdas, for loops, etc.
The Google documentation for Bazel's BUILD files provides some context: