On the other hand, I´ve recently started a couple of brand new enterprise applications in Java, from scratch. How does it feel like starting a J2EE 6 aplication in 2010? Lets take a look from the point of view of a developer who just got started in the technology:

You use the Java EE 6 Web Profile, and don´t need to pack your application into an EAR file.

You code your domain model using a xml-less ORM fram framework (JPA). JPA actually makes sense and does what its supposed todo without fuss.

You let your JPA implementation generate your database schema for you, which it does with surprising efficiency.

You use modern, component-based view frameworks (like Facelets or Wicket) , and get by writing little or no XML for defining navigation (remember struts-config.xml?)

You don´t bother writing deployment descriptors for all your session beans. You just add one annotation to any POJO and it automatically gains EJB powers.

You only write Remote Interfaces when you actually needs a component to be remotely accessible.

You have no idea what CORBA is.

You have a vague idea of what JNDI is, but you use dependency injection everywhere to get what you need.

You develop using a lightweight application server (glassfish 3) that redeploys your application in seconds every time you make a change. Most of the time you don't even notice it.

If this list doesn't feel like sci-fi to you, congratulations! You are one of the lucky ones that missed all the fun of PortableRemoteObject.narrow(...) , 5 min redeployment times and bean-managed persistence.

Looking back [5]it seems like it took an awfully long time for the platform to get there. And it did. I think we ought to give a big thank you to the guys at Hibernate, Spring and countless others for pushing the platform forward by pioneering most of the good features in Java EE 6.