Parsing and evaluating expressions in #Java doesn’t have to be messy. Balkrishna Rawool shows how to simplify expression trees using ADTs and #PatternMatching. Clean, idiomatic, and readable.

Read the full Guide: https://javapro.io/2025/11/11/algebraic-data-types-and-pattern-matching-java/

#Java #ProjectAmber #CleanCode #JAVAPRO

💡 Dive into our in-depth analysis of #JDK26 and get a sneak peek at what's coming in #JDK27!

Explore the latest features, improvements, and future plans across #ProjectAmber, #ProjectLoom, #ProjectPanama, #ProjectLeyden & #ProjectValhalla.

Read more on #InfoQ 👉 https://bit.ly/4auF0w0

#Java #JDK #SoftwareDevelopment

#ProjectAmber just introduced a new design proposal for Carrier Classes & Carrier Interfaces.

The goal? Extend record-style modeling to more Java types - without losing concise state declarations, derived methods, or pattern matching.

Read more ⇨ https://bit.ly/46jYPn2

#Java #InfoQ #OpenJDK #SoftwareDevelopment

Are you using parallelStream() without profiling? Or still writing Collectors.toList() manually? #JavaStreams have evolved—Mihaela Gheorghe-Roman breaks down what modern #Java offers you from 8 to 24: https://javapro.io/2025/11/13/java-streams-evolution-from-java-8-to-today/

@openjdk #ProjectAmber #Java25 #JavaStreams #JDK24

Still coupling logic and data in your #Java code? #DataOrientedProgramming with records and #PatternMatching lets you model valid states cleanly and move logic out of your types.

Learn how, step-by-step with @BalaRawool: https://javapro.io/2025/11/11/writing-readable-code-with-algebraic-data-types-and-pattern-matching-in-java/

#ProjectAmber #CleanCode

Complex expressions buried in nested code? #Java’s sealed types + #PatternMatching make business logic more readable & testable. @BalaRawool walks through a real-world example.

Read his #JAVAPRO article: https://javapro.io/2025/11/11/writing-readable-code-with-algebraic-data-types-and-pattern-matching-in-java/

#ProjectAmber #CleanCode #DataOrientedProgramming

Still writing verbose loops in #Java? Streams have evolved far beyond map() & filter()—from takeWhile() to mapMulti() to gather(). Mihaela Gheorghe-Roman traces the full journey from Java 8 to 24.

Stay current: https://javapro.io/2025/11/13/java-streams-evolution-from-java-8-to-today/

@openjdk #ProjectAmber #Java25 #JavaStreams

How do you make #Java code more readable and robust? With Algebraic Data Types (records + sealed types) and #PatternMatching, you can encode valid state and simplify logic—without extra libraries.

Full guide by Balkrishna Rawool: https://javapro.io/2025/11/11/writing-readable-code-with-algebraic-data-types-and-pattern-matching-in-java/

#ProjectAmber #CleanCode

"#Java is too verbose", Part Deux

I have to admit that I had not paid too much attention to JEP 512 until now; after all, I'm not really the target audience.

But then this happened: my 13yo came back from school and told me that since he had been studying Pythagoras' theorem earlier that day, he decided to kill time in between classes by writing a small program on his Casio calculator to check if a triangle was right-angled or not. (I know, I know, that kid's well on his way to become a huge nerd, just like dear old Dad...).
But then he wasn't satisfied with how limiting the calculator was, so he decided to redo his program on his computer using Scratch once he was back at home.

While he was busy hacking away, that got me thinking "hey, wasn't there a JEP that aimed at making java code easier to understand for beginners?", and so I quickly put together my own java-based version, with one explicit goal: making it as easy as possible to explain to a 13yo.
And I have to say I'm pretty impressed with the result! The code below is 100% legal java code: just save it into a file and run java myFile to run it. Period. Absolutely nothing more is required.

Sure, it's not going to win over those with severe curly brackets allergies or those for which trailing semicolons are an insurmontable chore, but IMO, it is genuinely accessible to a budding programmer.
Well done, #projectAmber!

Always a pleasure to listen to @JosePaumard speaking about changes in #Java after JDK21❣️

#ProjectAmber #ProjectLoom #JDK25 #JavaZone2025