HCL translates the abstract mathematics of inversion into a set of expandable and efficient C++ classes. During the SEP conference on object-oriented programming Claerbout and Biondi (1996), Mark Gockenbach and Bill Symes convincingly demonstrated that the HCL library can be used in small to medium seized seismic research problems. Over the summer, SEP wrote concrete C++ classes that implement HCL's abstract base classes and that read and write traditional SEPlib data files. Martin Karrenbach 1996 found how to link Fortran90 with the HCL framework.
However, C++, and consequently HCL, are not easy to learn for researchers who traditionally write Fortran 77 programs. It is yet unclear if it is desirable or possible to hide the C++ framework from SEP researchers by having them write Fortran subroutines. Additionally, C++ compilers have not reached the maturity of C or Fortran compilers. We encountered several C++ compiler problems during this summer, and currently our code only executes on SEP's SGI Power Challenge. Reliance on a combination of Fortran and C++ may severely limit the software's portability.
In conclusion, HCL seems to facilitate the cooperation SEP is seeking. Joel Schroeder 1996 demonstrated HCL's ability to reuse successfully a sophisticated solver written by a numerical analysis expert, Mark Gockenbach. The HCL class hierarchy proved elegant and flexible.
We are, however, less fascinated by C++, in which HCL is implemented. C++ is at best a compromise between efficiency and object-oriented elegance. Finally, we are not convinced yet that a HCL framework that combines several computer languages, particularly C++ and Fortran 90, would be sufficiently portable. Portability is especially important if remote HCL users are to collaborate.