And yet the care and feeding (tuning) of the GC consumes countless millennia of human time per year.
This, as my post says, is not even an inherent problem with GC, but with Java assuming an eventually sufficiently smart GC.
But also yes, successive Java GC implementations have done huge heroics. They've gotten better and better. A million PhDs have been minted inventing amazing technology in this space. But we've been promised the ultimate compacting pauseless GC for decades, and yet I see outage after outage of huge systems root caused to "look, we found a brand new way that the GC can explode (or just thrash) on us".
And (for all its many flaws), Go chose a different strategy, and avoided a class of problems. They learned from Java's mistake in this case. There's still GC issues (though Go is also getting better and better), but nowhere close.
> Java has some of the cleanest error messages around
One can make the case for which is better (well, least bad) of Java or C++ error messages, but neither can come close to Rust error message quality and cleanliness.
And Rust does have a developed type system.
But fair enough, let's call it opinion. Which is a disclaimer I have at the top of the post. Like I said I'm impressed that Java managed to make error messages worse than C++, but you can disagree.
> Modern Java uses UTF-8 for Strings and for internal representation of Strings when applicable.
Ok, that sounds like I'm not up to date (probably nowhere near). It's not an issue I've fought in years. But glad to hear they fixed that… "when applicable". I'll read up on that. Thanks.
> finally
Go is not my favorite language, but here I think it's better than Java. RAII beats defer, but at least defer makes the programmer add the cleanup at resource acquisition, not four pages further down, possibly behind a null pointer check in case the finally clause triggers before the resource acquisition.
I respect your opinion about aesthetics, but I don't accept that my opinion on finally/defer/RAII is "wrong".
I appreciate the feedback. Thanks.