I’ve never done any J2EE programming. However, I have written business-critical code. I’ve written my fair share of LAMP code, and I’ve written enough Java code to last me the rest of my life. It’s no secret that I prefer Perl to Java for web development (and just about everything else).

I appreciate that addressing practical problems allows thoughtful developers to identify common problems and extract patterns and convenient abstractions to make solving similar problems easier in the future. I expect a mature language and platform to allow and encourage that.

In Defense of J2EE’s Complexity illustrates that idea, to some degree, in the evolution of the current best-practice J2EE tools. However, read the last paragraph:

… If you reduce complexity to a level that BOZOs start to contribute, you end up with even more serious problems. Any one whose had to maintain a VB application would vouch for me here. Software engineering needs to have a certain barrier to entry to keep BOZOs out.

I really don’t mind saving my brainpower for the difficult tasks, and I have much trouble seeing how someone not smart, or dedicated, or masochistic enough to slog through everything required to set up a productive J2EE environment diminshes the people who do.

Perceived elitism is a terrible justification for unnecessary complexity.