In general the code review process can work at Google for most projects because the essential design questions are already set in stone. You use protobuf/gRPC, follow the patterns that other services have mandated. There is usually a "recipe."
And within Google design problems are perhaps sometimes addressed during PRD/design-doc phase, in a big Google Doc. But not always.
But I can see how this could completely fall over when these things go out into the external world.
That and the need to make everything into small microlevel reviews that get nitpicked for days means that large wholesale architecture simplifications and refactors just don't really happen very often. Few projects have people with that kind of authority.
The Torvalds review is pretty savage.
Also internal politics sometimes impacts technical decisions ("No, you can't add an API to our teams codebase - we're underresourced and don't have time to review your changes till Q4 2025").
End result: API's are added in silly places.
The innards are spaghetti.
"Java programming culture" outright would not work which was obvious to anyone trying to write fast code back then.
(I also wonder how many users are willing to trade off 15% of their battery time to developer java programming culture.)
> "Java programming culture" outright would not work which was obvious to anyone trying to write fast code back then.
And yet Google had enough air to use a half working third party implementation instead of using the bleeding edge Sun JRE.
> (I also wonder how many users are willing to trade off 15% of their battery time to developer java programming culture.)
Apparently many people don't run an adblocker on their mobile browser, so the number of people who don't care must be rather high.
Android was running a full JavaSE on a much larger and higher resolution screen. There's a reason why it lived and all other Java OSes miserably died.
In the end they didn't even bother to make an offer for Sun's assets.
Why bother, they already got what they wanted.
Unfortunately Oracle failed to put them into their place, as Sun did previously with Microsoft.
I distinclty remember Nokia trying to sell us on Qt app development... where apps were only actually able to run on like 2 devices out of their 100+ device portfolio. It was hillarious how misguided they were.
There are some APIs that are real stinkers (and quite a few of them obviously targeted at use of a single Google app and noone cared to actually make them good APIs).
Several of them are really well thought out and designed to the point that iOS devs were envious for years.
Gain some, lose some. It's not the best API surface, but it aint GTK or Win32 either.
[0] https://developer.android.com/reference/android/app/Service#... [1] Control Coupling - https://en.wikipedia.org/wiki/Coupling_%28computer_programmi...