I’ve had a couple conversations with people regarding .NET vs J2EE as a choice for application development and deployment. From a purely technical standpoint, the two technologies are very similar. The tools are powerful and detailed in both environments, and the end result is a distributed, object-based application platform.
But to me, taking the ‘C# is just like Java’ argument doesn’t actually address the underlying problem of a Microsoft vs Not-Microsoft solution. It took me a bit, but I think the best way to summarize it is thus:
The purpose of C# and .NET is to make money for Microsoft in tools, platform, and training sales. The purpose of J2EE is to get the job done. No one automatically gets rich when you decide to use J2EE as a platform. Which would you rather invest your time and money in, something where everything from the operating system on up to the deployment tools cost money, primarily to Microsoft, or a platform where the entire system can be designed, developed, distributed, and deployed on free software with the same level of stability and functionality? If support and training is important to you, then pay the people who know best to train you and support you, but you should not be charged just for your choice in platform.