JavaOne 2013 Report Part 1

September 30th, 2013

JavaOne 2013 already feels like a lifetime away. There is a melancholy in the wind as I sit in a rental car driving out from San Francisco airport. I started to write this report on checkout-of-hotel Friday morning. My memory is blur with the activities of the week, suffice to say that this conference has been the most diverse of the Oracle JavaOne conference that I can remember. Of course, the most important track for me was Java EE, because of the book. I delved into JavaFX sessions, and a few lot of JavaScript session incredibly relevant to my contracting work. There were also the obligatory Java JDK 8 talks and maybe just one Scala session.

Oracle's Chess Java ME Robot

Part of Oracle’s keynote demonstration across the platform editions from mobile to enterprise: here is the Java ME 8 with the chess playing robot.

Work, technology, training and people

Let me repeat myself for the umpteenth time, I am very sorry to my regular readers, for this next section of prose. Please skip ahead if you feel the need.

I feel like I am back in secondary school sitting in a half-hour detention as that mischievous thirteen year old child again and I have to write this; I goto technology conferences, because:

  • Many times, I win acceptance on a proposal or two to present at the conference. Therefore I am a speaker and I attend the conference.
  • I want to learn about the next step in a particular technology that I am interested in for professional and/or enthusiasm reasons.
  • I meet people at the conference who share the same ideas and thoughts on technology.
  • Every once in awhile, at a conference, I learn about a new direction or the beneficial technology in order to progress my career.
  • Increasingly, I contribute answers back to new people who ask me questions. I am finding my role reversing slowly but surely, as IT experience does pay off in the long-term.

Where in the above bulleted list, are any notions about wasting time, idling of thumbs, or any hint of unworthiness? Conferences are there to help developers, designers and architects progress forward, move that technology vector in the correct direction, or help those of choose where to target next. Conference help improve knowledge share beyond the confines of corporate walls and into the wider world of community. Conferences are about individuals in a vulnerable learning mode (*this is education 101). If you really think that conferences are all about late parties, eating delicious food and drinking beer, sipping fine wines, alcohol and collecting tee-shirts and freebies, then you must be living on a cloud nine. At least for the good speakers, it is tremendous work to prepare materials, slide decks and coding demos. I can assure you that it is never the Carry-On Pathé saucy movie mixed with the British idiomatic having a good time. In fact, it’s bloody hard work. Conference participants are those who do not know the technology inside and out, and that is why they are there, to get good. It seems like a duh reason, but really it is so simple: learning, learning, and learning. So please Mr. Management don’t scandalise your direct reports by stifling their learning and self-improvement with your outmoded and prejudiced viewpoints of modern IT business. Oh by the way contractors also are learning and in the same vulnerable mode. As contractors if we are not continuously learning then we may as well stop being contractors right here, right now. My rant is over, let’s get back on track with this JavaOne 2013 Report.

It’s about humanity: human after all

I am stealing a phrase from the title of a Daft Punk album: Human After All. Here are some photographs of these people:

JavaOne

The Belgian connection: Far right Jo Voreendecker (Devoxx.be), far left: Stijn Van Den Ende (Devoxx.be)

JavaOne

The Sunday opening JavaOne keynote took place back at the familiar Moscone Center for the first time since 2009!

JavaOne

I am sitting next to two Very Important People in Oracle Java. Left is Cameron Purdy who is responsible for Java EE products, VP of development and in the centre is Nandini Ramani, VP of engineering, Java client and mobile platforms.

JavaOne

This is Stephen Chin, the Nighthacking guy, the JavaOne conference chairperson. He is ultimately responsible for the programme content!

JavaOne

This is Adam Bien after one of his four sessions. I think this was Demystifying Java EE.

IMG_0284

This is Ms OTN herself, Tori Wieldt, and the owner of the Twitter handle @java. I believe it was taken at the JCP Evening event.

IMG_0396

Here are the Java EE 7 book authors at JavaOne 2013: (L to R) Josh Juneau, Max Bohnbel (standing in), Josh’s friend,  Antonio Gonclaves and myself. (I am actually holding a different Packt Pub book here: The Gradle book.) Arun Gupta is taking the photograph with my camera that is why he is not pictured. We are standing in the Digital Guru bookstore at JavaOne 2013, Hilton Hotel.

