The DOS PRINT command prints files, but it just copies them straight to the printer, with no headers or page numbers, and doesn't even skip over page perforations. I bought a well-known word processor from a major software house, and thought I could use it to print flat ASCII files. I can, but it sure is a nuisance. The command sequence to print a single-spaced file is:
Oh! how I longed for the good old days when I could WRITE FILE.EXT. It didn't take too long for the frustration level to build to the point where I translated my Write program from 8080 assembly language to Ada. Figure 39 shows the first version of the Write program, and Listing 62 shows the final version.
What managers and programmers often fail to realize, is that a major portion of a program with a user interface will be devoted to error recovery and help messages. Everyone expects a routine that asks the user for the first page number to include some statements that convert a string to an integer. They often don't realize there must also be some statements that know what to do when the user says the first page number is "banana". Look at how much of the Write program is devoted to error recovery! Compare Figure 39 to Listing 62 to see how short the program could be if I left all the error recovery routines out.
The final typesetting process may change the exact number of lines in these two versions of the Write program, but before reformatting them to make them fit on the printed page, the original version was 57 lines and final version was 145 lines. That means 57 of the lines in Write are doing the work, and 88 lines are just there for error recovery. That's a 154% increase in program size to make the program user friendly. The 154% figure isn't an absolute constant. The amount of expansion depends on the number of questions you ask the user, and how verbose each help message is, but it isn't unusual for programs with extensive user interfaces to more than double in size when error recovery and help messages are added. Take that into consideration when you are estimating the size of a software project, and don't be naive enough to think that error recovery will be 2% of the total software effort!