next up previous

1.4 Does Computational Science have Language Requirements?

As Wilson pointed out, there has been a lack of an effective language to communicate new ideas and results in computational science. This is in part due to the diversity of the computational science community.

Currently the most popular languages for computational scientists are Fortran77, C, and C++. Fortran does not allow the programmer to structure programs so that they reflect the logical order of ideas involved in addressing a problem, and it is often complicated to delineate new contributions and modifications to existing large scientific Fortran codes. Due to this inflexibility Fortran appears to be loosing ground, even though F77 is much easier to use than C++, which is growing in popularity. From a computer science viewpoint, there is very little difference between C and Fortran, except that C has marginally better facilities for structuring programs than the original Fortran77. Much more significant are the differences between C and a parallel C, or between Fortran and a parallel Fortran, and also the differences between the various styles of parallel programming. These differences are already having a big impact on software development for computational science, and it is not at all clear which "new practices" are the best. But it seems inevitable that significant changes in programming practice will have to include an increased familiarity with parallel machines and thus parallel programming.