Here's a commentary on the complexity of J2EE over at the Java Developer's Journal. Here's the first couple paragraphs:
EJB. JSP. JMS. JMX. JCA. JTA. JAAS. JAXP. JDBC. JNDI. This is a partial list of the acronyms you'll find in the 228-page J2EE v1.4 public draft. Of course, I was able to assemble this list of acronyms before I reached the bottom of page six.
This new version of J2EE is presented as the Web services version, so to be fair I should add SOAP, SAAJ, JAX-RPC, and JAXR to this list. In this age of integration, I wouldn't feel right if I didn't include JCA and JACC. I also feel obligated to at least mention the unfortunate specifications that were absent the day acronyms were handed out, like servlets, JavaMail, J2EE management, and J2EE deployment.
Yowza... he's totally right. I recognize all of them, but I don't know what they all mean, let alone the tech behind them! And I'm knee deep in J2EE right now... SAAJ? JCA? JAAC? Oof. I'll have to dive into that spec it seems.
The question that I'm asking to myself lately, in a very harsh reality sort of way is, "By learning all these disparate technologies, am I just wasting my time, or am I bettering my knowledge which will lead to better opportunities in my career?" Part of me thinks that I'm still young, the other part of me asks why I should care what SAAJ means... I should be past the "details" part of my career by now. Well, that's wishful thinking. I'm a programmer and I like it...