However it did deliver three important facilities which, in addition to a huge marketing campaign, had sufficient merit to ensure its growth. Java provides garbage collection and a standard threading model, which C and C++ lack, and came with a standard GUI library (initially AWT, but now SWING).
Because of its popularity, much work has been done to solve the performance problems, both with high quality native code compilers, and also JIT based bytecode interpreters. In addition Sun has added weak facilities for polymorphism in version 2 which alleviate some of the disgusting casting previously required.
We're using the GNU gcj native code compiler, which is reputed to have reasonable performance. I would like to also test a good JIT based interpreter.
We currently generate gnuplot command files to plot the results as jpg files for our website. The data can be viewed in an interactive graphics console by running gnuplot without arguments, then typing
load "speed/machine/hostname/plotters/ack.gpl"where 'ack' is replaced by the name of the test.