Coding in Fortran
The first program I ever wrote was in 1969 while sitting at a desk in my high school Computer Science class, I wrote it using pen and paper (a coding form as seen in the picture above). It wrote it in Fortran, a language used for scientific and numeric computation. The teacher gave us a half hour to write the program for our final exam. The test went something like this:
- Assign a floating number to X
- Assign another floating number to Y
- Assign an integer to I
- Add X and Y and store it in Z
- Print Z
- Repeat the above process N times
We received credit on the exam for:
- Successful program compilation
- Successful program execution
- The computations were correct
- The programs printed N lines with the correct answer
Coding in the Blind
The coding sheets were collected and sent to the school district’s computer department. The data entry clerks used a keypunch machine that created the source code on 80-column punch cards, The computer operator fed the cards into an IBM 360 computer, compiled and executed. The program, compilation errors and program execution results were printed on 132 column green-bar paper.
How did I do? Pretty well, only losing credit for printing N-1 lines. The teacher suggested the next time I should have used a DO LOOP statement instead of a FOR statement. I was proud of my first program. And I did it without ever seeing a computer – except in pictures.
Writing a simple program, compiling it successfully, testing it and putting it into production could take days, possibly, even weeks. After writing the code on paper, it was keypunched onto cards, given to a computer operator who would feed the cards into the computer and hit the run button. Depending on the workload, the operator would provide an estimate of when the programmer should return. Usually, it took hours; occasionally more than a day.
The computer read the cards, the program compiled and the resulting report printed (assuming there were no problems with the cards). The operator would then wrap the cards with a rubber band and file the cards and the report in a cubby. The programmer returned to pick up their work. If there were any problems, debugging the program was visual. The compilation errors on the report were the only clues to the problem. After the programmer had assumed they found the solution, the programmer keypunched the correction(s) and the new card stack given to the operator
Legacy vs. Modern Coders
Today, coding is interactive, tested and shared almost immediately.
Did the above seem cryptic? To the modern coder, it certainly would. No one compiles a high-level language (such as Fortran) to a low-level language (assembly or machine) anymore. Keypunch machines, eighty-column cards, green-bar paper, and other computer equipment from the sixties currently found in museums. The computers of that time were 16-bit machines that had a memory of 8-64 KB. Computer hardware included:
- Central Processing Unit that was as large as a refrigerator
- Console that was as small as the screen of the average tablet
- Portable hard drives that weighed ten pounds
- Multiple magnetic tape drives standing over five feet in height
- Printers as big as a stove
- Card readers
- Storage racks
All this equipment took up a large, dedicated room that was air conditioned and had a raised floor to hide large, thick cables so people couldn’t trip over them.
The smartphone that we carry with us today is 1000 times more powerful than the computer system used in the sixties; modern software has sophisticated capabilities not available on the legacy systems when I created the first program I ever wrote.