Java EE 7 book authors at Java One 2013

Here is Arun Gupta in the rightful photo of the official Java EE 7 book authors at JavaOne 2013. (L to R): Josh Juneau, Arun Gupta, Antonio Gonclaves and, of course, yours truly.

The developer handbook

Let’s begin with the Developer Handbook. I am really happy about crossing the finish line: I am now a published technical author  and the subject matter is terrific, it couldn’t be better and relevant to my career. Java EE is my day job and enterprise Java in its many forms with or without EJB, Spring Framework,whether it is in a so-called lightweight Java EE or a WebSphere application server 7 is my bread and butter.

The Java EE 7 Developer Handbook was printed on Friday 20th, September 2013, whilst I was on a transatlantic jet  flying 39,000 feet over Greenland. The book is published and is out now! Sadly, the first printed books never made it to San Francisco. I personally would have loved to sign them at the Oracle bookstore. Ultimately, I take full responsibility for this failure, because I am the main content writer. There is no book with the author writing it. Despite my best intentions and an urgent final push to deliver the book to the JavaOne, the mess of internal communications caused us, Packt Pub and myself, to fail in this endeavour. Therefore I apologise to you the readers who were waiting patiently after the announcement. I shall say publicly that the Digital Guru bookstore and Oracle are themselves excused from any fault there.

I know that some of you have already bought my book. Hopefully, I can sign it for you in person at the next conference opportunity. At that moment, it looks like Devoxx 2013 Belgium, although at the time of writing, my attendance is subject to confirmation. The book is available in print from Barnes and NobleAmazon UK and Amazon USA, and is available on Kindle and directly from Packt Pub. By the way, you can try the sample chapter 10 about Bean Validation 1.1.

Antonio Gonclaves signs his books

Antonio Gonclaves signs copies of his Java EE 7 book at the JCP Sunday meeting. (He is a lucky devil!)

Community Sunday

The exclusive Sunday Brunch in the Hilton hotel with Oracle was great to meet up with other Java leaders and community folk. The announcements were less exclusive this year in comparison to 2011, when I was really worried about the future of JavaFX, moving 1.3 to 2.0. I think at the brunch some leaders were explicitly asking about Nashorn and embedded mobile environments, the eventual unification of Java SE with that Java ME. It is Oracle’s intention to achieve unification of SE and ME post the Java SE 8 release for desktop.

JavaOne

The fire at the Buzz Cafe on the closed-off Mason street.

Lambdas

Lambdas had the attention of lots of JavaOne attendees. There were full sessions on Brian Goetz‘s introduction into Lambdas in the upcoming JDK 8. This should not surprise anyone, as I said in the piece about conference education, there is a void in knowledge about functional programming in the Java language, and attendees want to comprehend and become accustomed to the next breaking wave: Lambdas.

Even I, yes me, a Java Champion had a false thought about Lambdas before I attended JavaOne 2013. Originally, I thought that Lambdas would mean tons of porting and upgrade work for existing library writers. In fact, Lambdas will be backwards compatible with many libraries. Certainly, library will add direct Lambda compatible over time, and there is really no rush. The Java compiler performs functional interface conversion between the types. Brian Goetz made it absolutely clear that there is no new function type in Java 8 and therefore there is no radical revamp of the Java type system. In other words, the compiler will do as much work as it can, to get the correct result. Sometimes, the compiler can’t infer argument types and/or the return type of a functional interface. It needs persuasion by declaring explicit parameter types or a casting the result type of the functional block.

IMG_0295

Brian Goetz strikes a pose during his Road to Lambdas session

Later in the week, there are another session, Lambda: A Peek Under Hood also with Brian Goetz. I was surprised to learn that the JDK 8 implementation is unoptimized and yet already achieved 10 to 20 performance compared to traditional inner classes. Peeking under the hood of Lambda, entailed learning about workings of inner classes, finding out why they were not a favourite with the team. Why they could have locked in the Lambda implementation forever and thus making it difficult to adapt and maintain with any future innovations. The current JDK 8 implementations uses of invokedynamic calls, which cleverly avoids hardwiring in the Lambda implementation to a specific strategy. Invokedynamic calls implies the optimisation of lazy loading of Lambdas much like a factory design pattern shared between the JVM and the [Java] language runtime.
IMG_0327

I gave up my Canon EOS 700D camera to the one of Nao Guys, who took this picture in the exhibition hall.

Java enterprise and crossover

In the summer, Java EE 7 was released and at JavaOne plenty of sessions were devoted to it. The most popular sessions included RESTful services and WebSocket, and HTML5 integration. I was surprised at the extent of crossover in the Java EE track. At James Ward’s Web Fundamental sessions, discussions were over the essential HTTP GET and RESPONSE interaction. I suspect that the audience for this was half and half. Some people there understood the HTTP principles and therefore encountered them at work, maybe in a JavaScript framework, using AJAX and the other half really did not know anything practical about raw HTTP interaction. So it was a good session for those new people.

Amongst the traditional Java EE sessions, Adam Bien had a great one about Demystifying Java EE headaches and myths. He did well to demonstrate the so-called heaviness of a EJB, the stateless session variety, as a fantasy by throwing a deliberate exception and then invited the audience to inspect the stack trace. I wished that I had thought about that one as an explanation, instead of the word prose in my book. The stack trace showed that there only four indirection calls, which is nothing to the Hotspot JVM, especially once it accelerates the invocations by aggressive inlining. In fact, Adam had a run of four sessions at JavaOne, which even he said to me in conversation that it was a surprise for all acceptances.

Oracle demo Java ME 8 robot arm (again)

Another angle on the keynote demo: Java ME 8 running on an embedded platform controlling this robot arm.

I went along to a fully attended BOF on Monday night that actually could have been a technical session: Java Persistence for NoSQL. The stupid thing was that NoSQL is area of Java EE that potentially requires standardisation and more input from open source projects and vendors. The audience were probably expecting a solution for Java EE and NoSQL. The BOF was chaired by Shaun Smith of EclipseLink, Oracle and he noted there is experimental support for MongoDB and other NoSql storage and this was bleeding edge EclipseLink. It is not ready for production. This BOF actually needed the real vendors and people who know the inside-and-out of the key values databases to be available. It is worth noting that Pivotal’s Spring Data project addresses this area. I decided that more experts were required, so I bailed it halfway through.

I skipped briefly into Emmanuel Bernard and Marina Vatkina’s Nuts and Bolts of Java EE Interceptors talk. This was a condensation of the specification and the reason why Interceptors were stripped out JAX-RS and CDI into their own JSR. This was revision subject matter for me, obviously, being a Java EE 7 book author! However, it was very good to see their interpretation of the specification including declarative transactions for CDI beans, for the very first time. I think there was guy there that did not understand the specification on initialisation callbacks, @PostConstruct and @PreDestroy are not permitted to throw exceptions, yet he kept asking for resolution on it. Sometimes there will be students who attempt to jump two chapters ahead of the subject, but they need to step back and learn the basics of containers and lifecycle. Sadly, I had skipped out of this talk and I missed my chance to ask a question about CDI extensions and interceptors.

JavaOne

Java Champions reserved seating at the Sunday evening Keynote.

"Rags" chairs the Scripting Bowl 2013

“Rags” (Raghavan Srinivas) ex Sun Microsystem and now of Rackspace chairs the scripting language bowl 2013. The Far left representing Scala is Dick Wall. On the furthest right and obscured by the podium is Guilliame La Forge representing Groovy and Groovy won the title. In the middle left is Stuart halloway representing Clojure and next to his left is Jim Laskey representing Nashorn (JavaScript)

JavaFX

Here is the JavaFX update. It looking still great after I dropped it completely this year in order to write and finish the Java EE 7 Developer Handbook. JavaFX 8 is in good hands under Richard Bair, Kevin Rushford and Jasper Potts. It is almost completely open source, the tricky remaining part is the media components and modules and that is expected to be released in the first few months of 2014.

