I’m reading the book Agile Java Development with Spring, Hibernate and Eclipse, by Anil Hemrajani. About the author:
Anil Hemrajani has been working with Java Technology since late 1995 as a developer, entrepreneur, author, and trainer. He is the founder of Isavix Corporation, a successful IT service company (now Inscope Solutions), and isavix.net (now DeveloperHub.com), an award-winning online developer community that grew to more than 100,000 registered members. He has 20 years of experience in the information technology community working with several Fortune 100 companies and also smaller organizations. He has published numerous articles in well-known trade journals, presented at conferences and seminars around the world, and received the “Outstanding Contribution to the Growth of the Java Community” award from Sun Microsystems, the “Best Java Client” award at JavaOne for BackOnline, a Java-based online backup client/server product, and was nominated for a Computerworld-Smithsonian award for a free online file storage service website. His more recent project is the visualpatterns.com website.
It’s an impressive book, covering logging, remote debugging, agile practices, JMX, JUnit, Ant, POJOs programming, JSP tag libraries, and more. But now, I’m interested in commenting some paragraphs from the preface. Hemrajani wrote:
I began working with Java technology in late 1995, shortly before the Java Development Kit (JDK) 1.0 was formally released. Prior to that, I was programming in C and C++ for many years. I was truly excited about the features that Java offered, such as cross-platform portability, simpler syntax (simpler than C++, for example), objectoriented, secure, rich API, and more.
I have a similar career. At some point at 1995, I learnt the Java language and part of the library, becoming a fan of the language. It was a relief of C++ programming (plagued with new vs delete issues), and Visual Basic (no inheritance, no real objects). But I must admit the GUI interface was based on an ugly AWT implementation .
Over my 20-year career, I have learned a few things. Among these, my favorite is simplicity; anytime I see complexity, I begin doubting whether the solution is correct. This is how I had begun to feel about Java right around 2000, when the Java 2 Enterprise Edition (J2EE) started becoming mainstream. Note that from this point on, I will refer to J2EE as JEE because the “2” was recently dropped from the name by Sun Microsystems.
I agree. When Sun launched J2EE, it was a mess. For years, I thought they were right, but I didn’t understand the reasons for the underlying complexity of Enterprise Java Beans. Until I read Rod Johnson books on Java Enterprise development: then, I confirmed the crazy thing called EJBs.
My growing lack of interest in Java was a result of what I saw as unnecessary complexity in JEE introduced by layers of abstraction. I began to believe that Sun Microsystems (inventor of Java) was focusing Java and JEE on solving the most complex enterprise applications, but somewhat ignoring the relatively less complex, small- to medium-sized applications. Furthermore, I saw the hype take over people’s common sense because I ran across projects in which Enterprise JavaBeans (EJB) were used for nondistributed processing, such as local logging. I felt strongly enough about this subject to write a short article for JavaWorld.com in 2000 (http://www.javaworld.com/javaworld/jw-10-2000/jw-1006-soapbox.html) titled, “Do You Really Need Enterprise JavaBeans?” (About five years later, we saw EJB 3.0 specifications being rewritten to become more simplified, to ease the development.) This brings us to this book and the reason I wrote it.
EJBs are the works of devil. POJOs programming, Hibernate ORMs, and Spring framework, are examples of good design created by the Java community. Sun people saw the light, and adopted many ideas in the EJB 3.0 specification, but I think “too few, too late”. EJBs programming was a nightmare, that deserve to be erased from humankind memory.
At the beginning of each chapter, there is an illustration, describing a fictional story throughout the book. I can’t resist to include one from chapter 2 (more at visualpatterns.com):
More info about the book, at
That page has the TOC, and forewords by Scott W. Ambler, and Rod Johnson.
Another book aligned to these ideas: