
Originally Posted by
bcasabee
In my opinion, I think the reason why java is more popular is because of flexibility and freedom from vendor lock-in. A .net application means buying almost everything from microsoft.
Your java program can run on almost every available OS in the market like Linux(free), Windows, Unix, Mac, etc. While a .net application only runs on Windows as far as I know.
A java based web application can run on many servers like tomcat(free), orion etc etc. But an ASP (microsoft) based web application I think only runs on IIS which is still from microsoft and you buy it.
A java based distributed application can run on may application servers like jboss, websphere, etc etc, and many of these application servers are free.
In .net, the application server is already integrated into the OS where the .net framework is installed, and no doubt, this OS will be only windows, so again, no other choices for you.
The tools available for creating .net applications are also microsoft centric. As far as I know, only visual studio (still from microsoft) is the only decent tool which can be used for creating .net applications and its not free, you can pirate it though at your own risk. With java, there are many tools to choose from, you can have eclipse(free), netbeans(free), JDeveloper, WSAD, etc etc. And many of these tools are free and can run on free OS like linux and some Unix variants. And most start up companies who are so particular about their budget would rather choose the free than buying microsoft products, thus the reason why java is leading.
So if your a windows fanatic, want to donate to Bill Gate's Foundation, and want to be lock-in to microsoft products, choose .net.
If you want something free and have freedom of choice, choose j2ee.
But with regards to which tool(j2ee or .net) can solve best a customer's business problems, all will actually depend on the software engineers who are designing the system.