No Fluff Just Stuff recap
This past weekend I attended the No Fluff Just Stuff conference here in Atlanta. If you're not familiar with NFJS, it's a traveling conference that hits most of the major markets here in the US. It's held over weekends so as not to disrupt your daily job, and it covers topics in Java and Agility.
I'd been to one NFJS a few years ago here in Atlanta and thought it was well worth it. At that time, Bruce Tate was on the circuit. He was preaching (along with many of the other speakers at the time) about the bloat inherit in J2EE applications, and that Java developers should really be focusing their attention on lighter-weight J2EE alternatives such as Spring and Hibernate. Mind you, this was long before either had become mainstream. Having been a Rod Johnson disciple after reading his first book (the contents of which would eventually become Spring), I guess it's not surprising I enjoyed the conference so much. Interestingly enough, Bruce, along with Stu Halloway and Justin Gehtland (who also spoke at that conference), are now big Ruby-On-Rails guys.
Now I've been doing .Net stuff almost exclusively for the last few years, so I had a slight reservation about attending this year's conference, given that I'm not doing Java day-to-day anymore and I wasn't sure how much would be relevant. But given that I'm an independent consultant who should be up on such things, I thought it would be a good idea to at least re-familiarize myself with the goings on in the Java community.
I really am technology agnostic, but I do find the language of Java to be extremely noisy, tedious, and verbose anymore, especially coming from C# 3.0. Do you know how many language-level (not library-level) changes have gone into the JVM since 1.1.7? Off the top of my head, I can remember:
- the new for loop (finally in 1.5!)
- the crappy implementation of generics
- annotations
- static imports
- enums
- varargs
That's not a whole lot (or really anything significant) for a language that is over 10 years old.
And in case you are not following it, there is a huge debate in the Java world if/how closures should be implemented in the Java language. Have you seen the candidates? Good lord, they make the syntax for anonymous classes look simple! Put me firmly in the camp of leaving Java the language itself good and well alone and concentrate your efforts on other languages that run on the JVM.
So given the stale nature of the Java language and the rise of my interest in dynamic languages, I figured this would be an excellent chance for me to explore Groovy and Grails. I attended the sessions by Jeff Brown from G2One on both technologies the first day, and I was hooked right away on both.
Groovy compiles to native Java bytecode, and thus can be used interchangeably with standard Java classes (along with the innumerable number of Java frameworks out there). Plus, it has strong support for the things I love in C# 3.0 - properties, extension methods, and closures.
Grails is rapid web application framework for Groovy similar to Rails. It favors convention over configuration and uses a classic MVC architecture that allows for easy testability. Under the hood, it uses best of breed Java technologies as plumbing infrastructure (e.g. Spring and Hibernate). Just by creating a new project through scaffolding, it creates a nice project layout structure that provides a beautiful separation of concerns. It really makes it easy for you to write unit tests (no more excuses!). Basically, it creates a solid project architecture that would be roughly close to something a strong Java architect would formulate.
I learned of a term from Scott Hanselman called "The Pit Of Success". The concept is that you make it easy for developers to do the right thing and perform best practices. Don't make them have to overcome the language or framework, but rather fall into success by default. That's exactly what Grails does for you.
I stayed on the Groovy path the second day of the conference, attending sessions on meta-programming using Groovy. Meta-programming in Groovy is quite powerful, which makes it damn easy to build DSLs. One of the gems of the language is the simplicity in which you can create XML documents using a DSL in its XML builder. If you've ever struggled over a unwieldy ant file (or jumped through hoops just to perform a simple "if" statement in the XML file), you really owe it to yourself to check out Gant.
My last day was my Neil Ford day. I attended all four of Neil's sessions the last day. The first two were on Agile project management and metrics while the last two on Ruby/JRuby. Neil is a very entertaining speaker (and Atlanta resident the 10 days a year when he is not traveling). Again, to reference Scott Hanselman, the joke is that Scott got hired on by Microsoft and now gets paid "to be Scott Hanselman". I think Neil is exactly in the same camp. He gets paid "to be Neil Ford". Where do I get the gig "to be Chris Rauber"?
One last comment to make on NFJS. One thing I like about Java conferences in general and No Fluff Just Stuff in particular is that they don't seem to favor "technology" over "methodology". NFJS has a strong Agile underpinning, and offers a number of session on practicing Agile methodologies. Where it did offer technology sessions, it seemed that it targeted as how a particular technology implements Agile. For example, I mentioned in a previous post how Sun announced JavaFX at JavaOne this year (again). This was a mere two weeks before the NFJS conference. Yet there was hardly any mention of JavaFX at NFJS. If this were a .Net conference, nearly half the sessions would be about this new technology. Now, you could make the argument that JavaFX isn't really all that appealing to everyday Java developers, and truth to be told, you wouldn't get much argument from me. But I thought it was very interesting nonetheless.
The bottom line - if NJFS comes to your town, I would highly recommend checking it out. They really seem interested in providing top-notch speakers and giving you your money's worth in a conference.
Now ... anybody looking to hire a Groovy consultant???
Friday, May 23, 2008 12:08:33 AM (Eastern Standard Time, UTC-05:00)
Conferences | Java