Fork us on GitHub

Java One Detailed Trip Report

There is absolutely no way I can recall everything that went ...

Java One Detailed Trip Report

Uh... I'm standing on stage next to James Gosling during rehearsal. Achievement unlocked.
There is absolutely no way I can recall everything that went on in JavaOne but I will try to do my best. I arrived sick and on pretty strong medication for my sinuses so my recollection might be a bit hazy, I did meet great people and had loads of fun.

Before JavaOne started I had a meeting with Arno of the XMLVM project, I was hoping to get more facetime with him and to maybe actually code something together but he was on his way for the rest of the week due to other duties. We discussed some of the issues with XMLVM and the potential of forking vs. merging our changes with the main XMLVM code base. The way things look it seems that we will have to take over XMLVM or at least the iOS/Windows Phone ports.
Later in the conference I had a meeting with Niklas Therning of RoboVM , who like Arno is a great and interesting fellow.
I've been giving a lot of thoughts to XMLVM and RoboVM over the past few months, both have done a lot of work and each has its advantages/disadvantages. I've asked Steve Hannah to run his benchmarks for me on devices with some settings I asked for. Initially it seemed that RoboVM smoked XMLVM but when running on the devices the differences became far less pronounced.
Because of the way Codename One is built, we could potentially just flip a switch to our servers and builds will be performed with RoboVM instead of XMLVM (this would require a lot of work on our side but would be seamless to you). The main holdback for me is my conservative nature. XMLVM is a very safe choice:
  1. We can debug it (although its inconvenient).
  2. We can maintain it, I'm sure we can maintain RoboVM too if Niklas decides to quit but we already know we can maintain XMLVM.
  3. If Apple changes something (e.g. new architecture like the 64 bit they just announced) we can support it instantly since we just use xcode.
So currently we will stick with XMLVM but there are no final decisions here since we could potentially offer both backends as we move forward.

JavaOne started with a great NetBeans party on Saturday night, I met a lot of great people at that party doing some interesting stuff (although its all hazy with the medication and the beer). I met Joonas Lehtinen at that party he is the founder and CEO of vaadin (who now have a great new NetBeans plugin ), which is a name that I saw popup every now and again. I'm a heavy GWT user and love it but it has its limitations, I guess I didn't pay enough attention (too busy with mobile) to notice that vaadin is really a hybrid solution that tries to merge the stuff I liked about Echo2 with the stuff I like about GWT. Very cool! One of the great things about their booth is that they literally had a pile of vaadin books as the giveaway, finally a show giveaway that is actually useful!
Kudos on that one, we should definitely do something like that as well. It also gave me a chance to read something on takeoff and landing (3 connections on the way home) so I was able to finish that pretty hefty book (honestly I skimmed some parts such as installation).
Another cool thing about vaadin is that they are an open source startup that has ±70 employees, really encouraging stuff on a personal level.

On NetBeans day itself I was on my way to Moscone (if you are a long time alumni this alone should provide you the reason to attend NB day, its at Moscone), when I ran into Geertjan . We both walked to the first session of the day entered the room and there sitting and working bright and early is Dr. James Gosling. Alone.
People reading this blog can probably imagine my feeling at that moment, but I'm an entrepreneur first and human being second… I instantly descended on him like locust pitching Codename One and giving him the birds eye view pitch.
He was great and expressed interest, at the end of the day I asked that he would join our advisory board and I have his email so I can continue begging thru that medium! So that alone was a huge thing for me on a personal and professional level.

Gosling demoed his cool robots to the crowd, being a mobile/embedded guy (and having worked on robots as a kid) I really appreciate a lot of the stuff they are doing at liquid robotics . They have amazing visualization tools for controlling these robots which I'm sure will really benefit from Codename One… I promised him that if he accepts my invitation I will personally port everything to Codename One and give him a great tablet UI to play with the robots.

Gosling told the story of the NetBeans acquisition, having worked at Sun I can pretty much attest to the mindset behind it. The gist of the story is that Sun at some point decided they want a "big play" on development tools and didn't have anything good (because they kept killing internal projects so as not to compete with Borland et. al.). So they were looking for a billion dollar acquisition and came across Forte which was making mainframe tools (totally unrelated), Gosling tried to convince management to buy NetBeans but they decided that the price was too low so its not a "big play". Eventually the compromise was to buy both (he put it as: the price for NetBeans was a rounding error on the Forte deal).
Years later Forte is effectively nothing and NetBeans has 1.4m active users.

