In 1996 I started developing software with Java and JDBC and fell in love with the beauty of the language and the idea of creating common standardized, vendor agnostic APIs. The Servlet container system arrived in 1997 in the form of the Sun’s Java Web Server, adding to my enjoyment, and when EJB was introduced in 1998 and J2EE in 1999, I was hooked. I wrote books, did public speaking, worked in open source, and developed J2EE applications for production. It was wonderful to be part of such a huge sea of change in enterprise application development. But by 2004, the magic was gone.
I left open source and my J2EE evangelizing role in 2004, right after we had completed and released the J2EE 1.4 specifications. At that time I was on the JSR for both J2EE 1.4 and EJB 2.1 and served on the JCP Executive Committee. I had just completed a big book on J2EE Web Services that took me a year to write. I was exhausted, and to be honest, deeply discouraged. By its 4th edition (J2EE 1.4), my beloved J2EE platform had somehow become a Frankenplatform that threatened to kill its creators (me included).
I left open source and J2EE evangelism to become an analyst for Burton Group (part of Gartner), and while I continued to keep tabs and write analyst papers on J2EE, I wasn’t promoting it; I sounded the alarm. I wrote a paper that said the J2EE specification was in Jeopardy. It had become bloated and over complicated and simpler platforms like Spring and Hibernate were quickly gaining ground. In 2008, I left my analyst job and embarked on a roller coaster ride of start-ups mixed with a completely different kind of software development: I became an iOS (iPhone/iPad) engineer and entrepreneur (as it turned out the coding went better than the entrepreneur-ing).
I had left Java behind and never planned on coming back. But, while I was gone the rest of the community stepped up and started to reverse the insidious creep of scope and complexity that plagued J2EE. With the release of Java EE 5, 6, 7, and 8 things became simpler and so much better. It was like the monster had become something else, something its creators could be proud of again.
Since the release of Java EE 5, the entire platform has been greatly simplified from a developers perspective. The introduction and refinement of annotations, dependency injection, and the POJO programming models from Java EE 5 to Java EE 8 changed enterprise Java from something that was incredibly intimidating and complicated into a powerful but simplified environment for creating enterprise applications.
As I learn everything I can about this new platform I’m finding my passion for enterprise Java has returned and now that the platform has been handed over to the Eclipse Foundation and the open source community, I’m excited again! Looking at the massive changes that have been made to Java EE over the years, an old auto slogan comes to mind, and so I declare: “This is not your father’s Java EE.” The community of vendors and developers have reinvented Java EE with a re-birth in the form of Jakarta EE. There is still much work to be done, but with the platform in the hands of the open source community the future is very bright, and I’m excited to be back. I’m happy to say, I’ve fallen in love again.