Excellent presentation. I’m dying to see all the potential implementations of StructuredTaskScope to make our applications beautifully simple and rich!
This talks is excellent and Nicolai is a brilliant speaker, that's why it has been featured in the last issue of Tech Talks Weekly newsletter 🎉 Congrats!
how to solve concurrency issues on a distributed system where two requests are handled at the same time by 2 instances of my app, and they both need to access and write to the same entity in a MongoDB database, so no pessimistic locking available?
@@asterixcode you’ve got the right idea with introducing distributed state, but I would suggest something easier, faster, and cheaper than a relational DB. I’d suggest Valkey, formerly known as redis. Or even the DynamoDBLockClient
Modern implies "before 1980's" as modernism was an era before post-modernism, and modernism typically is thought to have happened between1950's and 1970's, and post-modernism somewhere in 1980's and 1990's, depending on locale and culture. 🙃 Thank you for the presentation, learned some contemporary Java things!
It's funny to see an obviously non-native English speaker incorrectly policing the language. Modern means current, present-day. No native English speaker would interpret it as you did. Contemporary is barely used in common speech. Modern is the right word.
@GOTO, One of the Finest Conference channels which is Highly underrated>> Any current or Future Backend Java Engineers must Follow to Learn New Features n System Design concepts
I think you've missed the point. He talks at the start about showcasing java features... the application isn't the point so my guess is he won't ever be doing the "same" in C#. Why would he? He's a Java advocate.
8:32 Set.copyOf() doesn't solve an issue of somebody calling clear on a collection that is part of your record. For that 3rd guy nothing is changed. 9:30 default values for arguments solve that issue in Scala, with way less code... ADTs spread among different files... OMG
@@kostian8354 Yes. What copyOf does is is it gives you a new Set that is a copy of (i.e. contains the same values) as the original Collection. And (same as Set.of) Sets returned by Set.copyOf are immutable.
I've been using Java for a couple of years now - professionally too. The best (Spring & Spring boot) and the worst (JavaFX, jpms, deprecated java 7 libs... etc) parts - IMO. At this point, having explored different technologies in the meantime (GoLang, Express, C#, React, Solid, Svelte, Zig, Docker ... some others I've probably forgotten), Java feels like the embodiment of a sunken cost fallicy. Even when used well, and made look easy, like you do, its just... mid. Not bad. Not good. Just mid. There is nothing, that Java does, be it native language feature or part of the standard lib, that is not outdone by multiple other related technologies - besides reflections. That is one thing that I miss at times (and even that Zig does it infinetly better too). I don't regret the many hundred hours I've spend in Java so far, for if I hadn't, I wouldn't be able to appreciate just how far the rest of the field has come in the meantime.
The best practical example of usage for sealed classes, I really like presentation and live coding format, thank you Nicolai
Nice to see that the Scala features now find the way into Java. 10 years later :).
Excellent presentation. I’m dying to see all the potential implementations of StructuredTaskScope to make our applications beautifully simple and rich!
This talks is excellent and Nicolai is a brilliant speaker, that's why it has been featured in the last issue of Tech Talks Weekly newsletter 🎉
Congrats!
great speak!
the "launch multi-file programs" feature is huge.
how to solve concurrency issues on a distributed system where two requests are handled at the same time by 2 instances of my app, and they both need to access and write to the same entity in a MongoDB database, so no pessimistic locking available?
@@asterixcode don’t use Mongo?
@@Patrickdaawsome exactly! Should I go with SQL database and implement pessimistic locking then, right?
@@asterixcode you’ve got the right idea with introducing distributed state, but I would suggest something easier, faster, and cheaper than a relational DB.
I’d suggest Valkey, formerly known as redis. Or even the DynamoDBLockClient
Modern implies "before 1980's" as modernism was an era before post-modernism, and modernism typically is thought to have happened between1950's and 1970's, and post-modernism somewhere in 1980's and 1990's, depending on locale and culture. 🙃 Thank you for the presentation, learned some contemporary Java things!
Modern Java is just using the latest features.
That implication is primarily in the context of industrial design, not in the context of writing software.
It's funny to see an obviously non-native English speaker incorrectly policing the language. Modern means current, present-day. No native English speaker would interpret it as you did. Contemporary is barely used in common speech. Modern is the right word.
@GOTO, One of the Finest Conference channels which is Highly underrated>>
Any current or Future Backend Java Engineers must Follow to Learn New Features n System Design concepts
underrated with 1 million of subscribers really close! reallyyy
Please make for C# too!
I think you've missed the point. He talks at the start about showcasing java features... the application isn't the point so my guess is he won't ever be doing the "same" in C#. Why would he? He's a Java advocate.
8:32
Set.copyOf() doesn't solve an issue of somebody calling clear on a collection that is part of your record. For that 3rd guy nothing is changed.
9:30 default values for arguments solve that issue in Scala, with way less code...
ADTs spread among different files... OMG
@@dario-viva so when you copy mutable Set you get immutable Set ?))
@@kostian8354 Yes. What copyOf does is is it gives you a new Set that is a copy of (i.e. contains the same values) as the original Collection. And (same as Set.of) Sets returned by Set.copyOf are immutable.
Did you even look at the docs?
I've been using Java for a couple of years now - professionally too. The best (Spring & Spring boot) and the worst (JavaFX, jpms, deprecated java 7 libs... etc) parts - IMO.
At this point, having explored different technologies in the meantime (GoLang, Express, C#, React, Solid, Svelte, Zig, Docker ... some others I've probably forgotten), Java feels like the embodiment of a sunken cost fallicy. Even when used well, and made look easy, like you do, its just... mid. Not bad. Not good. Just mid.
There is nothing, that Java does, be it native language feature or part of the standard lib, that is not outdone by multiple other related technologies - besides reflections. That is one thing that I miss at times (and even that Zig does it infinetly better too).
I don't regret the many hundred hours I've spend in Java so far, for if I hadn't, I wouldn't be able to appreciate just how far the rest of the field has come in the meantime.
Great presentation, but man, it just proves my point: Java is still way behind Scala, even the latest versions. Not to mention Scala 3!
Wow, Java's thread and task libraries are archaic compared to C#. Doesn't even have basic dynamic hardware thread use.
How are virtual threads and structured concurrency archaic?
Async await is worse than virtual threads