There were a lot of other great talks that day but frankly I was all jagged up on Gosling and I don't remember anything. I vaguely remember my talk on that day too although from feedback I got it was apparently given. I think I also had a sugar rush from all the great cupcakes Tinu ordered for the event celebrating 15 years of NetBeans (Google is also 15 years old this week, coincidence???).
Nathan Howard wrote a great blog post highlighting the NetBeans plugins that were presented that day.

In the middle of the NetBeans day we left for the keynote (in Moscone again which was cool), there were quite a few technical glitches in the keynote which is pretty shocking. I remember working on keynote presentations when at Sun, the level of work and rehearsal is astounding and having tech issues in that setting is really surprising.

The keynote talked about what a great year this was for Java, I understand the need to get people enthusiastic and excited in a keynote (and be positive) but ignoring the security issues and NSA warnings etc. (within the keynote) is a bit much.
The thing is Oracle actually has a security track in JavaOne now and is doing a lot of things to fix the problems we saw this year, I'd much rather hear "we had a tough year on this front but here is how we are fixing it". The keynote was mostly anemic talking a lot about the embedded effort which is very interesting (the internet of "things"), but there was very little content there that was interesting to me personally as a mobile developer that isn't a mobile HTML developer or an embedded developer.

The day ended with a BoF about contribution to the JDK narrated by Daniel Sachse and Helio Frota, I came because of the description of the BoF which was pretty in line with Daniel's presentation. However, it seems the committee that approved the BoF unified two separate and unrelated talks into one causing some frustration in the audience most of whom came for the description which was taken from Daniels talk.

The next day started with a session of notify your mobile clients by Jay Balunas and Matthias Wessendorf of the JBoss team at RedHat, they talked about sending push messages from the server. The talk was good, geeky and coherent. I think they made the problem seem a bit easier than it really is in the real world, they have an open source project called AeroGear which I will be sure to check out the next time I look at our push code.

Next on Richard and Jasper gave their annual what's new in JavaFX talk which was pretty interesting. To me the biggest announcement by far: one thread!
Up until now if you wanted to touch JavaFX from Swing you had to mix the threads since both have their own EDT. This is pretty similar to Codename One only imagine having 2 EDT's and keeping track of both while you have your own code running. That isn't horrible for simple use cases but in the case of our webkit and graphics implementation this is something that is REALLY hard to get right. They added an experimental flag that effectively unifies both threads into one thread, this should make migrating code way easier. They announced a lot of other stuff from 3d to embedding Swing in FX (up until now you could only embed in the opposite direction).
I grabbed Richard for a chat, we have known each other online for quite a while mostly thru the work I did for SwingX's open source project and in my properties work later on (and now thru Codename One).  We ended up going to lunch with Richard, Jasper and Steve Northover. Apparently they now work very closely with Daniel Blaukopf who is a great friend from the Sun Microsystems WTK team days and one of the smartest people I know. We had some lunch and chatted a bit about FX and Codename One. It was a very interesting conversation but there is no point of going into details at this point in time.

I missed a session and arrived at a session on Clojure, I didn't like Clojure when it was called Lisp and that feeling remains the same. Trying to push a language like Clojure is like trying to get us all to use superior keyboard layout (e.g. Dvorak), probably won't happen. These things are rooted too deep, but maybe I'm old (strike that, I am old who knows?).

I ran into a friend so I was late to the multi-device session by David Campelo . I think I met David years ago when working for Sun, Chen and him know each other from our work on GingaJ which effectively put LWUIT on TV screens in Brazil. He gave an interesting demo about connecting tablets to the currently playing content on a TV, that is indeed an interesting direction to explore. I understand that the level of engagement in such experiences is tremendous and this is probably the future for such tools.
Unfortunately his demo didn't work, I can feel his pain. Its really hard to show network/device stuff especially with proprietary chains involved. There are so many points of failure which is why I always bring a ready made video of the demo in case of such a failure. This works like Murphy's law, when you take that precaution the demo never fails…

