To help maintain Jest, its classes are accompanied by simple test routines. Furthermore, Jest includes a series of research-type examples that, due to our laboratory's reproducible research mechanism, are recomputed at the push of a button. To maintain Jest, we routinely and automatically execute all of Jest's test and example routines. Furthermore, the test and research cases complement Jest's Javadoc pages by offering a programmer illustrative examples.
In general, Jest's code is more readable than comparable C and Fortran implementations. On the numerical battlefield, when numbers are added and square roots are taken, Java is superior to C due to its lack of pointers and addresses. Here Java's readability is generally comparable to Fortran. On the abstract algorithmic level of solvers, Jest's mathematical objects are unsurpassed in conciseness and generality. Overall, as in every object-oriented language, a lot of dirty details, e.g., an array's parameters or input and output details, are hidden in Jest's objects.
For the future, I envision reproducible electronic documents that distribute scientific research on the World Wide Web. Reproducible research documents (, , ) organize an researcher's writings and his software implementation of his ideas into easily accessed and maintained packages. The online version of an electronic document, as shown in Figure 3, offers readers buttons that initiate the recomputation of the document's results.
![]() |
Due to Java's security features, an electronic document implemented as a Java applet could be downloaded and safely executed by any standard Web browser. Thereby Java enables us to combine a scientific article with its underlying software while it avoids time-consuming and error-prone installation and compilation. The resulting convenience and completeness of reproducible Web documents should foster collaboration among researchers and increase research efficiency. Jest currently contains Java applications. However, first experiments show how Jest's application can be extended to Java applets and how they can be integrated into a reproducible Web document.