I agree on the bootstrapping issues resulting from that, though.
Advocating for Java as a general purpose tool language sort of overlooks the incredibly broad and prevasive installbase of machines more than ten years old, as well as the rapidly growing installbase of ARM SOC machines.
For many, a tool eating up a gigabyte or more of memory is certainly not acceptable.
Personally, my primary home/non-work machines are an RPi4 and a Pinebook Pro.
Hmm.
The fact that you personally deem the needs of others illegitimate doesn't preclude them from actually existing.
For many it is Bazel that is inferior due to development environment constraints.
And "outdated" is a questionable term: if it satisfies their needs, why upgrade?
Maybe Google should build better tools.
You're talking about computers from 20, 20+ years ago and about Raspberry Pi.
It's a personal choice.
You can get a good second hand desktop from 2012-2015 for the price of your Raspberry Pi.
Have you lived in the places you've listed?
I have family in Colombia.
I'm from a place similar to those you're describing.
Few people would get enthusiast gear like Raspberry Pi. What they would get, instead, would be an old x86 PC with pirated Windows. A crummy knock off Chinese laptop or locally assembled PC (so not from the big OEMs).
We have some peculiarities of our Bazel setup that are not common, yet are (supposed to be) fully supported.
Building can take hours.
It's a pity, feels like a real missed opportunity.
By analogy, I'd say that if Make is a hammer, Bazel is a CNC machine. Most DIYers are going to have hammers, and everyone understands how to use them, but CNC machines are becoming cheaper and more common.
Most tellingly, Google has gone through two major build system migrations (Android and Chrome), and neither project chose to migrate to Bazel/Blaze. If Google won't eat their own dogfood, it doesn't inspire much confidence.
Chromium's gn started being prototyped in 2013 [1].
Android's soong started being developed in June 2015 [2].
Bazel's first open source release was in September 2015 [3].
In addition, you surely can't be serious about Google not 'dogfooding Blaze' - it's a critical build system internally at Google. And new external projects (like gVisor) are also now built using Bazel.
[1] https://chromium.googlesource.com/chromium/src/tools/gn/+/3b...
[2] https://android.googlesource.com/platform/build/soong/+/e441...
I'm not sure what to make of this statement. Why is 156MB prohibitive? You don't need to include Bazel in the project any more than you need to include Xcode for the macOS version of a project. You can specify a version of Bazel with .bazelversion so you don't need to worry so much about people using the wrong Bazel.
There are some systems like Waf and Autotools where the build system is customarily bundled inside the source release, but this is not universal--if you use CMake, it's almost certainly not bundled either.
> Most tellingly, Google has gone through two major build system migrations (Android and Chrome), and neither project chose to migrate to Bazel/Blaze. If Google won't eat their own dogfood, it doesn't inspire much confidence.
Android is a fairly large project itself consisting of the Kernel (which has got its own custom build system) and a ton of different components. From what I understand, for NDK projects, Bazel is moving towards "the one sane way to do things", it will just take time, this stuff doesn't happen overnight. For non-NDK (pure Java or Kotlin) projects, there's not really a point.
Chromium is a bit of a special snowflake and predates Bazel's Windows support, and a codebase the size of Chromium would take a long time to migrate--but it looks like it's heading in that direction. From what I can see in the revisions to the Chromium build system, it seems that it's massive custom build system is moving towards Bazel by leaps and bounds. It's already structured like a Bazel project and uses much of the same terminology, I wouldn't be surprised if a few hundred Bazel scripts appear overnight in Chrome, because it looks like much of the groundwork has been done.
Most open-sourced Google projects use Bazel now. Of course, projects like Android and Chrome have been around for a long time and have invested in their build systems, so any change will take years.
(disclaimer: I've worked on Bazel)
What are these "issues"?
And Bazel's build system itself IIRC wants to download stuff from the Internet on build - which can be pre-fetched, but distro maintainers still don't like having to deal with taht.
bash configure && make imagesI feel your pain, We had a lot of the same complaints with Bazel, Buck, Pants etc.
It seems like a great public use case/benchmark for a large common project to test with.
Defaults to Ninja and its superfast.