I'm freshly back from
Java One in San Francisco, and my head is spinning with all the latest and greatest stuff that is happening in Java: Java EE 5 was just released, and there a lot of really cool things in it. There are a lot of interesting things going on in the open source community, including some new frameworks such as Grails (A kind of Java version of Ruby on Rails) that I had never even heard of. For someone like me who loves to try out new things, it was a veritable banquet of ideas.
Now Cinderella is back home from the ball and the carriage is now a pumpkin again as I face the task of getting back to my own development with the tried and true
Struts tools my organization has been using for some time. It's made me think seriously about what the future of Struts development is.
First of all, almost nothing was said about Struts during the conference except something like "oh yeah, if you're a Struts developer, you really want to start looking at Shale or one of the other frameworks".
Struts is a very strong work horse that is used in thousands of web applications, but it's no longer sexy or chic. Sounds a lot like what people started saying about COBOL several years ago, huh?
Struts has been so widely adopted that I have little doubt that it will continue to be used, and that many applications built with Struts will be seen on the web for quite some time.
The question I've been asking myself, though, is: Were do I need to start moving next? How do I future-proof my career and my skill set?
I'm asking all you Struts developers out there the same question: What steps should we be taking to prepare for the future? Where do you think our focus should be?
Here's a bit of my thinking:
There seem to be two general categories of web application frameworks: Those that are action based like Struts, and those that are component based like
JSF.
I pretty much have to pick one and head in that direction. If I pick action based, I may want to start looking at the early release versions of Struts Action 2. since it incorporates the existing Webworks framework, it wouldn't be a bad idea to start looking at Webworks. In any case, I don't see the use of Struts tags to develop web pages as lasting much longer.
If I pick component based, Java Server Faces (JSF) is the clear choice.
JSF is now officially mandated as part of the Java EE 5 specification, and Sun was pushing it very heavily at Java One. The other big vendors, such as IBM and BEA have backed it pretty heavily also. Even though in my opinion, the code in JSF web applications can seem bloated and overly complicated, the fact that someone can write a JSF control and I can just plug it in to my web application is a very strong advantage. I think that spending some time learning JSF would be a wise investment of time.
And of course.. what else? AJAX is now the rock star of the Web Application space. The presenters at Java One figured out after a while that all they had to do was put the
word AJAX in the title of the presentation and the room would be full.
Anyway, I've rambled on long enough. What do you all think?