This post is broken up into ‘the good,’ ‘the bad,’ and ‘the ugly’ of JavaOne 2012. I want to emphasize that the conference overall was outstanding and I am appreciative of the opportunity to have attended. I hope the overall tone of my post reflects my overall highly positive feelings about this conference, but also presents a realistic portrait of the not-so-great aspects of the conference.
Overall Technical Content
There is a wide variety of things conference attendees look forward to in a conference. Many of us look forward to many of the same things in a conference. For me, the single most important attribute of a technical conference is its content. In that category, JavaOne 2012 was a success. There was actually too much good content to take it all in, but that’s a welcome dilemma.
High Attention to Low-Level Details
I think Adam Bien made an important observation: even though it’s nice to have community involvement in the conference, JavaOne presents a special opportunity to hear from the folks (mostly Oracle employees) working ‘in the trenches’ on the latest Java APIs, specifications, and SDKs. Bien put it this way, ‘I mainly attended sessions delivered by Oracle engineers. 90% of this sessions were great with unique, deep technical content probably only deliverable by someone implementing the low level stuff. This is my personal motivation for attending JavaOne.’
I’ve been to database-oriented conferences where many of the Oracle employees’ presentations are heavy on marketing and slideware and low on technical detail. That’s not the case at JavaOne where Oracle employees present the low-level details that Java developers want to hear.
Breadth and Scope of Technical Content
No matter in which dimension it is measured, JavaOne 2012 featured breadth and depth of content. Subjects in Java SE, Java EE, Java ME/embedded, web, JVM (alternate languages), and even some non-Java topics were available in nearly every session block. The keynotes (especially the Strategy Keynote and Technical Keynote) and select presentations that I attended provided roadmaps and vision for what lies ahead.
I enjoyed the breadth of ‘temporal usefulness’ available in the presentations. I learned about things I like won’t use anytime soon but are interesting and mind-expanding (Ceylon, JavaFX Embedded, Play Framework, Akka, Tiggzi), things that I’ll definitely use in the intermediate future (Project Lambda, JSR 310 Date/Time API), things I’ll use in the near future (Scala), and things I’ll use almost as soon as I get home (JDK 7′s jcmd, NetBeans Project Easel, Checker Framework). I was even able to learn several new tips and/or tricks for things for which I already had significant familiarity (Groovy, JavaFX, NetBeans’s custom declarative language for refactoring/hints).
Attention to Community
I stated above that I agree with Adam Bien’s assertion that one of the most valuable aspects of JavaOne is the access to people working directly on the future of Java. That being stated, I do appreciate Oracle making a real effort to reach out to the community. I posted during several presentations in which the speakers solicited feedback and ideas from the community and the audience. This was a nearly universal theme of any of the presentations related to anything open source. The JavaOne Community Keynote is the most obvious manifestation of JavaOne’s commitment to community, but that theme was reiterated in numerous presentations.
The Host City
San Francisco is a great city to visit and offers lots to do for downtime and for people traveling with JavaOne participants who are not themselves attending JavaOne. Although I look forward to any opportunity I get to attend JavaOne, I think I look forward to the visit to San Francisco as much as the conference. It’s definitely an interesting city to visit with great dining and other activities. The weather was pleasant and clear most of the time, though fog rolled in occasionally to remind us it is San Francisco and it was unusually hot in the early portion of the conference.
Oracle makes the presence of Oracle OpenWorld and JavaOne well-known throughout the city. Taxicabs feature signs for the respective conferences on their advertisements, there are signs all over the place, and some sections of the downtown near the conference venues (Moscone for Oracle OpenWorld and three Union Square hotels for JavaOne) for activities.
JavaOne provides numerous extracurricular activities beyond the technical content of the conference and beyond what the city provides. I didn’t participate in many of these this year due to other commitments and activities, but the offerings are fairly impressive. The Oracle Appreciation Night, which featured Pearl Jam and Kings of Leon this year, is especially impressive. Although there are numerous disadvantages to JavaOne being the ‘little brother’ held simultaneously with Oracle OpenWorld, some of these activities are available because of the bigger and better attended big brother conference being held simultaneously.
The Return of James Gosling
There was no denying that the ‘surprise’ return of James Gosling to JavaOne (Community Keynote) left a big and very positive impression. The nostalgic factor (reminder of JavaOne’s most glorious days) seemed to be as big as Gosling’s presentation itself. I monitored a lot of the Twitter traffic during the week on ‘javaone’ and no single Tweet or set of Tweets came anywhere close to being tweeted and re-treeted as often as mention of Gosling’s return to JavaOne.
Increased Exposure to Tools
Master craftsmen in any industry are more successful with the correct tools. At JavaOne 2012, I became familiar with tools that I either had not been aware of previously or had not fully appreciated previously. These were either the subject of the presentations I saw or were used ‘incidentally’ during projects and hallways discussions. These projects included JaCoCo Java Code Coverage Library (first read about in a Tweet), Checker Framework, the Oracle JDK 7 jcmd command-line tool, and NetBeans 7.3 Project Easel. I was also reminded that JDeveloper provides one of the better free UML tools, an important reminder now that NetBeans no longer supports UML (UML last supported in NetBeans 6.7).
Online JavaOne 2012 Coverage
Modern technology continues to make JavaOne more accessible to developer worldwide each year. Oracle made a lot of content available online early in the conference and individual members of the community also contributed significantly to the JavaOne coverage. Even some of the individual contributions were in part due to Oracle; I, for example, attended JavaOne 2012 on a blogger pass and was able to write posts like this one thanks to that complimentary pass. Between attending sessions, visiting some San Francisco sites, and writing my own blog posts, I’ve only been able to read a fraction of the other posts written about JavaOne 2012. I hope to catch up on those in coming weeks. I did try to watch Tweeted messages about the conference as it went along and was impressed with the quick coverage of important aspects of the conference.
Oracle has made ‘featured keynotes and highlights’ available online (video). There have been several Oracle-originated blogs of interest including Oracle Outlines Roadmap for Java SE and JavaFX at JavaOne 2012, Virtual Collateral Rack (PDFs of sessions), Thursday Community Keynote: ‘By the Community, For the Community’, JavaOne 2012 Sunday Strategy Keynote, and The JavaOne 2012 Sunday Technical Keynote.
Individual JavaOne 2012 summaries include Jim Gough‘s Highlights From Java One 2012, Mark Stephens‘s 5 key things I learnt at Javaone2012, Yakov Fain‘s My Three Days at JavaOne 2012, and Trisha Gee‘s JavaOne: The Summary.
A Dose of Reality
The blogosphere tends to distort the reality of software development for a variety of reasons (dominated by ‘new’ and ‘interesting’ developments, for one). Attending conferences can be a good way to talk to others to get a better perspective on the reality of general software development. For example, at JavaOne 2012, there were several reminders that there is still significant software development that occurs on the desktop (it’s not all web/mobile) and that the demise of UML has been overstated.
These ‘bad’ things are mostly accepted parts of the JavaOne experience. They are certainly outweighed by the good both in terms of number of ‘bad’ or ‘good’ things and in terms of importance of the things. In other words, there were more good things about JavaOne and the good things were more important to me than the bad things.
The Hotels Venue
The spreading of JavaOne over three Union Square hotels (Hilton, Parc 55, and Nikko) and the Masonic Auditorium would probably not be as big of a negative if JavaOne attendees were not aware of the presentations-friendly Moscone Center in the same city just blocks away. I am getting used to this venue and can navigate it better now than previously. I actually often enjoy the opportunity of going outside to move between buildings. However, I also found myself changing a couple selected presentations in the last couple of days because my original choice was in a particularly poor conference room area.
The Wifi at JavaOne simply cannot scale to the number of people wanting to use it via laptops, iPads, iPod Touch devices, Android tablets, and other personal devices. The Wifi was pretty good in the mornings before things got going and was outstanding on Thursday afternoon when a lot of people had already left.
Like the venues, the food is not completely awful; it’s just not very good. It is sufficient for what is needed (providing nutrients and energy), but its lack of flavor stands in stark contrast to the excellent breakfasts and dinners I enjoyed again this year while in San Francisco.
Getting To and Leaving San Francisco
My flights into and out of San Francisco were both delayed due to fog in San Francisco and/or due to metering of traffic in the airport. In addition to this, we were told that the U.S. Navy‘s use on SFO for some of their Fleet Week exercises was the reason we sat on the runway for an extra twenty minutes. This is an example of where the good (being in San Francisco for the conference) outweighed the bad.
Inconsiderate and Intentionally Rude Misbehavior
Perhaps the ugliest part of JavaOne 2012 had little to do with the conference itself or its organizers, but was instead caused by a small portion of its attendees. It seemed that I repeatedly got behind the person trying to text and walk at the same time. These individuals slowed down traffic in the already congested halls as they walked more slowly and wandered in unpredictable directions and caused people to try to walk around them, causing additional issues. People tend not to drive and text as well as they might think and walking and texting is no different. The walking while texting may be less dangerous than driving while texting, but it’s not without its dangers. There was one guy I was behind who was stopping intermittently while trying to eat and walk down the stairs because he was losing his lunch or snack. Continuing to try to do both made it so that neither was done well.
Other misbehavior that I observed were observed by others as well. These included unnecessary presentation hijacking, mobile phones ringing in sessions and some people even taking the call without leaving, people cutting in lines, and excessive entering and exiting of presentations at mid-point (most noticeably a problem when someone who sat in the first few rows made a show of his or her exit). The majority of attendees were well-behaved, but the small fraction of inconsiderate and even intentionally rude attendees was probably the ugliest part of JavaOne 2012. In defense of JavaOne, this ‘ugliness’ seems to be more reflective of human behavior than of the conference.
Additional / Miscellaneous Observations
A major theme of JavaOne 2012 was ‘convergence.’ This theme was explicitly identified in the keynotes and several presentations such as ‘Looking into the JVM Crystal Ball‘ (convergence of Oracle’s JRockit and HotSpot JVMs), ‘Mastering Java Deployment‘ (convergence of Java SE and JavaFX), ‘JavaFX on Smart Embedded Devices‘ (convergence of JavaFX and JavaFX Embedded, representing convergence of editions of Java [EE, SE, ME]), ‘NetBeans.Next – The Roadmap Ahead‘ (sharing of features between NetBeans and JDeveloper), and ‘Diagnosing Your Application on the JVM‘ (convergence of VM tools between JRockit and HotSpot and converge of command-line tools into single new
One of the manifestations of this convergence of versions of Java is the renaming of versions. It was interesting to hear multiple speakers refer to current JavaFX as JavaFX 2.2 and the ‘next’ major version of JavaFX as JavaFX 8 (version that was to be called JavaFX 3). This version naming change is documented in the post JavaFX 2.2 is here, and JavaFX 8.0 is on its way! Similarly, Java ME is seeing a version naming change as well: Java ME 3.2 is the current version and Java ME 8 is the ‘next’ major version.
JDK 7 Update 10: The Next ‘Big’ Minor Release?
I heard multiple Oracle presenters mention features that they are already using in JDK 7 Update 10. Given that most of us who are using JDK 7 are using JDK 7 Update 6 (and JDK 7 Update 7 is the current regular download), it sounds to me like JDK 7 Update 10 may be the next ‘minor’ release of JDK 7 with significant new tools for things such as application diagnosis and application deployment.
The naming of JDK minor releases with odd numbers for Critical Patch Updates (CPUs) and even numbers for ‘limited update releases’ was announced previously. JDK 7u10 Build b10 is available in Developer Preview.
‘Java’ Becoming Bigger Than Ever
One thing that is clearer to me than ever before after attending JavaOne 2012 is that ‘Java’ has become big for any one person to get his or her hands around the whole thing. Even some of the most knowledgeable experts I know in the Java community were heard to say that they would need to ask someone else to answer a specific question out of their area of expertise. It’s becoming increasingly difficult for any one person to thoroughly understand all aspects of Java (JVM, EE, SE, ME, etc.). When you throw in alternate languages and new frameworks and tools, one person simply cannot learn or understand all of it. It’s great that we have so many choices, but it can be frustrating to see entire areas of ‘Java’ that would be interesting to delve into, but simply require too much time and effort to give it those areas the desired degree of attention.
JavaOne 2013 will be held September 22–26, 2013, in San Francisco.
Don’t forget to share!
Bulletproof Java Code: A Practical Strategy for Developing Functional, Reliable, and Secure Java Code
Use Java? If you do, you know that Java software can be used to drive application logic of Web services or Web applications. Perhaps you use it for desktop applications? Or, embedded devices? Whatever your use of Java code, functional errors are the enemy!
To combat this enemy, your team might already perform functional testing. Even so, you're taking significant risks if you have not yet implemented a comprehensive team-wide quality management strategy. Such a strategy alleviates reliability, security, and performance problems to ensure that your code is free of functionality errors.Read this article to learn about this simple four-step strategy that is proven to make Java code more reliable, more secure, and easier to maintain.