Java EE 5, still too complex

The Java EE 5 architecture, with its use of annotations brings the Java world close to being agile. The architecture is absolutely fantastic and powerful, with superb messaging (JMS), persistence (EJB3), transactions (JTA), and integration (JCA) capabilities.

However, on the presentation side, for the web world, Java is still behind both .NET and agile frameworks like Rails or Django. JSF is cumbersome, and still too attached to the systems-programming intensive request-response Model2 that ended up in JSPs and Struts. Wicket and Tapestry are possibly the top component-based development web frameworks for Java. But they are both only used by a relatively small community, and documentation, mostly in the case of Wicket, is deficient, especially when it comes to topics such as integration with persistence frameworks.

In terms of setting a complete development environment, it is painful. Setting up Netbeans/Eclipse, JBoss/Geronimo/Glassfish, Wicket, and EJB3 to play nicely with each other is not easy, and it has lots of rough edges. It takes too long to setup an environment and start coding.

That myriad of frameworks and standards is what makes Java EE so powerful, yet so cumbersome. I was hoping annotations could have solved most of the integration complexity, but I am disappointed. So, sadly, my hopes for a “new Java” are yet once again down. Java EE still gets on your way to being productive.

I am back to Rails for the time being, at least until Java EE 5 matures.

2 Comments

  • Have you looked at Seam yet? I find that it really does a tremendous job of plugging the holes (many of which are there for good reason) in J2EE 5. Its amazing how much stuff “just works,” how little additional code you need to write to do anything beyond, literally, business logic, bean layouts, page design, and page flow, and how fast it is to use. Plus you get access to the huge number of available Java libraries, something not to be discounted.

    As for setting up an environment – download Eclipse/Callisto, download JBoss, configure the server screen in Eclipse, and you’re done. Besides being under 10 minutes, its a one-time hit.

  • I have not at looked at how Seam plugs in the holes, and I know that it is possibly an alternative. The only reason I never looked at it was my lack of appreciation for JSF given the lack of runtime and development support. But that was a couple of years ago, and things have moved a lot since then.

    While I appreciate the flexibility in enterprise Java, it is the inability of Java vendors in the JSRs to really agree with each other on any given standard, what drives unnecessary configurability and does not really increases flexibility but vendor lock-in. Let’s remember that this is why Seam went originally off the official path, first to plug in the holes and make it usable, but also to increase lock-in. Not exactly Java.

Leave a Reply

Your email is never shared.Required fields are marked *