For thirty years, from its inception through Fortran 77, Fortran has been the principal language of computational science. During this time Fortran's numerical capabilities have been remarkably stable and superior to that of other computer languages; the biggest changes have come in the form of increasingly diverse and reliable libraries of numerical routines. The union of Fortran, techniques for its use, and the extensive numerical libraries characterize the predominant infrastructure for computational science.

In the past decade, however, the increasing importance of dynamic data structures (particularly dynamic arrays), unix workstations, sophisticated interactive visualization facilities, and, more recently, parallel architectures-none of which Fortran 77 accommodates well-has spurred interest in the use of other languages for computation languages, most notably C. Recently C++ has also garnered considerable interest, and Fortran has attempted to address its deficiencies for modern computational science by evolving to Fortran 90. A general attempt is made in this section to compare the relative suitability to computational science of these four languages, two flavors of C (C and C++) and two flavors of Fortran (Fortran 77 and Fortran 90). Table 1 summarizes this comparison, and the following subsections attempt to rationalize these rankings from best (1) to worst (4)..

Table 1: Relative Rank of Languages for Computational Science.

- 2.1 Numerical Robustness
- 2.2 Data Parallelism Section
- 2.3 Data Abstraction
- 2.4 Object Oriented Programming
- 2.5 Functional Programming