b. Systems to edit, assemble, and debug programs in symbolic machine language: These should efficiently use any special I/O device such as magnetic tape, disk, or line printer.

c. Efficient subroutines should be provided for operation of any special peripheral device purchased from the computer manufacturer. Symbolic language source tapes or card decks, listings with comments, and examples of use should be included.

d. Conversational Fortran-type programs provided by some manufactures are useful for supplemental calculations.

NOTE: The following points apply particularly to the medium and large machines and become increasingly important as the computer becomes larger and more complex.

e. Fortran compiler and operating system, with convenient method to insert machine language instructions and subroutines. Good compile and run-time diagnostics are essential.

f. Mathematical subroutines should be provided in binary and source language.

g. Complete specifications and documentation for the programming system should be supplied, so that programs prepared by users can be made compatible. It may be objected that this will cost too much, but not to do so will be very costly and frustrating to many users.

19. Note on the Cost of Programming

Experience at Brookhaven and Berkeley has shown that a programmer can produce between 10 and 20 debugged and documented lines of program per day, depending on such factors as experience, when he is working on reasonably straightforward programming. When working on a complicated monitor system he would be considerably less productive. System programming is obviously very expensive, therefore the average person exploring the computer market would be well advised to consider the software support along with the hardware offered in each case. Manufacturers vary greatly in this respect. A major contributing factor to the persistent popularity of the PDP-8 is that the software support is so extensive. In general, the newer a computer, the less software is likely to be available.