Continual Replacement of existing frameworks
When an open source framework such as Struts or Hibernate gains popularity, each J2EE vendor releases their own
enhanced version of the framework (WebSphere Struts, OracleAS Toplink etc.). As these vendor-specific frameworks are
deemed proprietary, the java community launches a huge overhaul effort to replace the existing framework.
Hence - Struts (a perfectly good, useful and powerful framework) has to-date been replaced by Spring MVC which has been superceded by JSF (not to mention
a few other competitors like Wicket
and Tapestry