Making Java more dynamic


Rafael Winterhalter
Scienta, Software consultant

Rafael works as a software consultant in Oslo, Norway. He is a proponent of static typing and a JVM enthusiast with a particular interest in code instrumentation, concurrency, and functional programming. Rafael blogs about software development regularly present at conferences and were pronounced a JavaOne Rock Star. When coding outside of his workplace, he contributes to a wide range of open-source projects and often works on Byte Buddy, a library for simple runtime code generation for the Java virtual machine. For his work, Rafael received a Duke's Choice award and was elected a Java Champion.

Runtime code generation is widely used by many state-of-the-art Java frameworks for implementing POJO-centric APIs, but it also opens the door to assembling more modular applications. This presentation offers an introduction to runtime code generation and its use on the Java platform. Furthermore, it discusses the upsides and downsides of several code generation libraries such as ASM, Javassist, cglib, and Byte Buddy.

In this talk, I talk about Java instrumentations and my recent work with Byte Buddy and how to apply code instrumentation. An older version of the talk can be found here: