Evil_Trunks said:
In High School, they taught me C++. In College, they taught me Java. But both are basically just trying to teach you concepts. If you understand the concepts behind programming such as polymorphism, inheritance, etc. Then you can pick up most recent programming languages and be successful at it.
Java and C++ are very similar anyways. One huge difference why Java would never be used for videogames, for example, is java has a built in garbage collector which takes care of the memory leak issue, however that has a tremendous overhead that comes along with it.
Both languages are very good, for very different reasons.
Not really. In a lot of performance tests (except from test that require tons of array bounds checking), Java performes as well as C++. Not taking care of memory deallocating prevents having a lot of hard to trace memory errors. Contrary to the claims of people have here, C# or Java don't take that long to learn. Once you know one OO language, you basicly know all of them. It took me one day to convert a multi-threaded java program to C#, including half a day to actually install the microsoft C# development enviroment. Java is used in a lot of research enviroments already, and (thus) I wouldn't be suprised if it would be one of the major languages in the, say, 10 years. C, assembly and maybe C++ will always have their role in low level (OS, embedded sytems, etc) programming though.
As for C# vs Java, the choice basicly is:
Do you want a really good programming environment (Visual studio) vs a slightly less, but free programming environment (eclipse/whatever). Java has the big advantage of being platform indenpendant, which means your program will not only run in Windows, Linux, Max OS X, BSD, etc, but also on mobile phones. C# programs only run on windows-like enviroments.