Yesterday one of my colleagues sent me an e-mail with the subject "Enterprise application environments - does J2EE still have a future?". His opinion was that when comparing J2EE and .Net at the moment there is no real benefit of using J2EE or JEE as it will be known I think in the near future.
Summarizing he stated that pro-J2EE arguments like having no Vendor Lock-in, OS platform independence and having open source solution no longer really go for J2EE. His arguments supporting this were for instance when you use a platform from BEA or IBM you're stuck to using their components because when you would like to use a third party or open source component you'll be stuck working around a lot of integration problems. Another argument was "who needs OS Platform independence nowadays really?".
As such he concluded that .Net wins by points, J2EE just on Emotions.
Well I replied to him as follows....
To my opinion the only thing my colleague noticed are fading edges between J2EE and .Net. However this does not necessarily mean that all of a sudden J2EE is useless and does not meet Enterprise Application developments needs.
To my opinion it's fine that the two technologies are developing towards each other, because it makes sure the discussion about it will only grow and it will give the opportunity to have a critical look at the way forward for J(2)EE.
Furthermore it leaves the choice to customers and System Integrators like Capgemini for a certain technology more open, both being able to serve their needs. This might mean that the decision will be a "gut feeling" decision in some cases again! Some of my best decisions were based on my gut feeling....
As far as the ready-made stacks of vendors like BEA and IBM are concerned (he mentioned that in his email as an argument for vendor lock-in becoming a theme in J2EE) you see that those are moving towards out-of-the-box solutions to build a nice SOA for instance. This is different from building a Web application with for instance Spring and Hibernate, but it does very much have to do with Enterprise Applications and is based on the J2EE technology!
So to my opinion J2EE is still alive and kicking, and after 10 years now providing a solid base for a lot of Enterprise Applications and SOAs.
There's a enough room for both J2EE and .Net and if they will grow towards each other more and more we might en up with the best of both worlds in the end!