I love this talk so much. It’s like Dr Xavier in the middle with his X-men and other super heroes around him. Thank you for this rare glimpse into the great thought leadership at the Java helm and the WHY’s that steer the trajectory.
I think the XML parser (actually, XMLDecoder) was a bad example IMO, it exist as part of Java Beans since Java 1.4. It's probably only used for JMX Remote API and MBeans. I have never seen it being used for anything nowadays. But to be fair, the JSON Parser used to exist... as part of Java EE.
Can I ask you why AWT is using 25+ years old APIs for tray icon and notifications on both Windows and Linux and why this thing is broken since years, with bugs opened that are neither assigned to someone for a fix? Does java abandoned AWT? JavaFX can't replace AWT on these features so what?
Based on the discussion here, and the very long history of discussion on the topic, I am going to assume that tail call elimination is just flat out NEVER going to happen on the JVM. I had been there for a while already, but was glad to hear the question being asked. Kind of depressing, but not really surprising.
When will we have opt in manual memory management, so that people could use it in all places including low latency apps, writing device drivers and in embedded systems. I think Java is effectively killed from frontend, embedded devices. is Java team have given up on these. Make it suitable for Data Science.
@@avalagum7957 There are so many languages, beef, c3, zig, Rust, jai, carbon, odin. With Rust you can do frontend(webassembly), polars (alternative to pandas), embedded systems, it entered into linux kernel. Yes it is doing quite good because it has the capability to allow memory layout design and manual memory management. So Don't want to leave Java world for these use cases, Java should have an opt-in functionality so people can do anything with it. Just the capability for manual memory management so that it could be decoupled with JVM for some high and predictable performance. JVM is good use case for many applications but not for all. Otherwise java will become too niche language, people would prefer one language that could do almost all the work without learning any new tom dick and harry language that show up frequently.
Will there be pattern matching with collections like in Scala? If yes, when? Will array have the same interface like List (like in Scala)? If yes, when? Will there be a Result type? If yes, when? Will there be tail recursion? If yes, when? Will there be something like the Elvis operator in Kotlin? If yes, when? Will it be possible to override the + - * / operators (not as crazy as in Scala where a method name can be |+| and when there's only 1 argument, the `.` and parentheses can be omitted) like in Rust? If yes, when? Will it be possible to access an element in an array/list using a negative index like in Python? If yes, when?
I'll answer your questions in order, but always only the first - the answer to the second is always "when it's ready". 😉Note that I'm no member of OpenJDK, so I don't have any special insights - this is based on what has been said in AMAs like this one, on mailing lists, etc. Amber is exploring so-called instance patterns, which would very likely allow the definition of such patterns. Yes, it's called `ArrayList`. 😉 I don't think so. Yes, since Java 1.0, but you probably mean tail call optimization, i.e. transforming a tail recursion into a loop. I'm not aware of any ongoing efforts to implement that. Not that I'm aware of - my guess is that that's one of those ideas that isn't bad but not good enough to make it so far up the priority list that it gets worked on. Project Valhalla will probably explore that once its first features (particularly value types; JEP 401) are stable. It seems that a solution simlar to Haskell's typeclasses will be investigated first. Pretty sure "no" because Javadoc for `List::get` (and probably the JLS section on arrays, but I'm too lazy to look that up) forbids this, which makes it a backwards-incompatible change.
why did you not make an audio system that can play same sound multiple times simply. the line abstraction is unnecessarily complex. independent sample playback abstraction would have been better. ie you dont have to know about playback lines. audio system should play a clip whenever its triggered to start. also the audio system is not available in (debian/ubuntu) linux.
I love this talk so much. It’s like Dr Xavier in the middle with his X-men and other super heroes around him. Thank you for this rare glimpse into the great thought leadership at the Java helm and the WHY’s that steer the trajectory.
Thank you!
Architects assemble!
21:42 if java has a built-in XML parser to be “batteries included,” why doesn’t it have a built-in JSON parser, which is more popular nowadays?
I think the XML parser (actually, XMLDecoder) was a bad example IMO, it exist as part of Java Beans since Java 1.4. It's probably only used for JMX Remote API and MBeans. I have never seen it being used for anything nowadays. But to be fair, the JSON Parser used to exist... as part of Java EE.
Please add timestamps for next videos, that would be really helpful
Thank you for this great section.
Brain is the boss. I trust him.
Hi Brian, Valhalla when? 😅
the road to valhalla lengthens every time its duration is observed
Can I ask you why AWT is using 25+ years old APIs for tray icon and notifications on both Windows and Linux and why this thing is broken since years, with bugs opened that are neither assigned to someone for a fix? Does java abandoned AWT? JavaFX can't replace AWT on these features so what?
where can I buy deprecation lab coat?
Timestamp bookmarks please!!!
sir Ai is comming to indunsteri any problem form javav Developer features..
Based on the discussion here, and the very long history of discussion on the topic, I am going to assume that tail call elimination is just flat out NEVER going to happen on the JVM. I had been there for a while already, but was glad to hear the question being asked. Kind of depressing, but not really surprising.
When will we have opt in manual memory management, so that people could use it in all places including low latency apps, writing device drivers and in embedded systems. I think Java is effectively killed from frontend, embedded devices. is Java team have given up on these. Make it suitable for Data Science.
So you meant like Rust but with Java syntax?
@@avalagum7957 There are so many languages, beef, c3, zig, Rust, jai, carbon, odin.
With Rust you can do frontend(webassembly), polars (alternative to pandas), embedded systems, it entered into linux kernel.
Yes it is doing quite good because it has the capability to allow memory layout design and manual memory management.
So Don't want to leave Java world for these use cases, Java should have an opt-in functionality so people can do anything with it.
Just the capability for manual memory management so that it could be decoupled with JVM for some high and predictable performance. JVM is good use case for many applications but not for all.
Otherwise java will become too niche language, people would prefer one language that could do almost all the work without learning any new tom dick and harry language that show up frequently.
You can use the foreign memory API for that: docs.oracle.com/en/java/javase/23/docs/api/java.base/java/lang/foreign/package-summary.html
@@avalagum7957 yes
Will there be pattern matching with collections like in Scala? If yes, when?
Will array have the same interface like List (like in Scala)? If yes, when?
Will there be a Result type? If yes, when?
Will there be tail recursion? If yes, when?
Will there be something like the Elvis operator in Kotlin? If yes, when?
Will it be possible to override the + - * / operators (not as crazy as in Scala where a method name can be |+| and when there's only 1 argument, the `.` and parentheses can be omitted) like in Rust? If yes, when?
Will it be possible to access an element in an array/list using a negative index like in Python? If yes, when?
Valhalla? If yes, when?
I'll answer your questions in order, but always only the first - the answer to the second is always "when it's ready". 😉Note that I'm no member of OpenJDK, so I don't have any special insights - this is based on what has been said in AMAs like this one, on mailing lists, etc.
Amber is exploring so-called instance patterns, which would very likely allow the definition of such patterns.
Yes, it's called `ArrayList`. 😉
I don't think so.
Yes, since Java 1.0, but you probably mean tail call optimization, i.e. transforming a tail recursion into a loop. I'm not aware of any ongoing efforts to implement that.
Not that I'm aware of - my guess is that that's one of those ideas that isn't bad but not good enough to make it so far up the priority list that it gets worked on.
Project Valhalla will probably explore that once its first features (particularly value types; JEP 401) are stable. It seems that a solution simlar to Haskell's typeclasses will be investigated first.
Pretty sure "no" because Javadoc for `List::get` (and probably the JLS section on arrays, but I'm too lazy to look that up) forbids this, which makes it a backwards-incompatible change.
why did you not make an audio system that can play same sound multiple times simply. the line abstraction is unnecessarily complex. independent sample playback abstraction would have been better. ie you dont have to know about playback lines. audio system should play a clip whenever its triggered to start. also the audio system is not available in (debian/ubuntu) linux.
Why is python leading AI
Valhalla 😢😢😢😢😢😢😢 java 24 0 jep whyyyyyyyyyy