I’ve been lucky enough to be in San Francisco this week to cover the JavaOne conference.  Today (Monday 23rd) was the first real day of conference proceedings and it was a very full day.  Sessions started 8.30am and ran until 8.15pm with usually half an hour to an hour break in between.  In this post I’ll focus on the best sessions of today as well as some of the logistics of being an attendee at a big conference.

Planning Sessions and Getting Around

As I mentioned in my last post, there are over 500 sessions at JavaOne, with many concurrent tracks. You may be wondering how as an attendee, one can schedule anything at all.  Thankfully Oracle made available a Schedule Builder webapp that attendees had access to in the weeks leading up to JavaOne.  To help plan sessions it allows you to mark out your favourites and register for sessions.  It prompts you when you double book and forces to drop one of the clashing sessions (this is inevitable and happened a number of times when planning this).  It also advises when the rooms are full and lets you join a wait-list, also preventing you from locking down that space with something else.

The Schedule Builder takes an impossible task of planning your sessions to a still involved but much easier event. The app also has iPad, iOS and Android versions too which help see not only whats on, but whats coming up and any changes.

You may also remember I mentioned that JavaOne is spaced out over three hotels.  I was a little concerned by this. Apparently in the good ol’ days it wasn’t like this and everything was under one roof at the Moscone Centre.  Now there is the potential that if you don’t like a session you are in, you have to travel to another building.  It also means that if sessions are too close together you have to hustle to make it to another venue.

Thankfully this wasn’t as problematic as I first thought. The hotels are literally all across the road from one another. There were a couple of times in the evening when the session I thought I would like turned out to be different, and I voted with my feet to find a new one.  Using the Schedule Builder app, I was able to see what else was on quite easily, but I was put off when the backup sessions were in a different building. You now are faced with a decision about the risk of moving – will I have missed too much in the 5 minutes I need to travel there, in addition to the few minutes I’ve already spent here realising that this isn’t going to be the session for me?   The problem is also mitigated by the fact that the organisers are generally pretty smart and have put similar interests or sessions from the same tracks within closer physical locality.  To give you an example, I stayed in the Hilton for most of the day and it wasn’t until the evening that I moved to the Parc55 for some BigData and NoSQL sessions.


So with great tools like the SessionBuilder and identifying the proximity wasn’t going to be too big an issue, what sessions did I get to?

The Road to Lambda

The day started with a great session by Brian Goetz, Lambdas project lead. Lambdas are the big sticking point these days.  What seemed like an obscure feature 10 years ago is now the why didn’t you have this already feature today.  Its the major feature of Java 8 and the train wasnt going to leave until it was done.   Apart from taking a look at all the features that come with Lambdas, Brian discussed the reasonings behind why they implemented lambda the way that they did based on the issues they discovered as they went on the journey.

Jump starting Lambda tutorial

The next session was a Lambda tutorial run by Stuart Marks.  It was a packed room and featured a clever way of using the twitter hashtag #JumpStartingLambdas for the audience to ask questions where fellow Oracle employee Mike Digou would answer the questions.  The tutorial covered a simple case of an application that forms part of an autodialer and needs to find candidate people to call.  As the requirements changed, Stuart used the opportunity to introduce some of the different types of functional constructs in Java 8 such as Predicates, Functions and Consumers.  It was a very well paced tutorial I thought as it gave everyone enough time at the start to pick up what was going on before moving on to cover some of the more cooler parts of the implementation as well as some of the gotchas.  The demo also covered Functional Interfaces, Streams, Terminal Operations, Optional, Parallelism and Reduction and Collections.

Project Nashorn

I had to leave early to make a session by Nashorn project lead Jim Laskey talking about the new Javascript engine for the JVM.  It uses Invoke Dynamic and dynalink as a means to interop with Java objects so that you can call Java methods from javascript and vice versa.  Jim gave demo’s of using JavaFX and Concurrency libraries from Javascript. Like other polyglot languages on the JVM, Javascript offers similar shorthands for interacting with Java code such as implied getters and setters and less boilerplate around anonymous inner function calls that polyglot developers would be used to.

I think the most exciting part of Nashorn though is the node.js implementation that started shipping in beta form yesterday, Project Avatar.   Its a ‘100% compatible’ node.js implementation that runs on Nashorn (new Javascript scripting engine in Java8). It uses Java libraries in addition to being able to run the node ones.
You can download a Java8 preview build and avatar and give it a try. The tutorial shows getting an avatar object to do all the node like things, registering restful endpoints in a node like way.


Redline Smalltalk

One of the quirkier talks was definitely James Ladd’s – building a compiler with the JVM talk.  James Ladd is a fellow Melbournite who has developed a Smalltalk implementation that runs on the JVM.  No matter who I’ve seen him approach, it almost universally draws acceptance from the older developers who had a fond place in their hearts for Smalltalk and glad to see it available on the JVM platform, as an open source project.

James used his massive marketing budget coffers to create a life size version of Redline Smalltalks mascot.  And because he wanted to trust the wearing of the mascot to someone highly skilled, he decided that he should don the suit himself, much to the humour and delight of the audience.

20130923_150220 20130923_150131







Java Brain Reader

The final talk worth mentioning was title ‘Java Brain Reader’.  This was the talk of a couple of academic projects that one JCP awards this year.  The presentation went through the use of the neurosky headset, a BCI interface and some neural mind mapping learning software built under a Netbeans RCP to learn brain wave patterns for different actions a user was thinking.  There is still a long way to go in this space before Java (or any platform) can read what we are thinking but the work done here showed a lot of co-operation amongst academics that can implement their own different versions of mappers without a common way to interface with others or compare their performance against other scenarios.  The end result a way for machines to help figure out the AI that picks up our thoughts of left and right and sifting through all the other noise that fits in our skulls.

More to come

They were the best of Monday’s sessions.  Look forward to giving you my next update.

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:

WordPress.com Logo

You are commenting using your WordPress.com 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