Gerrit Grunwald, as you know, or rather many of you do know, is heavily involved in JavaFX components on the desktop. His work is found in the JFXTras.org project. I attended his talk called Use The Force, Luke.,which he gave a very prescriptive advice on how to write JavaFX components using CSS support instead of graphic nodes. The key advice is rely on CSS to draw gradients, shapes and regions in order to reduce the number of graphics nodes. His advice was really relevant to embedded JavaFX development on the Raspberry Pi. Gerrit also showed some excellent examples of writing to the JavaFX Canvas using the ImageWriter and still there were graphic designer notes for the willing apprentice.  By the way, Gerrit said that he has fallen in love with Lambdas as he has been recently developing with the JDK 8 preview on the Pi, which of course has Lambdas in preview. Here is another instance of the crossover pollination, and also a nice nod of the head to web technology. If you understand CSS 2 then you can probably follow along with the JavaFX CSS extensions, pay particular attention to the Scalable Vector Graphics paths and how it is so simple to define a shape using Adobe Illustrator or InkScape and get it imported into a CSS file.

After his talk, I did ask Gerrit about his thoughts on JavaFX 3D and he said that really he has no need for it at the moment. He also gave his opinion on Skeuomorphism versus flat-level design, and Gerrit said that the new interest (rad or fad) in flat-level design is impractical for his clients in the engineering industry. “They want see controls that look like real dials, input and outputs on an industrial control panel. If they were  flat then it wouldn’t work.”

Text cannot do Gerrit Grunwald presentation full justice, when you get a chance, go and see it visually on Parleys. I believe these talks will be published about two weeks after JavaOne, online.

Gerrit Grunwald

Here is Gerrit Grunwald giving me [us?] the +1 sign.

I attended the JavaFX State of the Uniont talk, which was all about the open source project OpenJFX, which is now part of the OpenJDK effort. Richard Bair and Stephen Northover discussed the various modules of the OpenJFX project and how it was put together as an architecture. The media modules will be released as open source later as I said at the head of the section.

They confirmed for me, at least, that the OpenJFX project in mercurial is the development basis for JavaFX 8. Oracle take this HEAD version and for JavaFX 8 Runtime add some proprietary closed source bits and bots. For the most part, OpenJFX project is the core source code. Northover explained how the team has fought the various issues porting Ant to Gradle over the past 9 months or so. There was also fair amount of description and architectural diagrams over the Prism/Glass interface. This talk was usefully for the strongest coffee drinker hacker, who wants to port JavaFX to a new CPU tool chain and operating system. (I am looking at you the hard-core iOS developer with Objective C and OpenGL knowledge, which I certainly do not possess at this point.) If you seriously about the internals of OpenJFX this presentation is worth also checking out on Parleys as soon as humanly possible. Richard Bair went over the governing rights issues to becoming a JavaFX committer, it takes dedication, patching of code and a mentor to guide anybody who wants to achieve this accolade. It is a pity that many recent OpenJFX new committers could not be at JavaOne in person, because I’d dearly love to hear their views on the open sourcing of JavaFX.

I partially jumped into JavaFX 3D talk with Kevin Rushford and Peter Chien. I think this was a simple update on last’s year discussion. In JavaFX 8 we know have movable cameras, the camera itself is a node and therefore it is easy to manipulative. The new stuff is the support for reading 3D graphics files, especially from the popular Maya, Collada and Blender formats. At the moment, JavaFX 3D supports Phong shading only. These guy did say JavaFX 3D is not functionally equivalent to Java 3D in the 8.0 time format. For instance, the picking support is not good enough, they said and also they want to allow the developers to control 3D normals. (My goodness! We are totally inside crossover with 3D knowledge if you have managed to read everything up to this point! Normals are from 2d/3d transformation and mathematics; they are cross vector products of two (or three) perpendicular vectors in space. We are quite a long way from Java EE 7 here! It is the nature of the technology beast, and some will say, the flipping belly of the tech-beast ;-)

At some point I want to try out this JavaFX 3D myself. I keep meaning to write this 3D space game in my head, and hopefully I will not be 65 years old before I attempt it.

