Posts by Year

2024

Java 23 Has Arrived, And It Brings a Truckload of Changes

41 minute read ◦ posted on 17 Sep 2024 by Hanno Embregts .

Java 23 has arrived, and it brings a truckload of changes! For example, in JavaDoc, ‘Markdown documentation comments’ are now supported. On top of that, a lot of features have been re-previewed and there are also two brand-new ones - module import declarations and primitive type patterns. This post has all the info!

How Java Keeps Reinventing Itself

4 minute read ◦ posted on 30 May 2024 by Hanno Embregts .

IT professionals sometimes get the impression that Java is a technically less advanced or outdated languange. But it turns out the exact opposite is true. I was interviewed on this topic by Info Support’s AI interviewer ‘Anne’. Keep reading to find out why Java is still relevant in this day and age.

Java 22 Is Here, And It’s Ready To Rock

40 minute read ◦ posted on 19 Mar 2024 by Hanno Embregts .

Java 22 is here, and it’s ready to rock! Boasting a set of 12 JEPs, it finalizes features like ‘unnamed variables and patterns’ and previews new ones like ‘statements before super(…)’ and ‘stream gatherers’. This post has all the info!

Back to Top ↑

2023

Java 21 is Available Today, And It’s Quite the Update

45 minute read ◦ posted on 19 Sep 2023 by Hanno Embregts .

Java 21 is available today, and it’s quite the update. It brings us 15 (!) JEPS, finalizing features like Record Patterns & Virtual Threads and previewing new ones like String Templates. This blog post has all the info!

It’s Java 20 Release Day! Here’s What’s New

22 minute read ◦ posted on 21 Mar 2023 by Hanno Embregts .

This will be a good day, because it’s Java 20 release day! It’s been six months since Java 19 was released, and so it’s time for another fresh wave of Java features. This post will take you on a tour through all JEPs that come with this release and give you a brief introduction of each one of them. Where applicable the differences with Java 19 are highlighted and a few typical use cases are provided, so that you’ll be more than ready to use these features after you’ve finished reading!

Back to Top ↑

2022

Exploring sustainability in tech (without the guilt-trips)

7 minute read ◦ posted on 14 Nov 2022 by Hanno Embregts , Julien Lengrand-Lambert , Jan-Hendrik Kuperus & Jan Ouwens .

Climate change is a thing that affects us all. As developers, we are in a unique position to help do something about this. After all, the whole world runs on computers these days, and computers consume energy. We, developers, program these computers, and the decisions that we make have consequences beyond the business domain we code for. Also, as employed people living in Europe or North-America, we belong to the top 10% of richest people on the planet.

Eleven crazy learnings from the Java 11 certification: functional interfaces actually CAN contain multiple abstract methods (10/11)

3 minute read ◦ posted on 30 Aug 2022 by Hanno Embregts .

In the summer of 2021, I got my Java 11 certification. I expected it to be quite a breeze, because I’d been a Java developer for 14 years and surely I should have seen it all by now, right? Turned out I was very wrong. I came across lots of things that I didn’t even know were possible with Java. In this weekly blog series I will go through 11 of these ‘crazy learnings’ that surprised me the most, even as an experienced developer. We’re diving into functional interfaces today.

Eleven crazy learnings from the Java 11 certification: wrapper objects - some are more equal than others (9/11)

3 minute read ◦ posted on 23 Aug 2022 by Hanno Embregts .

In the summer of 2021, I got my Java 11 certification. I expected it to be quite a breeze, because I’d been a Java developer for 14 years and surely I should have seen it all by now, right? Turned out I was very wrong. I came across lots of things that I didn’t even know were possible with Java. In this weekly blog series I will go through 11 of these ‘crazy learnings’ that surprised me the most, even as an experienced developer. Today is about equality when you’re dealing with wrapper objects.

Eleven crazy learnings from the Java 11 certification: equality in cloned arrays (8/11)

4 minute read ◦ posted on 16 Aug 2022 by Hanno Embregts .

In the summer of 2021, I got my Java 11 certification. I expected it to be quite a breeze, because I’d been a Java developer for 14 years and surely I should have seen it all by now, right? Turned out I was very wrong. I came across lots of things that I didn’t even know were possible with Java. In this weekly blog series I will go through 11 of these ‘crazy learnings’ that surprised me the most, even as an experienced developer. We’ll dive into array equality today.

Eleven crazy learnings from the Java 11 certification: the crazy stuff that is allowed in switch statements (7/11)

3 minute read ◦ posted on 09 Aug 2022 by Hanno Embregts .

In the summer of 2021, I got my Java 11 certification. I expected it to be quite a breeze, because I’d been a Java developer for 14 years and surely I should have seen it all by now, right? Turned out I was very wrong. I came across lots of things that I didn’t even know were possible with Java. In this weekly blog series I will go through 11 of these ‘crazy learnings’ that surprised me the most, even as an experienced developer. Today we’ll look at the crazy stuff that is allowed in switch statements.

Eleven crazy learnings from the Java 11 certification: method overloading priorities (6/11)

4 minute read ◦ posted on 02 Aug 2022 by Hanno Embregts .

In the summer of 2021, I got my Java 11 certification. I expected it to be quite a breeze, because I’d been a Java developer for 14 years and surely I should have seen it all by now, right? Turned out I was very wrong. I came across lots of things that I didn’t even know were possible with Java. In this weekly blog series I will go through 11 of these ‘crazy learnings’ that surprised me the most, even as an experienced developer. This week’s blog is about about method overloading priorities.

