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
, 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:
- We can debug it (although its inconvenient).
- 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.
- 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
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.