Java and .Net are in the battles again. It always seems so absurd at first glance, Java being a language, and .Net being a platform. .Net is centered on C# which is a blatant copy of Java with a few hacks and a few modifications. Sun and Microsoft are both running around claiming theirs is better. J2EE is held up as some stunning concept and not just a loose federation of ideas under one standard. CLR is seen as something other than the bytecode for C# [VB.Net and Managed-C++ are, like J#, just migration plans].
So what is the difference between the two?
1) Sun lack Microsoft’s power. What does this mean? It means Sun have to worry a lot more about developers. A dictator is the most effective form of government, however an open democracy is one of the better forms of society to be a part of. Microsoft are closer to the dictator than Sun, so .Net could quite well end up a better product by far.
2) JCP vs ECMA. This is an odd one. ECMA is the obvious better choice, and yet it’s only a part of .Net, while JCP is run by companies and not open, and yet all of Java is in it. My preference? Please put Larry Wall in charge. Failing that, open up JCP more or put all of .Net in ECMA.
What amuses me is the ECMA bit. No one seems pissed off that the Europeans are going to have control over .Net. You’d think the US government would be pissing themselves and the average introverted US developer would be cursing.
3) Open vs Closed. This is tricky. Open source will inhabit any gaps. Sun are not too bad at being a little open. Microsoft tend to announce things early. Apple win here, they play their cards so close to their chest that no one has a clue.
4) Free vs Costly. This is what drives my side of things. I am not tied to honesty, but I believe in working within an honest framework. I also believe that I should not have to pay a company money to do them the privilege of writing for their platform, dedicating some of my years of development to them and evangelising for them. Java is free. Sun have a free development environment and the Java books do not teach via an IDE. .Net’s framework is free. Microsoft charge 1000 dollars for a properly working version of their IDE. I don’t know if there is an MS-Amateur version which would be fully working. I don’t believe that Sun’s payware IDE is needed to code Java. The .Net books from what I can see, teach largely via VS.Net.
5) Both sides are full of misinformation. If MS could allow people to develop without throwing thousands of dollars away, ie) don’t see developers as customers but followers, then I would happily develop in either Java or C# until a better environment/language came along.