James Ward

James Ward talks to participants about Web Fundamentals or maybe it was the Play Framework

JavaScript

The final crossover technology is JavaScript. I think this year at JavaOne, we have serious intentions around JavaScript technology and not just because there is runtime in Java available, Nashorn (NAZ-HORN). This software is now open sourced and available in the Avatar project. This was the big JavaScript announcement at JavaOne 2013. Nashorn is a JVM competitor to Node.js, except that Avatar is based on Java EE technology, because it uses an application server and the Nashorn runtime to execute JavaScript. I think this has incredible permutations for experimentation. For the first time ever, JavaScript developers on the server side have access to proper byte-code optimising generative virtual machine with proven salt. The JVM as we know is behind Twitter, J P Morgan Chase Manhattan, Morgan Stanley investment banks and so many other places on the server side. The ability of JavaScript to directly interact with EJB and CDI beans could be profound.

On the other side of this coin, JavaScript programming is now serious business on the client side. I went to the Parleys talk and it was all about JavaScript libraries, client side UI displays and HTML5 enabling technologies. Jo Voreendecker and Stephen Janssen were talking about Parleys in 2009 and I believe I was at that talk as well, when the technology baseline was Adobe Flex and Air, and they were possibly thinking about writing a JavaFX version 1.0. Well this is 2013 ladies and gentlemen, the Parleys HTML5 JavaScript platform is a true demonstration of what is really possible with HTML5 and JavaScript, playing streaming videos, and recording marker segments in audio. What? Come on! You other people are talking loud and saying nothing. The two Parley guys talked about RequireJS as a dependency injection framework module for JavaScript. The other APIs were Handlebars, Modernizer and of course JQuery. I think they even talked about AngularJS at some point, but I cannot remember exactly.

There was one other JavaScript session that I attended, but you will have to wait until Part 2.

The Parleys Guys

These are the Parleys guys: (L) Jo Voreendecker and (R) Stephan Janssen

Ladies of the Oracle demoground

This is a photo of the Demogrounds staff at the Oracle stand. Is it a coincidence that they are all ladies?

NetBeans Dream Team

Here I am starting with the NetBeans Dream guys and the Bruno Borges (far R), I am almost blocking the face of José Pereda  (R). NetBeans Dream team members are  Sven Reimers (far L) and Alex Kotchev (near L).

JavaOne

I think these are Java speakers and representations from Japan. I believe they were presenting Java EE and GlassFish project on the Sunday. Sadly, I don’t remember their full names. These fellows are (l) Yoshio Terada and  (r) Shin Tanimato. Terado is an Oracle employee, works on GlassFish and held a session on JavaEE, CON10982. Tanimoto is a Japanese speaker on the right with the short beard. He is  a GlassFish and Java EE application fixer and he held a session on Java troubleshooting, BOF7862. [Thanks Guys ;-) ]
JavaOne

This is the Oracle tent in Yuerba Buena gardens.

I will leave you in interested quote. Jack Dempsey said, “A Champion is someone who gets up when I they can’t.”

This Peter Pilgrim reporting from JavaOne 2013

+PP+

  • Pingback: Peter Pilgrim :: Java Champion :: Enterprise Blog » JavaOne Report 2013 Part 2

  • Pingback: Peter Pilgrim :: Java Champion :: Enterprise Blog » JavaOne 2013 Report Part 3

  • Shin Tanimoto

    Hello, nice seeing you in JavaOne.
    I am Shin Tanimoto, a Japanese speaker on the right one of that photo with short beard. I am a kind of troubleshooting guy held a session of Java troubleshooting, BOF7862.
    Left one is Yoshio Terada, an Oracle employee, held a session of JavaEE, CON10982. He is a kind of GlassFish guy.
    Anyway, thank you for the photo of us! :D

  • http://xenonique.co.uk/blog/ Peter Pilgrim

    Hi Shin and Yoshida. Thanks for commenting on my Flicker photostream and my blog. I could not remember your full names. I have updated the blog entry accordingly. It was great to meet you in person on the user group Sunday.