I hated EJB. I still hate it and will keep hating it. Perhaps its not just hatred but its apathy. Be it EJB 1.x , 2.x or 3.x. Frameworks come and frameworks go and I don’t feel EJB has survived with respect to the hype it received. I would discuss some major points which get EJB lagging behind:
Too many diversified versions: For those of you who have been with EJB since 1 or 2 would probably agree how it vagabond the versions were. EJB. I once heard Debu Panda from Oracle saying : EJB 1 was like a Queen Honey Bee – Lot of Hype but did nothing. EJB 2.x came out like an Elephant: Like a mammoth, It could do a lot many stuff but eating away a lot of resources too! Then came EJB 3.x which is like a COW who is much productive and minimal resources.
But the big question is : You still need to write a lot of code! EJB is just not available in the student community. There are quite a few books, but they are industry oriented or rather useless.
Talk of the industry: When I used to take sessions for EJB for young industry guys. I get bombarded with questions on how I could help them use EJB to solve their problems!
Come on guys, EJB is OK but you don’t have to use EJB all the time!! Its like old days of 90’s when XML was very popuar and people just used XML with every second application! Give me a break!
Fine lets talk about enterprise now as EJB’s E stands for Enterprise. EJB’s model definitely gives you a lot of stuff for the enterprise framework but it surely takes all your resources – Manpower, Infrastructure and mostly contunity. EJB makes you lame. Once you have implemented a lot of things in EJB its quite difficult to move out of it. I hate you EJB for that. Many of my blog readers are avid Oracle and EJB fans, but sorry guys but EJB has #FAIL ed.
Competition: With EJB 3.x standing still, we have a lot many competing technologies at our hand. EAI frameworks like WebMethods, TIBCO and Kettle (Open Source) gives you far better implementation and reduce overall costs.
Another such framework which has not got the fame it should get is DWR – Direct Web Remoting. TIBCO sponsors this project and its a MUST try out.
The only thing I like about EJB is the persistence API but when things get complex, not many people can do a great job with it. So eventually they still end up doing more stuff.
Overall, I still hate EJB and feel it should reach its end of life!