3 ms·
> Java 8 is the last free Oracle JDK, nothing added after 8 is really interesting enough to take the complexity hit that Java 9/10/11 etc. mean. The low latenc
by gher-shyu3i 6y ago
> Java 8 is the last free Oracle JDK, nothing added after 8 is really interesting enough to take the complexity hit that Java 9/10/11 etc. mean.
The low latency GCs and the general performance improvements seem quite good though.
> C# is an ok alternative but they went for value types
Java is also getting value types (project Valhalla).
> Go has no VM but uses GC, thay miss half of the requirements to make Joint Parallelism!
What do you mean by Joint Parallelism? I didn't find relevant resources. And is it bound to having a VM?
- bullen 6y agoWell, there was a real-time thing bought by Sun from Sweden but I'm still unclear as to how much of that has made it into the open-source part of the JDK. Time will tell! Joint Parallelism is a term that I invented, it means loosely defined: if two threads can read and write to the same memory at the same time without it causing too much loss... basically you need atomic concurrency which is only really efficient on a complex memory model VM with GC if you want high level language support: "While I'm on the topic of concurrency I should mention my far too brief chat with Doug Lea. He commented that multi-threaded Java these days far outperforms C, due to the memory management and a garbage collector. If I recall correctly he said "only 12 times faster than C means you haven't started optimizing"." - Martin Fowler https://martinfowler.com/bliki/OOPSLA2005.html https://martinfowler.com/bliki/OOPSLA2005.html "Many lock-free structures offer atomic-free read paths, notably concurrent containers in garbage collected languages, such as ConcurrentHashMap in Java. Languages without garbage collection have fewer straightforward options, mostly because safe memory reclamation is a hard problem..." - Travis Downs https://travisdowns.github.io/blog/2020/07/06/concurrency-costs.html https://travisdowns.github.io/blog/2020/07/06/concurrency-co... I'm not an expert, I can't explain why these things are true, because I'm trying to make something useful on top of C/Java instead of going too deep. But what I do know is that my app. server kicks everythings ass to the stone age in terms of performance and ease of use: https://github.com/tinspin/rupy https://github.com/tinspin/rupy It's facinating to see humans struggle with the wrong tools, and defending those same tools without even trying the alternatives (I have also worked with perl, PHP and C# so I know why those are bad). But I'm sure time will flush the bad apples out eventually, specially when electricity prices go up.
- gher-shyu3i 6y agoThe low latency GCs I'm referring to are ZGC and Shenandoah, both of which are in the JDK: * https://openjdk.java.net/projects/zgc/ https://openjdk.java.net/projects/zgc/ * https://openjdk.java.net/projects/shenandoah/ https://openjdk.java.net/projects/shenandoah/ Thank you for the rest of the post, it's very insightful :)