Java has been around for more than 10 years now and has accumulated a lot of unneeded stuff:
- Deprecated methods, classes and packages that are never removed,
- Packages hardly anybody ever uses (when was the last time you used javax.sound.midi?), and
- Language features that have turned out differently then we imagined:
- Packages were meant as namespaces to separate identically named classes. However, because package names are usually quite long and the average Java class import tens of other classes and we then collapse the import list in our IDE, we tend to get annoyed when an identically named class exists in multiple packages.
- The distinction between java and javax was meant to convey that javax packages were extensions to the standard class library. However, since JavaSE now contains lots of javax packages that is no longer the case.
- EJB 1.x and 2.0 - replaced by EJB 3.0.
- JDO - obsoleted by JPA before it was ever really used.
- JAAS - meant for client applications but used in JavaEE application servers in convoluted ways.
- JAX-RPC - replaced by JAX-WS only one version later!
- JSF - still fresh now, but I have a feeling it's not going to make it when compared to the myriad of web frameworks already out there.
- JavaBeans Activation Framework - needed for JavaMail and JAX-RPC but kinda crappy.
- EJB
- JDO
- JPA
- JSF
- JAX-RPC, JAX-WS
- JAXR, JAXB, JAXM
- SAX, DOM, JAXP
- JavaMail
- JavaBeans Action Framework
- JMS
- JDBC
- JTS
- and of course, the Servlet API
Written by
Vincent Partington
Our Ideas
Explore More Blogs


The Unwritten Playbook: Leading Without a Title
The Unwritten Playbook: Leading Without a Title Leading Without a Title: The Consultant’s Guide to Stealth Influence “Why should we listen...
Jethro Sloan


The Unwritten Playbook: Winning as a Team
The Unwritten Playbook: Winning as a Team Team Whispering: Navigating the Human Dynamics No One Prepared You For "We’ve gone through three...
Jethro Sloan