Eleven crazy learnings from the Java 11 certification: division by zero (5/11)

2 minute read ◦ posted on 26 Jul 2022 by Hanno Embregts .

In the summer of 2021, I got my Java 11 certification. I expected it to be quite a breeze, because I’d been a Java developer for 14 years and surely I should have seen it all by now, right? Turned out I was very wrong. I came across lots of things that I didn’t even know were possible with Java. In this weekly blog series I will go through 11 of these ‘crazy learnings’ that surprised me the most, even as an experienced developer. This week we’ll get mathematical as we focus on dividing by zero in Java.

Eleven crazy learnings from the Java 11 certification: anonymous subclasses in enums (4/11)

4 minute read ◦ posted on 19 Jul 2022 by Hanno Embregts .

In the summer of 2021, I got my Java 11 certification. I expected it to be quite a breeze, because I’d been a Java developer for 14 years and surely I should have seen it all by now, right? Turned out I was very wrong. I came across lots of things that I didn’t even know were possible with Java. In this weekly blog series I will go through 11 of these ‘crazy learnings’ that surprised me the most, even as an experienced developer. This week we’ll focus on anonymous subclasses in enums.

Eleven crazy learnings from the Java 11 certification: accessing static interface methods (3/11)

3 minute read ◦ posted on 12 Jul 2022 by Hanno Embregts .

In the summer of 2021, I got my Java 11 certification. I expected it to be quite a breeze, because I’d been a Java developer for 14 years and surely I should have seen it all by now, right? Turned out I was very wrong. I came across lots of things that I didn’t even know were possible with Java. In this weekly blog series I will go through 11 of these ‘crazy learnings’ that surprised me the most, even as an experienced developer. This week is about accessing static interface methods.

Eleven crazy learnings from the Java 11 certification: stream elements should implement Comparable (2/11)

3 minute read ◦ posted on 05 Jul 2022 by Hanno Embregts .

In the summer of 2021, I got my Java 11 certification. I expected it to be quite a breeze, because I’d been a Java developer for 14 years and surely I should have seen it all by now, right? Turned out I was very wrong. I came across lots of things that I didn’t even know were possible with Java. In this weekly blog series I will go through 11 of these ‘crazy learnings’ that surprised me the most, even as an experienced developer. This week we dive into stream elements.

Eleven crazy learnings from the Java 11 certification: a few freaky array declarations (1/11)

2 minute read ◦ posted on 28 Jun 2022 by Hanno Embregts .

In the summer of 2021, I got my Java 11 certification. I expected it to be quite a breeze, because I’d been a Java developer for 14 years and surely I should have seen it all by now, right? Turned out I was very wrong. I came across lots of things that I didn’t even know were possible with Java. In this weekly blog series I will go through 11 of these ‘crazy learnings’ that surprised me the most, even as an experienced developer. We start off with a few freaky array declarations.

Do you know Java? Care to prove it?

less than 1 minute read ◦ posted on 11 Feb 2022 by Hanno Embregts , Steve Poole & Martijn Verburg .

Here’s your chance to share your knowledge about Java, the JVM and all its offshoots, side alleys, traps, pitfalls, amazing capabilities and history. Know a cool fact about Kotlin? Got the low down on what colour James Gosling’s car was when he invented Java? Can you explain how to use caching in Spring?

Back to Top ↑

2021

Explaining software development to a class of 6-year olds

4 minute read ◦ posted on 17 Nov 2021 by Hanno Embregts .

My daughter is 6 years old, and she and her classmates are currently learning about various professions. Her teacher asked the kids’ parents whether they would want to come into the classroom and explain their profession in 15 minutes or so. I really liked the idea of inspiring these bright young minds with some fun stories about software development, so I applied and prepared a lesson. Which turned out to be a lot harder than I thought it would be.

Pattern matching will make Java an even more powerful language

8 minute read ◦ posted on 10 Jun 2021 by Hanno Embregts & Peter Wessels .

We’ve known lambdas and streams since Java 8, and they’ve made Java a more powerful language. In the next few versions of Java, even more features that originated in functional languages will be added, one of which is pattern matching. It provides an elegant way to apply conditions to certain aspects of an object. We set out to investigate the possibilities that were introduced in JEP 305 (‘Pattern Matching for instanceof’) and how the pattern matching roadmap will make Java an even more powerful language.

Back to Top ↑

2020

Congratulations Java, and many happy returns!

1 minute read ◦ posted on 23 May 2020 by Hanno Embregts .

Today is Java’s 25th birthday! On the 23rd of May 1995 the language was introduced at the SunWorld conference, in a time where desktop applications reigned supreme and the internet was still in its infancy.

Back to Top ↑

2019

Ethics in Software Development

7 minute read ◦ posted on 10 Jan 2019 by Hanno Embregts .

I was interviewed by Peter Kofler on ethics in software development. He asked me some questions and I answered them as follows. A bit of it is about politics, another bit is about religion, but it is mainly about being a responsible software developer. So this time I mixed my personal and professional opinions. Still, I hope it makes for an interesting read!

Back to Top ↑

2016

Migrating 25K lines of build scripting to Gradle

7 minute read ◦ posted on 23 Sep 2016 by Hanno Embregts .

Software developers are not particularly keen on maintaining build scripts. Sure, they will do their part in making things work and they’ll even have a go at optimizing the most necessary parts. But they prefer to spend their time writing production code using a ‘real language’, because they feel it better supports their desire for maintainability, flexibility and elegance. That old project that’s been gathering dust for ages and relies on thousands lines of Ant code is a case in point.

Back to Top ↑