Java
Hey, there are two major Java versions released every year! We don’t have to wait 3 years or so for new features anymore. Isn’t that cool? 😉
Java was supposed “to be slow”. However, Java turns out to evolve so fast, that next releases aren’t just version bumps, but might significantly change the rules of the game. That’s a good reason to check out what’s new in Java.
To name a few changes:
“You can never understand one language until you understand at least two.” – Geoffrey Willans
For years, I’ve been developing mostly in JVM languages. Sometimes in other C-derived languages, which was both cool and easy.
A few months ago (due to a career shift) I had to learn Go rapidly. While technically Go has keywords looking similar to C, many things are simply different and even unheard of in C-based OOP languages.
Modern Java is really awesome when it comes to “Hello, World!” demos. It’s also cool for a sophisticated systems and algorithms, provided their authors write code which obeys a few fairly simple contracts and avoids obvious traps.
There are a few mantras regarding recent features of modern Java, such as:
records can replace JavaBeans everywhere you never need to write hashCode() for records pattern matching with instanceof is the best tool for equals() just ignore --illegal-access and set it to permit synchronize (new Long(42)) is the best for monitoring and so on.
Another (half a) year has passed, another major Java™ version has been released. Java was supposed “to be slow”. However, Java turns out to evolve so fast, that next releases aren’t just version bumps, but might significantly change the rules of the game. That’s a good reason to check out what’s new in Java. We’re going to cover:
Records, where and how to use them, apart from DTO/VO Pattern matching with instanceof A.
What do I think about Lombok?
I think it’s a nice island, and I wish to visit it one day.
What do I think about Project Lombok?
Well, I’ve been asked this question so many times, I’ve decided to write this post. Its main purpose is to be able to paste the link and back up, because the (yet another) discussion might be so intensive, that fists will be shaken and heads will roll… There are three assumptions here:
Another (half a) year has passed, another major Java™ version has been released. Java was supposed “to be slow”. However, Java turns out to evolve so fast, that next releases aren’t just version bumps, but might significantly change the rules of the game. That’s a good reason to check out what’s new in Java. We’re going to cover:
Records, where and how to use them, apart from DTO/VO Pattern matching with instanceof A.
I had a great pleasure to take part in the JAVIPS online 2020.
In the dark ages, we had to wait for 3-4 years to see the new Java version with some new features. Now there are two major releases every year! Can we benefit from the new features before the next LTS release?
We don’t have to wait 3 years or so for new features any more. Isn’t that cool? 😉 So… you’d like to check what has happened since Java 11? Record types?
Another (half a) year has passed, another major Java™ version has been released. Java was supposed “to be slow”. However, Java turns out to evolve so fast, that next releases aren’t just version bumps, but might significantly change the game rules. That’s a good reason for another deep dive in Java. We’re going to cover:
Production ready GCs: ZGC and Shenandoah, if you don’t like ice ages Text blocks, which make Strings easy to declare also for non-liners Pattern matching with instanceof A.
Java 14 brought Records as one of the preview features. For many it was reasonable to say “no more JavaBeans code generation” or “Lombok is dead”. Is that really the case? What one can do with records and what can’t? What about reflection and serialization?
\
This talk has been presented at e.g. AllTheTalks.online, CodeCamp Romania, JPoint.