On recent conversations with some high level managers and directors from different companies (customers, colleagues, etc.) I have been hearing the same sad story way too often. "Java is a great framework but it is getting too complicated, too many options ..".
Java has been in the web world since its dawn and has been very successful. First with applets, being pretty much the first version of possible rich content in a browser. I can remember clearly the first applet that I coded sometime between 1996 and 1997 where I was doing a simulation of 2-D Leornard-Jones potential of a monoatomic systems.. neat little project and I'd laugh remembering the hardware configuration.
Enough nostalgia.. back to the point...
After that, java kept its pace into the web world, from Applets to JSP/Servlets, followed by Struts, JSF, Struts2, etc.
I understant that evolution must be part of the nature and within the Java nature, this evolution is becoming a bit too complicated and is giving the competitor a big opportunity. I believe Java might be getting out of the rails and instead of looking like a consistent tree log it will look more like a grape tree.
With so many possibilities to create a solution, people who are not familiar with the possible technologies and frameworks (we know how painful it is to keep up with things...) can easily get lost and high level managers will easily get lost.
Freedom is good but too much freedom might not be good and the fact is: Architects are getting very creative and finding nice solutions but people move around and the manager will have to handle the situation with new people who will have new ideas.
That's when the competitor is becoming stronger. Having a closed box might be the best solution for many people - and some of them are realizing it. The competitor is always playing the catch up and buying innovation anyways.. Johnny Lee is a good example of them buying it... nothing against it, just to point that it is easier to buy innovation when it is ready than really motivate people to do research.
It is a bad situation and partially on the different companies (Sun, IBM, RedHad/Jboss, BEA, etc) and on the Java community for not acting on it. Java might see a similar "bubble" as seeing recently in the laptop marked. Not everybody needs a dual core laptop with 4GB of memory. This month's wired magazine gives more details on this laptop bubble.
My point is. The "internal" fight between different frameworks that overlap each other many times is not contributing and I believe that a better juristriction might be benefical.
Anybody can come up with a framework, publish a book and suddenly becomes a must-be-in-a-conference guy but ... is it what we need? Another framework? Another way of mapping A to B? Another MVC2 implementation? Maybe what we need is.. better frameworks that can be taken as standards without overlapping ... well engineered and not nice-hacks-from-basements emerging all the time with a new published book on the side.
I trully hope this situation will not be a long term problem...but people who control the money are seeing it...