Doorgaan naar de inhoud

Details

We're excited to announce our next meetup July 16th, 2026! As usual, we'll take care of food, drinks and awesome sessions - you just need to bring you ;-)

This meetup will feature two talks aimed at (Java) developers:

  • Jan will start by taking Java annotations to their logical extreme; building a full, Turing-complete programming language out of them.
  • Then Erik will make null part of your type system, so the compiler catches the bug before your users ever do.

All sessions will be presented in English; RSVP now for an evening of learning and fun!
The meetup will be at the OpenValue office in Utrecht (directions: https://route.openvalue.eu), enough free parking spaces available.

Agenda
17:30 Walk in
18:00 Food
18:30 Talk 1 (see below)
19:30 Break
19:45 Talk 2 (see below)
20:45 Drinks

First talk: Building a Bullshit Language
I have created AnnotationScript, a programming language whose syntax is expressed entirely in Java annotations. Yes, you read that right: Java annotations.

WTF!?

The pandemic lockdowns of 2020 did strange things to people. Some people started learning the guitar. Others decided to get in shape. But not me. I decided to take Java annotations to their logical extreme.

I think annotations are over-used in the Java ecosystem: you can use them for dependency injection, handling HTTP requests, and interacting with databases. You can even use them to generate code in various ways. But for some reason, nobody has actually used them to implement a full-blown, Turing-complete programming language like LISP. Until now.

Do you want to know about the weird restrictions that Java annotations have? Do you want to know how you can still abuse them to do something weird like this? Also, do you want to know how easy it is to actually implement LISP? And do you want to know how easy it is to recursively implement LISP in the LISP you just implemented?

You will be amazed. Weirded-out and amazed.

About Jan:
Jan is a senior developer, trainer and speaker at Yoink in the Netherlands; he is interested in back-end systems, functional programming and languages. He has worked in various fields, such as banking, retail, law enforcement, transportation and electron microscopy, but he is perhaps best known for being the author of EqualsVerifier, a tool that rigorously tests Java's equals and hashCode methods in a single line.

Second talk: JSpecify + NullAway - The missing half of your type system
Can findUser return null? If you can't answer that from the signature alone, you've been writing Java without half of your type system for twenty years. An @Nullable annotation that your build ignores is just a comment with extra steps. The fix is to let a checker enforce it, so null becomes part of the type and the compiler breaks at the exact line that would have thrown.

This talk walks through what JSpecify and NullAway add to Java, why every major checker and now Spring Boot 4 and IntelliJ have converged on the same spec, and how to roll it out one package at a time on the codebase you already have. We will turn it on live and watch it catch a real bug.

About Erik:
Erik is a software engineering consultant at OpenValue. His work centres on one thing: enabling other developers to do their best work. That spans backend systems, code quality, and the CI/CD pipelines that hold it all together, but the thread running through all of it is making teams faster and more confident in the code they ship.

He is a big fan of tools and practices that raise the floor for an entire codebase: static analysis, type safety, and the kind of automation that catches mistakes before a human ever has to. He enjoys sharing what he learns through mentoring, writing, and speaking.

Gerelateerde onderwerpen

Software Architecture
New Technology
Java

Misschien vind je dit ook leuk