Preconditions for widespread reuse of code
Preconditions for widespread reuse of code. In [I] Lubars gives a view of the present status of reusable code. He suggests that widespread use of reusable code will require both a change of attitudes by the software industry, and the establishment of convenient cataloging and indexing tools. The hope would be that with such tools programmers could more easily find whether reusable code exists to solve their problem. While I agree with Lubars on the need for cataloging, I suggest that this by itself will not solve the problem. Indeed, even if an excellent, easily available catalogue were available, I suspect that most programmers often would (and perhaps should) code their own solutions, rather than reusing code available via the cataloging. The unpleasant truth is that there is a lot of awfully bad software out there. It is often more efficient to do your own coding than to verify the quality of available reusable code. The IMSL mathematical software library suggests a better approach. IMSL (with which I have no connection or financial interest) supports its FORTRAN library , tests it on new hardware and new compilers, updates with better algorithms where appropriate. The user can thus have some confidence when he uses this software. If reusing code is ever to become commonplace, it will be because of companies such as IMSL. I have seen very little discussion of attributes of a programming language which contribute to reusable code. Two languages which have developed substantial libraries are FORTRAN and C. Many attribute the success of FORTRAN to its age. However other languages have been around for a long time, and have not developed the amount of reusable code that C has. I believe that the nature of the languages is an important factor. In both C and FORTRAN, the principle means of structuring programs is with the separately compilable procedure. As a result programmers think more about the program interface. It is usually a simple operation to convert these modules into reusable library routines. By contrast, in languages such as PASCAL, PL/I, ADA, it is easier to structure programs with internal procedures. It is much harder to convert these internal routines into reusable code, both because they are internal, and because they are usually written with more assumptions about the environment in which they are used. It is regrettable that the designers of the proposed FORTRAN 8x are introducing internal …