I then went on the Matthew 's GIT on NetBeans Hands On Lab. I am not a fan of Hand On Labs and rarely take them (I never liked sitting in classrooms), I went simply because I was so impressed by Matthew following his JavaZone talk and wanted to see more. Matthew is indeed as great a teacher as he is a speaker, he was very interactive and I feel I understand GIT better now. If you happen to see his name at a conference you are attending I highly recommend you check it out, I think its always a good policy to just go to sessions with good speakers. Even if the subject isn't interesting to you right now you can learn so much. 
In the past we had a lot of issues with GIT especially for Chen who is using Windows where the GIT GUI support isn't as good as the SVN integration. I'm assuming some of this got fixed and it also seems we used GIT somewhat like Teamware (the gradfather of GIT) which I always loved and Chen really hates with a vengeance. Maybe its time to switch back to github, I love their UI and a lot of the things about it. I wonder how easy it would be to migrate a Google code project (probably should have asked Matthew).

I then rushed to the JCP party on the roof of the Hilton, it had nice food and some interesting people but I couldn't stay and ran off to a BoF on Swing & JavaFX. On my way to the BoF room I ran into Tinuola Awopetu who does the marketing for the NetBeans team, we started chatting and it turns out she had her own panel BoF starting just then titled: "So You Want to Be a Published Technical Author?".
A friend from Sun and one of the best technical writers I know Jonathan K nudsen (who also wrote one of the first LWUIT tutorials) used to describe book authoring as torture. So I don't want to write a book.
However, I had fun talking with Tinu and thought I might as well check out the BoF. I'm glad that I did.
It featured 5 panelists:
Erol Staveley - publisher at Packt
Joel Murach - who is both an author and publisher at Mike Murach & Associates
Meghan Blanchette - editor at O'Reilly Media
Arun Gupta - needs no introductions but in this case he came as an author .
David Heffelfinger - an established author of several books .

This was a very interesting/fun panel, I hadn't thought about the option of writing a Codename One book before this panel but I am now entertaining the thought. Just goes to show that you should always be open at Java One.

The next day started by touring the exhibition floor, I was on a tight schedule running around to very specific booths of interest. Last year I was so busy I didn't get to see the pavilion even once, so I was very careful and methodological this year. There were many interesting booths from IBM, RedHat, ARM etc. but the startups were more bold. CloudBees literally dressed all their personnel as bees, including head of marketing and (male) CEO. Amusing, but I think I'm too dry to do something like that.

"Practical Pros and Cons of Replacing Swing with JavaFX in Existing Applications" was the title of a surprisingly interesting session. I added it to my list because it was lead by Geertjan but pretty much everyone on the panel had an interesting story. It focused on developers using the NetBeans platform (platform not just the IDE) for their development who incorporated JavaFX in various ways to reap the benefits of improved UI visualizations.

Sean Phillips presented the app he has been working on for NASA (later on he showed it in the community keynote , I think he got a dukes choice award for it), it is a NetBeans platform/FX based visualization of spacecraft motion in formation. This includes amazing visualizations for NASA scientists, I suggest checking out a small portion of his demo in the community keynote, very compelling. What doesn't really show in the keynote is how excitable, enthusiastic and passionate he is about this technology.

Timon Veenstra presented a pretty cool NetBeans platform app that enables crop management for farmers interesting stuff. They won a Duke's choice award. Its pretty cool.

Rob Terpilowski presented the work that he has been doing at Lynden which is a major shipping company. They are using FX to make the UI's of their rather elaborate tables more visually appealing and usable.

I then went to watch "Play Framework Versus Grails Smackdown" which was delivered by two brilliant speakers: James Ward & Matt Raible . The talk was great however they gave a member of the audience in the front seat a really loud bell (or gong) and whenever one of them "delivered a smackdown" he rang the bell really loudly. I was in the back and had a headache 20 minutes into the talk. Left to the speaker room next door where the bell was also heard only softly.
There are two reasons I went to the BoF "Teaching Java with Minecraft, Greenfoot, and Scratch", Daniel Green & Arun Gupta . My daughter is still a bit too young for programming I'll probably have to start next year when she is 4. The session was fun and engaging, but the real kicker came later... All thru the session Arun dropped references to teaching his son to work on the Minecraft source code. In the general session his son (Aditya) got on stage and stole the entire JavaOne show, he launched Eclipse and went into a compelling demo (and anyone who ever demoed source code modification on stage knows this is HARD and BORING). The kid had the audience eating out of the palm of his keyboard, it was one of the best demos I saw on the JavaOne stage and the audience was totally with him as he complained about Eclipse or lamented on a method needing to be overriden "not sure why". James Gosling followed him noting that now he wants to become a minecraft hacker!

