Posted by gvix
on May 9, 2006 at 9:42 PM PDT
Are there too many Java frameworks? Or is Struts still the king?
A recent discussion on the Queensland JUG mailing list here in Australia, has echoed some of my thoughts on Java frameworks. Before I point you towards this list and the messages in it, let me confess something.
I have never used Hibernate commercially.
There. With that career ending publicly stated confession, let me take a bow and get out of the way to contemplate a career change to opening my own curry restaurant (Ah, at least I would be able to eat my own creations).
For that matter, I haven't actually ever used Spring. Or Tapestry. Or Velocity. Webwork? No. I do have books on Hibernate, Spring and Tapestry.
While I am in this self-destruct mood, let me add. The last framework that I actually used and can tell you everything about in a heartbeat is Struts, version 1.1. I have only recently used Struts 1.2, and would be clueless if you asked me anything about the new Struts Shale Framework , based on Java Server Faces.
For me, the requirement to use anything over that framework didn't arise (the fact that my day job requires me to work partially with ASP.NET may have something to do with it as well). Unlearning a solid, reliable framework that did everything that you asked of it, just didn't seem right. There is not a single case I could make against using Struts (1.1 and 1.2) in production environments.
So, back to the list. Paul Reedman , responding to an article on a failed Java project in West Australia, hit the nail on the head by saying :
"Java Frameworks good grief what a joke, take your pick we have a million of them. Everyday on Server Side I read about a NEW, FANTASTIC, LABOUR saving framework.
I still run into Java projects that build their own frameworks !!! Yes Struts or hibernate is not good enough, we need our own framework, so lets spend precious several weeks (or months) of the project time recasting a new web framework."
He goes on to add:
"Another thing I have noticed is that Java people love building layers. So a particular developer doesn't like the interface into hibernate or struts (or whatever framework) so they build another layer on top of the framework.
This layer then becomes complicated and so a whole bunch of other people add to the layer in an attempt to make it "easier". (which doesn't happen because all they have done is to make it more complicated). Of course this new layer hides everything and soon you have no idea what you are doing. Importantly no one documents this new layer, so when new people join the project, they ask "I don't understand this framework..". Of course they don't know that underneath all of this software is plain old struts which has disappeared from view."
How true. Plain old Struts. Even though I have a propensity to add multiple layers to my Struts projects, I love the fact that Struts is the glue holding them together in a working whole. There was a never a requirement weird enough that made me think, "Hmm. Maybe Struts can't do that, better look at other frameworks".
Or maybe, I am holding on to the past without thinking about the future. Would I still be using Struts (ok maybe 1.2 instead of 1.1) 5 years from now? 10 years?
Or would I be giving away free rice with your curry?