Friday, 11 November 2011

JavaEE6 and the Ewoks

JavaEE 6 is a great step forward in Web/Enterprise development. The Web Profile, introduced in JavaEE 6 offers an even lighterweight version of JavaEE6. However there are two problems ahead. First the famous adoption problem as still many coorporations are stuck with version 1.4 and next the resistance to not to use JavaEE.

Star Wars fans usually have mixed feelings on teddy bear like creatures called Ewoks. Those who had watched the tv show 'How I met your Mother', may remember the episode on Barney's Ewok theory. According to Barney the appreciation for the Ewoks can be explained with the Ewok Line which basically suggests that anyone born May 25, 1973 and was old enough to think Ewoks are childish by the time they appeared on the Return of the Jedi, simply hates them. However those who were born after, thus being young enough to find them cute, loved them as Ewoks remind them teddy bears.

There is a similar pattern in the JavaEE world. Those who are old (and unlucky) enough to use J2EE 1.4 (EJB 1.0/2.0/2.1) in large projects which were heavyweight, had a killing development environment (RAM eating buggy IDEs, servers booting over minutes), over engineered architectures and probably failed resulting a migration to Spring, tend to hate and stay away from JavaEE with a passion, no matter what version is subject to use. So actually the release of JavaEE5 did not really impressed everyone.

However JavaEE has changed. With the advantage of being open and having a large community, forced JavaEE to reshape itself by taking good parts from frameworks such Spring, Hibernate and others. First change was the architecture and coding style. EJBs became lightweight POJOs, unusable entity beans had been replaced with JPA, REST and Web Services became standard and an integral part of the runtime and finally annotations took over XML. Still some might argue JavaEE5 was not yet ready since it was not as mature as Spring and the development environment was still not quick and responsive which I might agree. Using Spring on Tomcat instead of EJBs and JavaEE5 on an application server would greatly increase the development productivity but still JavaEE5 was big step forward designing, leveraging and architecting the Enterprise Java platform from strach.

JavaEE6 aimed the weakest points left. Maturing the platform while offering a fast, lightweight runtime and development platform. Those who suggest using Tomcat because it starts up few seconds where a JavaEE Application Server would take minutes lost their ground with the new JavaEE servers such as Glassfish or Jboss which would start just a little slower than Tomcat. Still if you are a fan of Tomcat, it already has an JavaEE certified version called TomEE which uses OpenEJB / OpenJPA and boots in just a few seconds more than a regular Tomcat.

JavaEE6 not only offers the standards, ease of use, a proven design but also what has been left till now, the developer productivity with the Web Profile which support all you need other than the MDBs. You do not need full blown heavy servers or frankestein IDEs and do not need coffee breaks on builds and server restarts. Downloading the JavaEE6 sdk which is bundled with Glassfish and your favorite IDE is all you need. You can also use Jboss or TomEE as your server.

JavaEE6 is definitely worth to try. It might have taken some time but with following the path which frameworks and the community has pointed, JavaEE became rock solid, cool and productive environment. Some may argue about the vendor support but as the community shifts to JavaEE6, all vendors would only left with one choice to follow and it is for sure whatever happens Java will be the future of development on the enterprise world.

1 comment:

  1. I used to hate Java EE 6 before I started learning it. Now I absolutely love JSF 2.x, CDI, JPA and the tooling support for these in Netbeans, I don't want to go back to J2EE 1.4 days. JEE 6 FTW.