Thanks for all the advancement Java has made, I'm very happy. However, I believe it is urgent for Java to abandon these unpredictable timing garbage managers and adopt deterministic memory management with destructors and move semantics, inspired by C++ and Rust, as the NIM language did. Nim has a very low memory footprint and is also suitable for systems programming. Nim does this without the complexity of Rust or C++ with memory management called ORC.
Reference counting memory management systems are not a magic bullet and will never get the throughput that java's G1 gets. If you want low latency use ZGC instead of G1, if you want low memory wait for Valhalla. No one thing is magic in programming. If you want control C style programming (check Zig or Odin if you want something modern) with custom memory allocators for specific situations is still the way to go, the rest is requirement or preference based. Either way what you suggested will never happen because it's not objectively better and even if it was they would never do such a radical change, they are only doing Valhalla because they realized it really is necessary for java to expand to other things than backend web dev
@@Ilumar589 From what I've seen, NIM has a speed and memory footprint close to C, with the implementation of a memory management system called ORC. It's something impressive.
Why is this beeing prioritized over null safety? In my experience far more developers, especially juniors, are complaining about that than somewhat improved startup times.
This is very much required in cloud, otherwise go and other languages will eat java's lunch. currently java have high memory footprint, high time for peak performance and startup time, all this is very relevant in the cloud.
@@Ilumar589 Sure, but all the brains going into other projects should be going into null safety instead. That's the number one wanted feature especially by beginning developers. Valhalla has been going on for 12 years now (if memory serves) so it clearly has no priority at Oracle. Valhalla will also not provide a general solution for a null aware type system, but only null safety for a new type called value objects (which is too little too late). Oracle is trying too hard to keep backwards compatibilty, it should be possible to opt in to features which is not backwards compatible.
@@gs-e2d Yes, as mentioned in the presentation this has been adressed by GraalVM. Project Leyden only slighly improve startup times compared to GraalVM, and do very little to memory consumption. If startup time and low resource usage has high priority in your project then AOT compilation is the only way to go.
Awesome to see Per with Oracle
great presentation
Great talk. So well explained.
Does this mean JAOTC going to come back? it will be great if it did.
Thanks for all the advancement Java has made, I'm very happy. However, I believe it is urgent for Java to abandon these unpredictable timing garbage managers and adopt deterministic memory management with destructors and move semantics, inspired by C++ and Rust, as the NIM language did. Nim has a very low memory footprint and is also suitable for systems programming. Nim does this without the complexity of Rust or C++ with memory management called ORC.
Reference counting memory management systems are not a magic bullet and will never get the throughput that java's G1 gets. If you want low latency use ZGC instead of G1, if you want low memory wait for Valhalla. No one thing is magic in programming. If you want control C style programming (check Zig or Odin if you want something modern) with custom memory allocators for specific situations is still the way to go, the rest is requirement or preference based. Either way what you suggested will never happen because it's not objectively better and even if it was they would never do such a radical change, they are only doing Valhalla because they realized it really is necessary for java to expand to other things than backend web dev
@@Ilumar589 From what I've seen, NIM has a speed and memory footprint close to C, with the implementation of a memory management system called ORC. It's something impressive.
Furthermore, I don't doubt the JAVA team at all, they are unstoppable and capable of surprising the world, as they have done several times.
Yes Valhalla will be a game changer but they are taking an annoyingly too long to release.
There is also GraalVm you can use to reduce java app starting time and footprint.
Why is this beeing prioritized over null safety? In my experience far more developers, especially juniors, are complaining about that than somewhat improved startup times.
Wrong question. Different group of people than the ones that are working on the language.
This is very much required in cloud, otherwise go and other languages will eat java's lunch.
currently java have high memory footprint, high time for peak performance and startup time, all this is very relevant in the cloud.
It's not, null safety comes bundled with project Valhalla. It's a different team working on that
@@Ilumar589 Sure, but all the brains going into other projects should be going into null safety instead. That's the number one wanted feature especially by beginning developers. Valhalla has been going on for 12 years now (if memory serves) so it clearly has no priority at Oracle. Valhalla will also not provide a general solution for a null aware type system, but only null safety for a new type called value objects (which is too little too late). Oracle is trying too hard to keep backwards compatibilty, it should be possible to opt in to features which is not backwards compatible.
@@gs-e2d Yes, as mentioned in the presentation this has been adressed by GraalVM. Project Leyden only slighly improve startup times compared to GraalVM, and do very little to memory consumption. If startup time and low resource usage has high priority in your project then AOT compilation is the only way to go.