Monday, August 20, 2012

JavaOne 2012: Difficult Decisions

It was recently announced that the JavaOne 2012 Schedule Builder is now available. I have signed up for my first cut at sessions that I will attend, but found myself experiencing the typical feelings of excitement and disappointment as I did so.

If I was forced to make a Top Ten list of the sessions I have been most interested in attending at JavaOne 2012, I would estimate that 3 to 4 of those are being offered at exactly the same time and there are a couple others in conflict with one another. On one hand, I find myself excited at the idea of attending certain presentations, but this is tempered at the disappointment realized when I see other presentations at the same time that I'll have to miss. There is undoubtedly an opportunity cost associated with seeing my chosen presentations.

One of the session slots that is most difficult for me to make a final decision regarding is the Monday (October 1) 10 am session. In that session, I must choose between "The Road to Lambda" (CON4862), "Concurrency without Pain in Pure Java" (CON3454), "Finding and Solving Java Deadlocks" (HOL6500), "Efficient Memory and Thread Management in Highly Parallel Applications" (CON4611), "Uncovering Hidden Power Tools in the JDK" (CON7059), "JSR 311: Constraint Programming API" (CON3255), "Lessons Learned: Use of Modern JVM Languages Besides Java" (CON2424), "Effective HATEOAS with JAX-RS" (CON3383), "How RESTful is Your REST?" (CON7573), "Make Your Clients Richer: JavaFX and the NetBeans Platform" (TUT4801), "Building Amazing Applications with JavaFX" (CON4606), and several other interesting sounding presentations. I'm currently leaning toward "The Road to Lambda" because I believe lambda expressions will "change everything" in how we think about and write Java and because Brian Goetz is its presenter.

Another example of being forced to make a very difficult decision is the 8:30 am slot on Tuesday (October 2). Among other great sessions, I am forced to choose between "Lambda: A Peek Under the Hood" (CON6080), "Introduction to the Play Framework" (CON3845), "Modern Software Development Antipatterns" (CON6152), "Kotlin: Practical Aspects of JVM Language Implementation" (CON5759), "The Evolution of Java Persistence" (CON6622), "New Image Operations in JavaFX" (CON4440), and "3-D Made Easy with JavaFX" (CON4513).

A final example that I'll cover here of the difficult decisions to be made comes from the 10 am hour on Wednesday (October 3). Among many great sessions available in that hour, I am having an especially difficult time making my mind up between "Unlocking the Java EE 6 Platform" (CON2987), "Innovating Testing Techniques with Bytecode Instrumentation" (CON3961), "Software Modularity: Paradoxes, Principles, and Architectures" (CON3992), "Design Patterns in Modern JVM Languages" (CON3455), "Developing Polyglot Persistence Applications" (CON4775), "JSR 353: Java API for JSON Processing" (CON3566), "Audio and Video Processing in JavaFX" (CON7146), "Do It Yourself: Custom JavaFX Controls" (CON2425), and "Building HTML5 Mobile Apps with Cloud Services" (CON11114). Fortunately, I don't have this same hour's Are Your Garbage Collection Logs Speaking to You on this difficult choices list because I attended it last year.

I listed a session code after each session name in the lists above. The session naming uses the following convention:

  • BOF - Birds-Of-a-Feather
  • CON - Conference Session
  • HOL - Hands-On Lab
  • KEY - Keynote Speech
  • TSF - Test Fest
  • TUT - Tutorial
  • UGF - User Group Forum

I focused on three hours of JavaOne 2012 that provide a set of presentations of such great interest that it is difficult to choose only one from the group. Although I used three for examples here, the truth is that just about every hour had at least two of my "must see" presentations and many had more than two in the same hour.

Even though I've made initial selections for which presentations I plan to attend, these will change between now and the conference and even during the conference. In fact, they already have changed some since the Content Catalog was released. In particular, my previously high level of interest in Mark Reinhold's "The Modular Java Platform and Project Jigsaw" (CON10844) is lessened significantly since learning that it is likely that we won't see Project Jigsaw until at least 2015 (Java 9). It is difficult to justify using a precious time slot on something that we likely won't see for at least 3 more years.

As I was browsing through the JavaOne 2012 presentations and the Oracle OpenWorld 2012 presentations, I noted that no JavaOne session had yet filled up, but several Oracle OpenWorld sessions are already full. I like that Schedule Builder tells you that it's full and tells you how many people are already on the waiting list. In one case, an Oracle OpenWorld session already had a waiting list of 43 people!

One of the things I don't like about Schedule Builder is that some of the pre-selected sessions that appeared on "My Schedule" keep reappearing every time I log into Schedule Builder even though I explicitly remove them every time I'm in the tool. I've stopped removing them for now, but would like to have them permanently removed so that it is more clear what I have scheduled each day.

I am trying to attend presentations representing a wide variety of topics at JavaOne 2012. I could attend a presentation on JavaFX in just about every session, but I hope to cover a much broader set of topics than just JavaFX. I'm trying to mix in some JavaFX, basic Java SE tooling, alternative JVM languages, and more. The biggest challenge is eliminating so many great sessions and trying to live with attending just one each hour.

No comments: