The development of these test programs has been encouraging while at the same time quite frustrating.
The frustrating part is the different behavior on different platforms and even different implementations of Java on the same platform. This means that each change has to be tested on many different computers to reach the goal of a reliable, platform independent product. The layout of components (buttons, panels, etc.) is particularly ornery: there seem to be numerous bugs in the different implementations, so that a layout that works on one will fail on another. Also, some components just do not work well on some platforms (e.g. scrollers on Windows 95).
The animation is also very implementation sensitive. The current champion out of the implementations I have tried is (I am reluctant to admit) Microsoft Internet Explorer 3.0 for Windows 95. The latest Netscape 3.0 for Windows 95 becomes quite unresponsive for rapid animation (the beta 5 version worked much better). Netscape 2 under Solaris reliably crashes if the animation "speed" is increased above 100.
The encouraging side is the enormous improvements that have occurred in the Java implementations over the last three months, particularly the vast increase in speed yielded by the JIT compilers under Windows 95. What started off as painfully slow and jerky animation, ended up as quite smooth and acceptable. The Microsoft version in particular works very nicely, with quite smooth animation of the graphics while retaining responsiveness to mouse events. The animations are now better than a Visual Basic version using an off the shelf graph control.
The other encouraging feature is, I suppose, what is promised by an "object oriented" language. Leigh Brookshaw has provided us with the Java Graph Class Library which does all the hard work of scaling axes etc. and it was certainly easy to tap into this resource. His original classes work best on static plots, and I kludged them to give nice animation. However his latest version 2.4 comes with an example of how to add double buffering externally, which I haven't yet tried. It was also easy to develop three different applications using much of the same code - certainly easier than in my old Fortran versions of the same ideas!
A separate difficulty is the documentation to go with the demonstrations. Putting even the simplest technical text into HTML is at best unpleasant, involving cumbersome HTML codes (e.g. for super and subscripts), graphical inserts for Greek letters, and character by character spacing and alignment. More complicated structures are essentially impossible. I have experimented with IBM's TechExplorer and am quite encouraged by this possibility, but it is unfortunately only available for Windows as yet. HTML 3.0 seemed to promise much for typesetting technical text, but HTML 3.2, which is likely to be implemented, dropped these enhancements.
I am optimistic that in a year from now, when I may actually teach the class again, Java will provide a useful platform independent tool for computer aided teaching. Producing good accompanying text is a second challenge.