Next: ACKNOWLEDGEMENT
Up: Schwab & Schroeder: A
Previous: Why not Java?
Jag translates the abstract mathematics of inversion
into a set of Java classes.
It shares the algebraic class hierarchy with
the HCL, a C++ library.
We found Java a more elegant and flexible programming
language than C++.
In particular, C++'s lack of garbage collection and
multiple inheritance burdens the programmer with very Gordian and
pedestrian tasks.
It is too early to decide if Jag will fulfill the goals that we
mentioned earlier. However, here are a few preliminary comments:
-
We implemented a large set of Jag classes
in a relatively short time
and we are confident Jag will be an excellent
library for prototyping.
-
We have not yet used Jag for a large scale, geophysical inversion problem
and
we doubt that Jag's current performance would be competitive with
the performance of alternative languages. However, we have not
optimized Jag nor investigated Java's budding high-performance efforts.
-
Currently, Jag reuses code very efficiently. In particular,
the solvers
are able to work with a wide range of vectors and operators.
-
Jag's interface hierarchy and its Javadoc representation
explicitly communicates to a
programmer the requirements that any new class has to meet.
The Java compiler enforces these requirements.
We are confident that Jag will prove suitable for
local as well as remote collaboration.
-
Finally, we feel that
Jag's ability to publish computational research on the World Wide Web
is the icing on the cake.
We hope that long distance collaboration and exchange will become easier
and we are looking forward to publishing reproducible documents
on the Web.
Next: ACKNOWLEDGEMENT
Up: Schwab & Schroeder: A
Previous: Why not Java?
Stanford Exploration Project
11/11/1997