The part where this starts to suck is when their tools become pseudo-standards and everyone has to live with their decisions.
1. A corporation spends significant resources developing a project.
2. Then they release to allow the public to use it at zero cost. Often they even invest in supporting that external use.
3. The project provides enough value to so many users (who chose it of their own volition) that it becomes nearly a standard.
And this is somehow a bad thing?
Regarding your specific interpretation:
1. The product was developed for internal use AFAIK, then released externally.
2. Google is getting something out of this: a PR boost, better engineer retention and the engineers feel good about themselves.
3. All these projects not only don't become standards, but they just add to the pile of things one has to learn because there are still too many people that are fawning over anything published by FAANG.
Most Google projects are like this, including Android which is the main reason why vendors struggle with os updates.
Android is not a Google's internal product, unlike Bazel.
There exist LTS kernel versions for a reason, you know.
Currently doing this for BSD using OpenJDK 11.
Irrespective of Bazel, that's an lot of software than can't run on NixOS ARM, including build-related stuff:
* Elasticsearch, Cassandra
* Eclipse, IntelliJ, Netbeans
* Jenkins
* Java toolchain, Android toolchain
> (ironic given it being advertised as a cross platform language
Indeed that is one of Java's hallmark features. Servers, desktops, phones, toasters.
---
FWIW it's not unheard of to require compiling on one platform for another. This is how most of the embedded world works.
Other idea, distributions like Debian, seems to build OpenJDK as well, so maybe that would be a way to get the initial package (through an existing distro) https://buildd.debian.org/status/logs.php?pkg=openjdk-11 - see the armel/armhf/arm64 architectures (arm64 equals aarch64).
That might get you bootstrapped to the point where you can use that to re-compile the community edition of Java.
Build systems should be easy to build. Bazel is not by a far shot due to java being a mess in this area (ironic given it being advertised as a cross platform language).
These issues are not important for everyone perhaps. (Heck the entire Kubernetes ecosystem pulls random binaries from docker hub without any cryptographic signatures.) but it's still a shame; especially for a build system.