Last Tuesday was the first edition of JVMCON. This conference has a special programme committee: its audience. When the Call for Papers closed, everyone who had a ticket could see the submitted papers. Only, they could not see who submitted the paper - which let them focus on the papers themselves. Out of almost 180 papers, they had to select 13…

And guess what: one of them was mine! I presented my talk for the early birds, and there were quite a lot of them! The room was pretty much packed, and there was a lot of questions and remarks afterwards. That surprised me a bit, since I usually do not experience a lot of interaction with the audience.

Writing a DSL for the Dense with Scala

After the opening, I attended a session by Jan-Hendrik Kuperus and Nathan Perdijk. Its title was Writing a DSL for the Dense with Scala. A Domain Specific Language (DSL) is a language for a specific (business) domain. Such a language makes it easier for non-technicians to collaborate on software solutions. Previously, I had read DSLs in Action and I was interested in designing and using DSL’s. First, Jan-Hendrik gave a theoretical explanation on DSL’s and some Scala features. Next, Nathan showed us how to design a DSL by yourself. Their example covered a simple domain, so the focus layed on the process of building the DSL. The urgent warning

Don’t make a DSL just because you can.

could not prevent I left the room with an irresistable urge to start working on my own DSL. I just need to find a problem to address… 😉

Don’t hack the platform? ☠️💣💥

The next session that I attended was Don’t hack the platform? ☠️💣💥 by Jan Ouwens. Jan is the author of EqualsVerifier. While developing that library he encountered some interesting applications of Java. Of course I am not sharing them here, since he urged us

Don’t try this at the office, only at home.

To illustrate that advice, he annotated each hack with a number of emoji’s indicating how dangerous it was. It started out innocent by using Unicode characters and emoji’s in source code, but soon it got worse. Eventually he showed us how to replace methods in java.lang.System with other implementations. Not only did that work inside one JVM, he could even change another JVM on the same machine! Nice story, and a lot of inspiration for April 1st… 🤐 Want to know more? Check out Hanno’s blog on this talk!

What you didn’t know you wanted to know about the JVM

The last session I want to refer to is that of Angelo Sijpt: What you didn’t know you wanted to know about the JVM. The title itself is a challenge - finding a GitHub repository with code samples even more so. He started with a short theoretical introduction on what a virtual machine is. After that, he illustrated this theory on the Java Virtual Machine (JVM) using short code samples, both in Java and C. For all these snippets, he showed the resulting bytecode or machine code and how it related to the source code. In the second half of the talk he explained what garbage collection is en how it works in the JVM. Finally he showed some of the earlier samples on another JVM, the Dalvik VM. All in all a very informative session, where Angelo explained this complex matter in a very accessible way.

Conclusion

I’m looking back on a very intensive and informative day. The organisation was very good, and the atmosphere was excellent. I’m looking forward to the next edition…

Cross-posted (in Dutch) to blogs.infosupport.com.