The First Program I Ever Wrote
I’ve been a software developer for more than four decades. The changes and capabilities during that time in both hardware and software are remarkable. I still remember the first program I ever wrote.
In 1969, at a desk in my high school Computer Science class, I wrote my first program using pen and paper (a coding form as seen in the picture above). It was written 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:
· Define x, y, and z as numbers
· Define i and n as integers
· Assign a value of 1 to i
· Choose and assign values to x, y and n
· Add x and y
· Store the above result in z
· Multiply z by
· The computations were correct
· The programs printed N lines with the correct compuations
The coding sheets were collected and sent to the school district’s computer department, an IBM 360. The data entry clerks used a keypunch machine to enter the source code on 80-column punch cards. The cards were then fed into an IBM 360 computer, compiled and executed. Days later, we received a print out of the code, compilation errors and execution results. The paper was 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 an IF statement. I was proud of my first program. And I did it without ever seeing a computer — except in pictures.
This is a simplified version of the code. I modified it for simplicity.
The time it took to write a simple program, have a clean compile, test it and put it into production could take days. In some instances, it could take weeks. Programmers wrote the code on Fortran Coding Sheets. A data entry clerk then keypunched the code onto 80 column cards. The computer operator fed the cards into the computer and hit the run button. The operator would provide an estimate of completion based on the workload. Usually, it took hours; occasionally more than a day.
The cards were fed into the computer, compiled and a resulting report printed. 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. If there were problems with the code, the process was repeated. Codiing problems were found visually. After the programmer presumably found the solution, they keypunched the correction(s). Then they handed the new card stack to the operator
Did the above process seem tedious? To the modern developer, it certainly would. Coding, testing and debugging code does not require any operators or extra equipment. Computer systems from the sixties are only in museums.
Computer hardware included:
· Central Processing Unit that was as large as a refrigerator
· Console that only displayed codes and a large keyboard to enter computer instructions
· Card readers
· Disk Drives and Portable disk packs that weighed ten pounds
· Multiple magnetic tape drives standing over five feet in height
· Line printers as big as a stove
· Storage racks for tapes
All this equipment took up a lot of space. It was air conditioned and had a raised floor to hide large, cables so people couldn’t trip over them.
The computers of the sixties were 16-bit machines that had a memory size of 8–64 KB. Heavy disks packs stored less information than an SD Card.
Smartphones are 1000 times more powerful than the massive legacy computer systems I used to work on.
Modern software development time has been greatly reduced. To develop the logic for my high school exam takes the same amount of effort in Fortran as it does in today’s languages such as Java, C, Python, and Ruby. The code would look very similar. But the time it takes to enter those few lines , test, debug and execute the program successfully has decreased from days to minutes. Today’s high school students develop sopshisticated websites, apps and bots in less time than it took me to create the first program I ever wrote.
If you like what you read, please follow me and share this post.
If you like this post, don’t forget to recommend and share it. Check out more great articles at Code Like A Girl.