Skip to Main Content
The author presents a design for a software framework in which object-orientation is used intensively during the construction of an executable but where there is no runtime presence of objects at all. Indeed, they can't be present because the final executable will be compiled and linked from Fortran 77 source. This counterintuitive strategy emerges from the problem domain and its constraints; it is presented here both for its intrinsic interest and for the new light it sheds on how object-orientation can be useful in scientific programming. The hypothesis presented here isn't that object-oriented programming is generally inappropriate - rather, the author proposes that the effective use of object techniques is a consequence of good design, not a precondition for it. PyNSol, the Pythonic Numeric Solver is an application development environment for finite difference and finite volume numerical methods. PyNSol is targeted to support researchers in the environmental sciences, but it could also be useful in other settings. PyNSol is discussed here primarily as an example of an alternative approach to scientific computing.