Addi's long reply was great, here is my shorter version:
1. need to test on multiple platforms
Sure, there are a few differences, it is not bulletproof yet, as the JVM implementation depends on the platform. These are being worked out constantly to fulfill the promise of write once run anywhere, but the time spent is hardly significant, compared to non-java, where there is a need to completely PORT applications from one platform to another, even among many Unix flavors, TEST the ported software, and maintain the multiple platform-dependent sources. Java has some flaws, but it has to be seen in perspective, and it may not be suitable in all applications, for example if cross-platform is not a big concern.
2. incompatibilities between JDK 1.02 and JDK 1.1, different virtual machines, different tool kits.
Addi has answered this adequately.
3. lack of open standards
Like what? Sockets? TCP/IP? CORBA? Which open standard does Java not support, or which one of it's supported protocols is proprietary?
4. poor performance
On the server side, yes, and these are being worked out.
5. "It costs more to write Java applications" [according to one developer]
This is not fathomable. Costs more compared to what? C++? Windows? A very unusual claim, but possible in theory. Definitely not the general opinion. By every count, it is easier to learn, implement, and debug.
-Krishna |