While Java’s strict type system is a great help for avoiding programming errors, it also takes away some of the flexibility that developers appreciate when using dynamic languages.By using runtime code generation, it is possible to bring back some of this flexibility back to the Java virtual machine. For this reason, runtime code generation is used by many state-of-the-art Java frameworks for implementing POJO-centric APIs but it also opens the door for assembling more modular applications. This presentation offers an introduction to the complex of runtime code generation and its use on the Java platform. Furthermore, it discusses the up- and downsides of several code geeration libraries such as ASM, Javassist, cglib and Byte Buddy.
Rafael works as a software engineer at Bouvet in Oslo. He is a proponent of static typing and a JVM enthusiast with particular interests in code instrumentation, functional programming and the Scala language. Rafael blogs about software development and regularly presents at conferences. When coding outside of his work place, Rafael often works on Byte Buddy, a library for simple runtime code generation for the Java virtual machine.