Ed's note: I work for a sponsor of the StL NFJS and many of the local speakers are friends. That said, I have attended the Gateway NFJS for 8 years, most of which were through a previous employer. If you know me in person, you know I enjoy these shows tremendously.
Last weekend, I attended the 2009 St Louis NFJS show. As long-time readers will know, I really enjoy both the content of these shows as well as the energy from talking to other attendees.
In this recap, I will try to highlight my experience with the assumption that you are familiar with the format and the NFJS tour. If not, there are many resources on the web describing the basic idea of a "conference near you".
Here are some highlights from the sessions I attended. Note that later posts will have thoughts/questions that arose from these talks.
- Sporting a Hawaiian shirt "made from an amalgam of sofas", Alex Miller gave a talk on Java 7. With his Java 7 website, it is hard to imagine someone with a more complete view of the big picture. One slide included all potential features, and the current status of each. I especially enjoyed the background behind Project Coin, JSR 310 (Date/Time), and the fork-join frameword (jsr166y).
- Alex is hardcore into concurrency, and gave some talks in this space as well. This is essential stuff. It is not clear to me if Java will be the longterm answer for concurrent programming on the JVM, but right now it certainly is: if you do threading, you need to see Java Concurrency Gotchas.
- Ken Sipe gave several talks on understanding garbage collection and tweaking the JVM. I saw the one on GC in the past, and it helped me solve a tricky memory leak at a client site. I went back for more this year. If you want to be a problem solver for your project in production, his material is top shelf. Who else points to a graph spike and says with a devilish grin: "we are now watching a star die" ?
- I caught Scott Davis' talk on Lizard Brain Web Design. This was one of the most fun, as Scott is a terrific speaker and the topic is about the nebulous nexus of practicality and aesthetics, outside of the machinations of the IDE. Anyone can simply read the pop psych books but I enjoy how Scott brings it together into a coherent, relevant narrative. This stuff just comes alive.
- My colleagues Mark Volkmann and Tim Dalton gave excellent talks on Clojure and Scala, respectively the cutting-edge of languages on the JVM. I've seen precursors to these talks before so the material was familiar: I really want to see 'part 2' where each talks about concurrency and/or software transactional memory.
My main sources for the "vibe" of the conference are the Birds of a Feather sessions, the polls during the expert panel, and just interacting with other attendees:
- I attended the BoF on dynamic languages. The discussion was solely centered on funcational languages. Several people wondered about the allure, and if the masses could make the leap. Again, a theme was the potential sea-change with respect to concurrency. I told one chap that if we could learn object-orientation (recall how tricky polymorphism was in 1994?), then we can learn FP.
- Jay Zimmerman took some interesting, informal polls. e.g. The majority of attendees wrote unit tests and used agile practices. Agile seemed non-controversial and an ideal, much different from an NFJS from, say, 2003.
- A common theme among conversation was: which new language should I choose? Venkat Subramaniam said it best: it doesn't matter. Just pick one and go with it. It is more important to learn ideas (from any language) than mere syntax from any one in particular. He cited the conventional wisdom that it is important to know a language from each major school (e.g. functional, object-oriented, etc).
Venkat gave the keynote: Facts and Fallacies of Everyday Software.
After discreetly kicking off his shoes, he launched into a comical tirade about the collisions between common sense and stupidity, using some clever photos to shine the spotlight of logic on absurdity (e.g. a "No Fishing" sign on a bridge that is 1000 feet above the ground). I've seen some dandy keynotes in the past (including the Chairman of the Board) but this was the closest to a good stand-up comedy routine.
In between the laughs, the thesis emerged: think! Observe and challenge the requirements, the process, and the software.
I like to clown around but I truly enjoy sharing experiences about software. This NFJS was energizing, as usual, because of the quality of the speakers and the participants. There were so many conversations and ideas that it is difficult to capture here.
David Geary has a great line about GWT that applies to this past weekend: it makes writing sofware fun again.