Using Java for this fourth generation of our basic performance analysis tool was an experiment. The first part of the experiment was to determine whether the graphics performance of Java would be adequate. Although Jumpshot does not display complex views as quickly as did nupshot ( with its direct X interface) we find it adequate for our purposes. The increasing significance of Java is likely to cause performance to improve over time as well. The functionality of the graphics interface, considered against Jumpshot's rather modest needs, is also adequate, and also getting better.
The second, nontechnical, part of the experiment was to determine whether the only really new benefit conferred on the project by the use of Java, namely the ability for Jumpshot to run as a Web application, would be worth the effort. This capability turned out to be more useful than we anticipated, for two reasons. First, running Jumpshot from the Web browser on one's laptop connected to the network turned out to be useful for demonstrations and lectures, as well as in allowing others to try it over the net. (The Jumpshot applet can be viewed at http://www.mcs.anl.gov/\ lusk/aptest/lib/jumpshot.) Second, the environment portability problems described below are greatly ameliorated by using the Web interface, with no loss in performance.
The main drawback to the use of Java was the lack of portability of Java environments. We use the JDK (Java Development Kit) for portability. Although the Jumpshot program's Java code itself is portable, the way Java is locally installed on Sun, SGI, and IBM workstations, and under Windows95 or NT, can be critical. Running Java programs typically involves setting certain environment variables, which can conflict with settings required for other applications (e.g., Web browsers). Since we would like users to use all our tools in the same way in all environments, this can be frustrating. Again, we expect the situation to improve over time.
Java libraries are rapidly evolving, and this caused considerable discomfort as JDK 1.1.2 evolved into 1.1.6, which is the level Jumpshot currently requires. With the acceptance of the Swing GUI, which Jumpshot uses now, and the upcoming release of JDK 1.2, we expect these problems to lessen.
At any rate, the overall verdict on the use of Java for this project is positive, and we expect to continue to use it as Jumpshot evolves.