Did Spring kill EJB for greenfield applications?
Indeed.com shows that in November, 2007, Spring overtook EJB as a skills requirement for Java job listings.
Being a Spring enthusiast and and indeed.com watcher, I noticed this trend on indeed.com recently and was going to write about it, but Rod, always ahead of the curve, beat me to the punch. (It should be noted that Rod's comments are directed towards EJB and not JEE. JEE is fine thanks.)
Here are the graphs from indeed.com:
[img_assist|nid=502|title=EJB vs Spring Job Demand (Absolute)|desc=|link=none|align=left|width=540|height=300]
[img_assist|nid=504|title=EJB vs Spring Job Demand (Relative)|desc=|link=none|align=left|width=540|height=300]
Rod goes on to write:
"Given the immense amount of legacy EJB, this is amazing. Presumably, few new projects now use EJB... We see that EJB requirements are stagnant or in decline, while Spring requirements are growing at an ever increasing rate... Indeed, it's largely been the pro-EJB lobby who have (for whatever reason) presented the two technologies as direct competitors." --Rod Johnson
Do you think EJB is dead for greenfield apps? Do you think Spring killed EJB? Or do you think that Spring and EJB will split the server-side component model market?
A final note from Rod:
While it's not an apples-to-apples comparison, it is reasonable to consider Spring and EJB as alternatives for the core component model in enterprise Java applications. And it's clear which is now in the ascendancy.
Frankly, EJB was in decline before Spring's ascendancy. EJB 1.0 was a disaster. In fact, the J2EE blueprints which promoted the misapplication of EJB and then the benchmarks that followed is what really killed EJB. EJB 2.x was not compatible with EJB 1, and EJB 3 was a complete rewrite as well. EJB3 was at best Spring's retarded cousin (see Interesting Times in the Java Enterprise). I dislike EJB3 as you can see from this link, Spring just seems so much cleaner and feature rich.
However, EJB is far from dead, isn't it? Is it really fair to compare a general purpose framework like Spring (i.e., Spring MVC, Spring WebFlow, Spring XXX) with a very focused framework like EJB? Relative comparisons are not very fair to established players as you can see by this graph comparing EJB3, Seam and Spring.
[img_assist|nid=501|title=Seam EJB3 vs. Spring|desc=|link=none|align=left|width=540|height=300]
See Rod's blog about this at: Spring overtakes EJB for job demand
|rick hightower||cto of arcMind||blog|