Slowly but clearly, Java as a platform for building enterprise applications is fading. One of the primary reasons is that, since the maturity cycle of Java platform to get new features added, is prolonged, the vendors went ahead and added their own properietary versions of features into the platform. This lead to vendor lock-in on one side.
On another side, to fill this maturity gap, the open source communities evolved and provided their own versions of solutions. Again, there is multitude of open source frameworks in Java that solves the same problem in different ways.
Another disruptor is SOA. How J2EE platform is addressing this paradigm?. Again, vendors took the lead by introducing SCA. But, there is a split between SCA community and JBI community.
Now, with all these, J2EE is also evolving with its own EJB 3.0 etc.
As a J2EE solution provider, the cycle for design decisions just got longer and longer...
This is not something which anyone would want in the ruthless race to achieve productivity and reduce the time-to-market of new solutions...
At the same time, there is no competent/equivalent platform is also available that could replace J2EE in the enterprise space.
So, There is a clear need for a replacement. But, there is no substitute.
The moment that substitute arrives, J2EE will lose the battle completely. I strongly feel that the new set of dynamic programming languages like Ruby has a strong chance of getting into enterprise space, provided they demonstrate 'enterprise-readiness'.
OK, Who gains from this fragmentation?. Obviously, Microsoft.
Microsoft has a very clear roadmap for an 'Integrated' solution set addressing the SOA and new set of capabilities in Office and Communications. Microsoft is clearly ahead of the game in terms of providing integrated solutions.
It would be interesting to watch who wins the game eventually?. Microsoft or a New Disruptive Platform.