Java Enterprise Development - 2010 style
I woke up the other day and realized its 2010. When I was a kid, year 2000 was far, far away (well not quite, but hey when you are 7 years old 13 years is a long time).
In 2001 we were supposed to be colonyzing the moon. In 2010, Jupiter would be within our reach. And there are reliable reports indicating that 9 years from now flying cars and aritificial life forms should be common place. I must admit: the kid within me feels kind of disappointed.
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 use annotations everywhere (your JPA entities, your Session Beans, your Servlets) and even start to forget XML syntax
- 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 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.