|
In comparison to C++
Except in graphical applications, Java isn't slow anymore. Sun has really optimized their just in time compliation, so they're better able to optimize to system state than pre-compiled binaries.
Further, Java enforces stricter syntax than C++, so coding in it is less prone to syntactic errors and the code generally looks more uniform.
Finally, Java includes a far more robust core library than C++ does. Java coders, out of the box, have more tools available to them than does the C++ coder. Further, because the API is part of the spec, support for all of these core libraries is expected from every implimentation.
Further, Java is much more forgiving than C++. A poorly written Java program is more likely to run successfully than a poorly written C++ program. The chief example of this is with memory management - Java handles it transparently whereas C++ requires the programmer to deal with it.
In regards to C#
I haven't worked in C#, so some of my impressions may be erronious.
Java is more open and transparent than C#. Whereas Sun has created an elaborate community process for integrating improvements and freely publishes almost every detail about Java short of source code (although I believe even that is changing), as far as I know Microsoft keeps much tighter control over C#.
It only costs $150 to become a Java Certified Programmer (last I checked) - I don't know how much it costs for equivilant C# certification.
Java programs are (sorta) platform independent - graphical glitches and poor programming somewhat inhibit this, but most of what's written in Java can be ported with no change. C# is basically only Windows by design.
|