Wednesday started with a session by Nuvos who are launching a WORA mobile solution in Java using a build cloud (sounds familiar?). They had a booth at the pavilion so I got a chance to talk to them and figure them out a bit. Kevin is the founder/CEO of the company, they effectively started as a consulting project that grew into a solution for mobile.
Kevin is a great guy, we spent quite a while talking before and after his session. It might surprise some readers but we do wish them the best of luck, a rising tide raises all boats and our shared success would mean the success of Java & WORA for mobile as a whole.

Picture Jaroslav Tulach
A bit later I attended a great session "The Chuck Norris Experiment: Running Java in Any Browser Without a Plug-in" which was given by Jaroslav Tulach (co-founder of NetBeans or Xelfi for us old timers) and Anton Epple . The session presented the Bck2Brwsr JVM that JIT's bytecode to JavaScript (yep), this isn't GWT... The JIT literally takes a JAR opens it and jits the content to JavaScript which is then executed pretty efficiently on the V8-JIT (JIT nesting at its best).
The ridiculous part is that it works and works well including debugging and decent IDE environment pretty shocking stuff. Unfortunately it doesn't support threading (and no WebWorkers aren't threads). The session itself was great and surprisingly even the Chuck Norris jokes were funny, both Anton and Jaroslav have a great sense of humor coupled with the technical chops to make this session one of the better sessions I attended at Java One.

I tried to talk to them after the session but it was a bit too busy and I started talking with Yusuke Yamamoto   who I thought I didn't know. Turns out he wrote an article about us last year and also apparently a presentation . He is also a former Twitter employee and the author of Twitter4J a very cool Twitter API allowing Java developers to work with the Twitter webservice easily. It would be great to port that to Codename One.

After the community general session I ran into Jaroslav & Anton hacking their way in the hall. I naturally descended on them and went into a long discussion with Jaroslav on thread support for Bck2Brwsr so we can add Codename One support for in browser apps. He is pretty adamant against this saying that it would impact performance considerably (he is right, this would require state transferal which is pretty tough), he pointed me at Doppio which is doing something similar but I can't see a community working on this so I'm unsure of where they stand.

Regardless you should check out the Bck2Brwsr JVM, its pretty amazing.

The last J1 session I attended was the RoboVM session, Niklas was great although he needs to seriously simplify his message to the audience some of whom didn't really understand what LLVM meant. He had great attendance considering the fact that this session was announced just before J1 started so most people wouldn't have seen it in their schedule builder tool (even moreso considering the fact that some people already left as the conference was winding down they literally started folding up the room around us).

I would describe RoboVM as a Xamarin for Java based on LLVM. Its an LLVM front end for Java that allows using the toolchain to build native iOS apps with native iOS API's. Unlike Codename One which aims for WORA, RoboVM is targeted at avoiding Objective-C and giving a Java facelift to iOS development. Niklas did an amazing job in terms of tooling and the underlying technology and we are keeping a keen eye on this project, we spent a great deal of time talking about making a living from open source projects. I do hope that Niklas will find the model that works for him with RoboVM and is able to keep the amazing rate of progress he has shown so far.

JavaOne ended with the usual party at Moscone, however this year they merged it with the Open World party which was too big and sucked as a result. I miss the old garden party which was crowded yet intimate, where you actually knew some of the people in attendance.

Regardless, it was a fun JavaOne for me on a personal note. Hopefully next year will be as good or even better.

Notice: This post was automatically converted using a script from an older blogging system. Some elements might not have come out as intended.... If that is the case please let us know via the comments section below.

Share this Post:

Posted by Shai Almog

Shai is the co-founder of Codename One. He's been a professional programmer for over 25 years. During that time he has worked with dozens of companies including Sun Microsystems.
For more follow Shai on Twitter & github.