Sunday, November 23, 2014

NFJS 2014 (2)

They should call this the JavaScript, Architecture and Dev/Ops show.

I'm doing a certain amount of career soul-searching.  Is Java over?

In 2007 I went to Scott Davis' Grails presentation and thought it was the coolest thing I ever saw.  So, a long and winding 7 years later, I'm actually working in Grails.  Scott wasn't at this NFJS but I saw him a while back at Boulder Java User's Group and he was presenting on a JavaScript topic.

Pratik Patel has gone over to JavaScript.  Matt Stine went over to Dev/Ops.  And of course Bruce Tate went over to Rails some years ago.  These are the kind of people I look up to and try to emulate.

I really like Groovy/Grails and the Spring world.  I feel like I'm finally right where I want to be in my career after a somewhat bitter struggle, working with these technologies.

Anyway... the coolest cool new thing was Web Components and Polymer.  The way most web development is done is going to completely change in the next year or so.

The most crowded presentation I went to with people standing up in the back of the room was Neal Ford's talk on Microservices.  This sits at the intersection of Architecture and Dev/Ops where there seems to be a high level of interest.  Matt Stine's keynote Failure is the Only Option was also Dev/Ops-related.

Daniel Hinojosa's test-driven development talk The Walking TDD was good and drew a lot of interest.

I wasn't expecting much from Brian Sletten's talk about cryptography but this turned out to be really good.  Trust no one.

I dutifully went to Craig Walls' What's New in Spring.  I would have gone to the Spring Boot talk but I saw him give it at Boulder JUG a while back.  My sense is Spring continues to rock, but I'm focused on other things right now.

If I had to sum up NFJS 2014 (or the 1/5 of the sessions I went to, anyway) in one word, the word would be 'components'.  Web components, of course, and Microservices Architecture is all about modularity and components, and the same is true of Docker.


Web components

Thursday, November 20, 2014

NFJS 2014

My uber-cool employer is sending me to No Fluff Just Stuff.

This will be the 10th anniversary of my first time in 2004.

Hot topics in 2004 were dependency injection, object-relational mapping and web frameworks (which in those days meant primarily server-side).  Dave Thomas and Bruce Tate were among the speakers.  SOAP was alive and well and there were lots of XML-related talks.  Agile methodologies were new and exciting.

Some specific presentation topics included Spring, Hibernate, JDO, Struts, JSF, Tapestry, Ruby, Groovy, AOP.

It was totally mind-blowing for me.  My Java experience leading up to this was Tomcat, JBoss and Struts.  I thought EJBs and J2EE were the pinnacle of advanced enterprise Java.  I had tried Struts but reverted back to JSP for web development.  Back then I thought JavaScript was suitable only for cheesy effects that no serious developer would use.

I went on to use Tapestry in a project within the next year.  This was the coolest Java web framework of 2005 (you could use components that encapsulated JavaScript functionality without knowing anything about JavaScript!) but it didn't do well in the years that followed and is almost forgotten now.

Spring, Hibernate and Groovy had a big influence on me and (along with Grails) these are what I'm mostly working in today.

So, in 2004, NFJS exposed me to many ideas that were new and even revolutionary.  It also made me realize that I had been in a complacent backwater and was ignorant of a wide world of innovation going on outside the confines of my narrow career.

Comparing that with the program for this year, I can't help feel a little disappointed.  And I hasten to say this is no reflection on the NFJS presenters and organizers.  But the awesome creative ferment of a decade ago seems to have spent its force.

The one thing on the agenda that is somewhat new is Microservices.  There's plenty of good stuff. even the usual tough choices where more than one presentation I'd like to see are being offered at the same time.  But, there's not much here that is new since my last visit to Uberconf 2 1/2 years ago.

Did the excitement and innovation go elsewhere?  Is the whole industry in a slump?

The conventional wisdom lately has been that the actual Java language has become the COBOL of the 2010s, however lots of cool new languages like Groovy, Clojure and Scala run on the JVM. and the next big thing was probably going to involve a JVM-based language, possibly a functional language that would solve the concurrency problem.  I've been hearing this for about 4 years now and nothing much seems to be happening... these languages thrive in their little niches but there is no revolution.

Well, perhaps I'm being overly pessimistic and something from this NFJS is getting ready to knock my socks off.  Or, I'm just at a stage in my development where I don't need to be chasing the latest new thing so much as deepening my command of existing tools and frameworks.  I think I could spend the rest of my life mastering Spring framework and all the additional Spring projects.  Do we really just have enough of this stuff to the point where new languages and frameworks become superfluous?