3 ms·
Apple tried to do automatic GC but did so very badly and with a language not designed for it, so they had a bad experience and were scared away. The modern GC
by silvestrov 5y ago
Apple tried to do automatic GC but did so very badly and with a language not designed for it, so they had a bad experience and were scared away.
The modern GC in java is amazingly fast and with a few tricks likely to be good enough.
- richardwhiuk 5y agoI'm fairly convinced that GC is the reason that Android phones need much more RAM and much more CPU to generally be worse than Apple phones in terms of performance.
- miskin 5y agoYou may be both right, as android is actually not using Java garbage collectors that are quite good, but they have their own runtime.
- eropple 5y agoI'm pretty familiar with the modern Java GCs, and they're very impressive, but at the same time having to do manifestly less work with ARC is probably good for responsiveness and battery life.
- morelisp 5y agoI'm not saying you're wrong about ZGC, but I will say everyone heard exactly that line also at the time of Android 1. And that was not a language "not designed for it." (And Android is still not using it.)
- rvz 5y agoSo why are Android developers still complaining about their apps running poorly than iOS apps for years, especially contributing to battery drain? Sounds like a lot of armchair generals debating in hindsight about any problem in anything that fits their dislike bias rather than fore-sighting about the specifics before it has happened.
- vips7L 5y agoYou’re confusing Android with OpenJdk. The parent was talking about Java/OpenJdk’s gc implementations, not androids.
- rvz 5y agoFrom the perspective of the user or app developer, they do not care. When they see an app perform slower on another platform for whatever reason they will complain. Maybe the problem was Java in Android (along side its sheer fragmentation) all along. Hardly any complaints about any of that for iOS. No wonder that is the reason why they are preferring to moving everyone to use Dart / Flutter in their future operating system instead of continuing to use Java. It is like as if Android was designed to be a disaster.
- vips7L 5y agoAgain this isn’t Java’s fault. This is the Android Runtime’s fault. The Android Runtime is not Java or OpenJdk.
- rvz 5y agoIt's both of their fault; including the entire Android system design and Google knows it. It's evident that Google and many developers have had enough of it from the runtime, Java, JDKs and the whole system. Otherwise, why on earth are they planning to move away from it all in the first place? Once again, from the perspective of the user or the app developer, they don't care, Android still just doesn't cut it against iOS. No wonder Android is always second place.
- lenkite 5y agoJava is fast but takes 5x-10x memory that a proper AOTC language app.