QUOTE(zi99y @ Nov 16 2006, 10:32 AM)
Can you recommend a good place to start learning Java, as I have no experience with it. I have been learning C# for a while though. Is the language similar/the same as the java implementation in .Net?
First of all, for any .Net lover reading what's follow, there is no such a thing that a better language, better OS or better religion... so no burst please
So first, .net is mostly the same implementation as Java... Not the inverse, Java is older ;-) Anyway, competition is good and Java would never have move so quickly for the last 2 years (jdk 1.5, GPL, etc...) if there was no .Net danger around. And .Net has also pretty good ideas that should be integrated in Java.
1/ About virtual Machines: .Net born because Sun didn't accept to play nicely with Microsoft when they wanted to hack the JVM for their own purpose (mainly com/dcom internal support, windows and office integration, etc..). So they made a .net VM that is actually very very close (performance wise) to jvm. So don't be fool, I have practical facts (actually a full benchmarking process) proving that Java is not slower than .Net at execution time, even if .net application are quicker at start up time. The main reason of this is the stupid java "design" for libraries management
. A painfull historical mystake.
2/ languages: C# and Java are very closed and are both good beasts. My personal opinion (2 cents one ;-) is that C# was more desined to seduce C++ developpers allowing things that Java will never let go. Anyway there is just little differences between the two languages. You'll learn them very quickly ( see http://en.wikipedia.org/wiki/Comparison_of_C_Sharp_and_Java
). C# was designed by the "creator" of Delphi and you can feel he seed in this stuff, like properties for example, something that Java really miss...
3/ Libraries: for features implementation Java is a complete differente word. You'll have same functionnalities (Xml, drawings, etc...) but with a different philosophy. But with google you'll quickly find correspondances.
Now, that is just my own mixture of facts and opinion. I used, honestly, both, Java and c#/.net (when you work for a software ingeneering company, you have to follow what customers want, even if I don't agree with directions ;-). And I still prefere Java...