The Two Paths Converge
The key issue that seems to make or break both .Net and J2EE is not their technical merits but how they listen and support their developer community. Will MS single vendor solution be faster and more responsive to change? Or will the JSR process with its large number of vendors and their conflicting but thought out requirements win over. I suspect that the largest effect on adoption will be the use of the Apache licensing on the JSR reference implementations. It seems to me that having access to the source code for JDO or EJB rather than reverse engineering ASP.Net or ADO.Net will be advantage, at least over Mono and other non-MS versions of .Net. Of course, it also depends on developer interest. Is Mono cooler than Java?
" .NET is not just comprised of C# and CLI. It consists of much more: ASP .NET, ADO .NET, and enterprise services-related framework classes, like the types present in System.EnterpriseServices namespace, which are responsible for providing enterprise services such as transaction and security, to name a few. These were not submitted to ECMA or any other standards body. Thus, since no one has complete knowledge of .NET, it's not easy to implement .NET on other platforms."
"If Microsoft decided to make our life really hard in terms of compatibility, it would also hurt its own customers. If it changes the APIs, that affects its customers as well. So I think the APIs will remain fairly stable, and I hope that Microsoft won't go into proprietary protocols or protocols that would make it really hard for us to implement Mono. There's is always the possibility it will do so."
I also hate the .Net advertising. One degree of separation, indeed. As mentioned in the Sun article, the biggest problem with the .Net Pet Shop demo was it's lack of separation. Separation is what keeps applications maintainable. I really shouldn't be surprised that the marketing is not targetted at technical people but they're the poor suckers that have to implement it.