ÜberConf 2012by Matt Cholick
I've just come back from this year's ÜberConf Java conference. The conference had some really excellent speakers. The three keynote speakers (and the individual sessions they presented) were fantastic. Matthew McCullough does a great job. He presents with an amazing amount of energy and an impressive information density. Every minute in one of his talks packs in as much information as two minutes with other speakers. Venkat Subramaniam explains difficult concepts really well. I wish I could have taken my programming languages course under him. Tim Berglund did a great job too and injected a welcome dose of humor.
I really like this conference series, especially in contrast to the others that I've attended. I've been to a couple Java One conferences (2008 and 2009). These were ok. The underlying current in these two years seemed to be 'Your careers are safe, look at all these other Java developers and corporate partners.' That's not a great vibe, but it's not a terrible one either. Many of the sessions, though, were someone pushing an agenda and trying to sell something. The keynotes at Java One were all about that. Server Side last year had the opposite energy. It felt like every speaker was trying too hard to get enthusiasm from a room full of people who just cared about getting to Vegas at their company's expense. It was disheartening. It felt like a dead community and made me think really hard about trying to work my way out of the Java space and into something like Ruby.
NFJS in 2010 and ÜberConf this year have a much better story. This is a group of speakers who are talking about the lessons they learned or evangelizing something they love, rather than trying to peddle some junk. They're enthusiastic, engaging, and care about technology. The attending developers are there to learn and care about their craft: one night the sessions ran until 10pm and the one I went to was well attended even that late. More than even the technical content, the most valuable thing that I've taken home is a sense of energy and enthusiasm.
Scala is one of the things I explored in several sessions. I like this language at lot. Traits are just great. I see a lot of the syntax and brevity in Scala that I love in Groovy. The language seems clean in a way that Groovy doesn't though. Groovy feels like it's all about getting the job done - it's as similar to Java as possible to get you into the language quickly and adds a big helping of syntactic sugar and library expansion. Scala, on the other hand, looks more targeted toward helping me build a clean and maintainable design. I'll acknowledge this is a pretty unfair assessment - I've written thousands of lines of Groovy and just started Scala, so naturally I don't know its rough edges yet. It looks quite promising, though, and learning this language is definitely priority 0 in my list of things to do when I wrap up my MSE next month.
NoSQL and big data is another topic I explored quite a bit at the conference. I wish I had time to give it another try before wrapping up my master's project. The more I learn, the more I think Cassandra was the wrong tool to experiment with. If I could step back a year, I would explore building my recommender with Neo4J. After hearing about its capabilities, I think a graph database would likely be a decent fit for building a recommender system. Using something like Spring Data could also help when working with these technologies. One of the speakers mentioned using annotations in a project to mix and match storage technologies for different entity properties, which is definitely an interesting approach. Hadoop is also a tool that I think I could find some uses for at work.
Another tool I invested a couple sessions in was Spock, a specification and testing framework. I already use and love this tool, but I picked up a few new ideas about how to use it. I'm a big fan and will post about it at some future time.
Finally, I learned a few new tricks for Gradle, Groovy, Git, and OSX. These are great in that I can use many of them right away rather than having to wait for a big feature or some new project.
It was definitely a great experience. I love the chance to learn about a whole set of new ideas and talk shop for a week.