When I first encountered the IBM 701 in 1955 there was a 20 page manual describing the workings of the CPU and IO devices. There was a 3 page manual describing a very crude assembler that was available for the machine. There were one page descriptions of a square root routine and a routine to convert to decimal and print.

Just now (2014) a complete 701 manual has appeared online. It is much more complete than I remember and includes detailed information about plugboard wiring of the printer which derived from the 407 accounting machine, for instance.

Writing code was tedious but learning to do so took not much more than a week. Some small physics programs could be done in a few weeks of effort. I don’t know a combination of technologies today where the time to productive results, beginning with no computer knowledge, is so short. Productivity, while quick to achieve, was poor due to crudity of tools, at least as seen by current standards. Remember that I am assuming a user who knows nothing of computers when he begins and wishes to ‘remain a physicist’. Many programs were too complicated for the dilettante programmer and full time programmers wrote and debugged the code.

In 1957 Fortran for the 704 arrived and that language was defined in about 50 pages. Fortran allowed one to write programs without having to invent so many of his own contrivances. Where the 701 required self modifying code (no index registers) and scaled arithmetic (no floating point) the Fortran programmer was more directly concerned with the logic of the mathematical approximation of the physical system at hand. For most users the Fortran manual had entirely supplanted the short stack of 701 information. Soon people who knew nothing of machine language were writing and running useful programs. This surprised me but it should not have. Fortran was not memory safe and the results of violating language rules was difficult to diagnose. A class of specialists arose who knew machine language and who developed tools to find such bugs in Fortran programs.

The tedium was reduced by a factor of several and a much larger class of casual users began to write useful programs.

Historically I have here skipped the important phase of machine language for the 704 in which some large production programs were written by professional programmers. The 704’s index registers and floating point made this easier to code and faster to run.