After a long (yet exhilarating) week the final day started with two keynotes, almost as if Oracle somehow knew that people may not have had much sleep the night before😉

The first by Freescale, an embedded hardware manufacturer who were JavaOne sponsors. They were telling attendees about the importance and direction of the embedded hardware space.  Having signed an agreement with Oracle recently, the two companies aim to be building a lot of Java supporting hardware going forward.  The main reason they want to partner with Oracle is the huge number of Java developers out there who can take advantage of the hardware, as opposed to low level Assembler and C devs.  They stressed it is incredibly important that software developers get involved since hardware on its own can only do so much to be useful without costs skyrocketing.  I would have liked the keynote to feature more resources where developers could go to get started since it was an appeal to Java devs to get involved.

The Community Keynote was next and wrapped up the weeks events nicely. Summarising the ‘side shows’ that took place. There was a Raspberry Pi Hackathon during the week producing 7 hardware projects.  My favourite was Monster Truck as a Service, a web controlled toy monster truck with a raspberry pi mounted on the back tray.

Oracle touched on education, both using Java as a tool to teach programming as well as advising how much they put into community philanthropy, some $2.7 billion dollars a year, towards high school programs, discounts for the certifications, Java Magazine, user groups and a whole host of other programs.

It was also a chance to focus on the slightly less usual usages of Java.  NASA uses Java in controlling the orbit of satellites used to measure the earth’s magnetic field.  Java creator James Gosling finished the keynote with a demonstration of how his company uses Java in their unmanned submersibles.  The crafts are controlled via a JavaFX app that allows the users to direct where they can go, as well as get a stream of what the device sees from its mounted camera.

james gosling


GroovyFX with Dierk König was a great session that showed the GroovyFX DSL.  It returns the original consciseness of JavaFXScript in JFX 1 back to the JVM.  Here Dierk showed how they used JavaFX for an app for a shipping container company, creating a 3D model of all the cargo containers in a shipping yard, along with animated 3D forklifts showing containers move from the yard and onto boats. The thing I found most useful to know was that the JavaFX transformations work equally good in 3D as they do in 2D .

After that was the JavaOne session was the Spring Update.  Pivotal (formerly SpringSource) is taking advantage of Java 8 in Spring 4 and the presenter Josh Long took as through all the other Spring 4.0 changes that are due to continue to make Spring even more concise in future. Some of the more recent Spring Data and Pivotal Hadoop libraries featured as well as Spring Boot as a means to boot MVC applications.

Google Cloud

My final JavaOne session wasn’t even at JavaOne.  Google held a session in their offices in downtown San Francisco to announce some changes to their cloud platform – Google App Engine.  Previously Java apps ran under a security manager that was prevented deployed apps from using some classes in the JDK that were considered insecure (namely image functions in java.awt).  Google talked about how they are introducing unmanaged VMs which let clients install their own software and also not let the security manager kick in.  They also talked about their Datastore NoSQL platforms and GQL language that allow big data stores to be queried as using a SQL like structure that performed amazingly.

A flexible conference to make your own

My JavaOne experience was easily one of the best and biggest conference experiences I’ve had to date.  These days Java has to share the limelight with other up and coming platforms and its refreshing to see that there is still energy in keeping the platform relevant, incorporating modern techniques and practices found elsewhere and developing and refining new ones.   The conference made it for me on three levels, as a Java developer, as a polyglot developer and as a user group lead:

  • As a Java Developer were all the sessions devoted to Lambdas and Nashorn, two of the most important changes to happen to Java 8 and the platform as a whole.
  • As a polyglot developer was the number of sessions dedicated to alternate VM languages and meeting some of the key developers who spend their time advancing JRuby, Groovy, Scala and Clojure plus all the other emerging languages on the platform.
  • And as a JUG leader it afforded an amazing networking opportunity. I leave knowing that MelbJVM has a presence in the greater Java community and puts us closer to the pulse of what changes are taking place.

There were of course some criticisms as well.  If I could highlight the two biggest issues with JavaOne, it would be its size, followed again by its size.

Venues.  Unfortunately, there isn’t one hotel to fit all the JavaOne sessions in. Most sessions I attended were in the Hilton but some sessions were in the nearby Hotel Nikon and Parc55 across the road.  They were all fine hotels and most sessions had adequate room to fit all attendees.  However some sessions needed a 5 minute walk to leave one hotel and get to the next.  There was a half hour gap between sessions and although this was adequate to handle getting to a session you thought you wanted, if you didn’t like a session and wanted to change after it started, it was difficult to consider moving due to the time required to change to another hotel.  To be fair Oracle did mitigate this by putting similar tracks together and so I noticed more of the enterprise focused sessions made their way to one hotel over another.  The other thing about the venues are that they are close to the Tenderloin district of San Francisco, which is known to be the rougher side of town.  Although it was safe there were a lot of homeless people on the nearby blocks surrounding the hotel.

Sessions.  With over 500 sessions over 7 different streams, there were no doubt there were going to be conflicts. I had to make decisions even before the conference started about how I was going to plan my time so that I could cover all the topics that were of interest to myself and my Shine colleagues.  During the conference a few sessions were cancelled however there was usually enough advance notice by way of the mobile apps and email that one could re-plan what they were going to do.  For my next conference, I would consider leaving some time unplanned to allow more time in the exhibition halls, hackathons and other activities going on throughout the day.

I would have liked to attend some sessions on embedded devices, mobile app development, security and JavaEE however it would be impossible to fit these in. I don’t say this as a critique however.  If you are an employer considering sending people next year, I recommend you not send one, but maybe even two or three to increase the coverage across a variety of streams.

JavaOne is well organised, and still relevant for today’s developers. Attendees can make it their own and aren’t forced down a path of ‘the Oracle way’ of doing things which is not what you’d expect from a company as large as Oracle.

If the sessions are going to be as broad as next year, which I assume they will given that Java 8 will have been released to production, then I can highly recommend going again.

Written by Kon Soulianidis

I'm a Senior Consultant at Shine Technologies. JVM languages and technologies are my thing. A JVM developer is never short of choice. In my spare time I run MelbJVM, the Melbourne Java and JVM Users group.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s