When I read this post asking Microsoft to make .NET cross-platform, I wondered myself why they did not use Java -the one and only truly cross-platform environment-. Apart from the the obvious, Microsoft has very good reason to avoid making .NET cross-platform:
- The jewel of the crown is Windows, so opening .NET to OS X and Linux is like shooting on your feet.
- As Steve Ballmer said he loves ‘developers’… because they build ‘applications’…for the Windows OS. Fuck the Linux communists and the OS X snobs! If you get the same functionality on a free OS, why are you going to pay for Windows?
- Performance and cross-platform do not match. The good performance of .NET comes from its architecture, using the Windows OS APIs when dealing with I/O and display. It took years to Java to improve his performance, and now they are taking an approach similar to .NET.
- Most of the people think that .NET is a rip off of Java. May be if .NET does not take the cross-platform way to avoid legal IP problems with SUN… who knows!
- Microsoft does not care about .NET. The real sources of incomes are Windows and Office licenses. .NET is the key lock to keep developers in the Windows platform. If the key lock is opened, then they should throw away the key lock and buy a new one.
- Making .NET cross-platform is expensive, as SUN knows. If .NET does not give them direct revenue, there is no reason to invest on it. The business model is nonexistent for Microsoft.