Well, I guess an introduction is in order. My name is Erik R. Yverling, I’m 27 years old and live outside Stockholm with my wonderful wife and our two lolcats. I’m also the new guy at SmartBear Sweden and am working as a developer in the soapUI team since mid-August.
I always wanted to go to a big developer conference, so when I and my two awesome developer colleagues from the loadUI team, Dain Nilsson and Henrik Olsson, were asked if we wanted to go to this year’s Devoxx conference I was very excited.
Devoxx is the largest vendor independent Java conference in the world and is hosted in Antwerp, Belgium. These are the highlights from our trip.
soapUI Team Departs
We travelled on Tuesday from Stockholm-Arlanda Airport to Brussels Airport in a fine piece of Flight Engineering, Boeing 737-600. The flight time was approximately one hour and during that time I took the opportunity to read the Kindle version of the classic Design patterns by the Gang of Four on my Android tablet.
Belgium? Chocolate and Beer, Right?
After a nice dinner at De Perrdestal we went out to find some of that famous Belgian beer, and found a local pub serving the best Westmalle I ever had at half the price as home. So there we were drinking genuine Belgian beer and discussing programming. Life was sweet.
Current State of Java SE
After a wonderful hotel breakfast we took a taxi out to the Metropolis movie complex where Devoxx was held. We all were impressed by the size of the area and concluded that people of Antwerp must really love going to the movies
As we walked to the theater where the Senior Director of Product management, and also fellow countryman, Henrik Ståhl was presenting the current state of Java SE, it was painfully obvious what kind of conference noobs we were. The theater was packed and we had to sit on the floor, but that didn’t matter much since the floor was rather comfy and Henrik’s speech was pretty interesting. With the new release of Java 7 and the upcoming release of Java 8 there was much to be excited about.
JavaFX 2.0 - The New Swing
After the opening keynotes we rushed over to the next session: Practical Experience Building JavaFX Rich Clients. This time we got great seats and it felt pretty good to sink down in a movie chair after almost two hours on the floor. The session was a cool demonstration of the powerful capabilities of JavaFX 2.0, such as color inheritance using CSS, drill down charts and loading widgets. We also attended a Birds of a Feather session during the evening where representatives from Oracle sat down and discussed JavaFX 2.0 with interested attendees. We all thought it was pretty cool that Oracle had taken somewhat of a community oriented approach and we also were told that JavaFX 2.0 is going to be the main focus when it comes to Java UI libraries. This was an important message to us since we use JavaFX 1.3 in loadUI and god ol’ Swing in soapUI. It was also going to be possible to mix Swing and JavaFX 2.0, which means that soapUI could get some of that Java FX 2.0 love in the future.
The Next-generation of Java
A while back we were still running our elegant code on single core processors, but with the big market introduction of multi core processors during the last couple of years parallelism has become a central issue to be able to fully take advantage of all those cores waiting for stuff to do. Parallelism could in fact be considered to be the main theme of this year’s Devoxx and also the next-generation of Java called Java 8. This release will finally bring some of those languages and library features that we in the Java camp has been longing for, such as closures and virtual extension methods. Both of these features were presented in project Lambda which also strives for providing a large set of parallelized versions of existing Java libraries using the new virtual extension method feature.
Oracle also presented project Jigsaw which intention is to create a standard module system for the Java SE platform. This means that you could lose some pounds of unnecessary library code from your JRE as Java SE will be broken down into smaller sub set. You will also be able to define your own Java modules which could even be converted into native packaging formats such as rpm or deb. Nice stuff!
Groovy 2.0 - Script Validation
As you may know, Groovy is used both in soapUI and loadUI to create powerful scripts for your test cases and your own load testing components. The Groovy session we attended was given by none other than the creator of Groovy himself, Guillaume LaForge. The main new features of Groovy 2.0 are optional static type checking which we thought would be of great interest to us as it makes it possible to validate user scripts and provide better feedback to users when there is something funny going on in their scripts. Another feature that could benefit us was the ability to run scripts with constraints. These constraints could be a set of library calls such as System.exit() or other parts that you want to protect. This could help us create more of a sandboxed environment for our user scripts, thus making it harder for our users to do wrong and easier to do right.
The Rules of Good UI Design
The next morning we felt a bit more confident in getting around in Antwerp (thank you Google Maps) so we decided to take the tram. Being uncertain if the sign in the middle of the tram meant stop or was indicating the final destination we finally managed to arrive successfully at the Metropolis.
As a passionate programmer, you seldom get tired of talking about programming paradigms and language design, but there is of course more to software development than just code. Design for example. We were attending a great session by Joe Nuxoll, a UI designer at Tesla motors and also a member of the Java Posse, who’s live podcast we were also attending, but that’s a whole other story. Anyway, Joe Nuxoll pointed out a couple of so called golden eggs for making better user interfaces. One of the golden eggs was that the user interface should not be dependent of the underlying data structure. Another was the opposite; user interface should not be dependent of the underlying data structure. Nuxoll also pointed out the importance of making many prototypes and to also throw them away often.
What's in Store for Scala?
After the UI session we attended another session about the current state of Scala and its surrounding frameworks. Scala is a statically typed, non-verbose and scalable language for the JVM which already has much of the features that Java 8 is introducing. During this session the web application framework Play was presented together with the event-driven and Actors-modeled platform Akka. We also attended a session about Atmosphere which is a WebSocket framework for the JVM where you could use Scala among other languages. After the session we talked a bit about how we could create support for WebSockets in our product since it’s clearly becoming more and more popular. We also agreed that Scala is a very cool and powerful language.
Devoxx Party at Noxx on the Docks
After a long day of great and inspiring talks we ate at some local pizza place and then walked down to Noxx, a night club down at the docks that had been mostly reserved for Devoxx attendees. Even though it was pretty cool to drink beer and dance with the brilliant speakers from earlier that day, we took that tram home after finishing our two free drinks as the dance hall reminded us more of a laser tag arena than a night club. ?
After some more sessions the final day, including a great a talk about the good, bad and ugly parts of Java by Josua Bloch from Google, we went to the airport full of impressions and new knowledge. I couldn’t wait to get home and try out all of these cool new things and think about how to use them to make soapUI an even greater product. Conferences rule!
You can find me on Twitter, Google+, LinkedIn or erik.r.yverling.se