Thursday, January 20, 2011

Software Blog 1: Software Autobiography - The Early Days

Everyone’s perception is colored by their history.  I plan to write a few blogs on software, so I thought, in the spirit of full disclosure, I’d write a software memoir.
My first exposure to software was a manual for a PDP-8 minicomputer my father put in my hands when I was 15 or 16.  I recall machine language commands for manipulating binary word structures that resulted in addition, subtraction, multiplication, etc.  Since my father was a chemical process engineer at a nuclear fuel plant, I have no idea how he got this, probably from a control systems salesman.
Later, as a physics student at the University of Missouri, I went through a painful, but very useful, course on FORTRAN programing taught by a member of the physics faculty.  The punch cards, line printers, late hours and rigid syntax of IBM Job Control Language created antibodies that took years to recover from.  I also did a senior project to write a plotting utility for the department’s brand new PDP-11 computer.  I remember entering the program bit by bit, writing and then reading paper tapes to make it work.
My graduate work at the University of Wisconsin was organized to avoid computers altogether, however, as I later wrote papers and my did my thesis, it was necessary to evaluate a 2 dimensional integral equation.  I managed to achieve this on a Hewlett-Packard desk-top calculator that could store 128 commands.  I used a continued fraction expression of the confluent hypergeometric function and a simple 1-d integration to get the job done without punch cards or standing in line.
My post-doctoral experience, first at the Theoretical Physics Division of Harwell Labs and then at Kansas State University, involved significant data crunching on IBM main frames, also in FORTRAN.  Harwell had a very useful library of mathematical subroutines that helped improve my efficiency and I was able to directly enter programs and data into storage using a 110 Baud teletype (enclosed in its own sound proof box in my office.)  At K-State, I had my first experience with CRT Terminals and remember the great day my terminal was direct connected at 9600 Baud.
At Bell Labs in the 1980’s, the first few items you received after being hired included the Bell Labs directory (very important), a book of Unix commands and the “The C Programming Language” by Kernighan and Ritchie.  I threw myself whole heartedly into C, however, what quickly became apparent was my greater aptitude for shell script, nroff, troff, eqn and tbl.  These were the scripting languages of document production in the Unix environment.
My organization, Government Network Planning, often ran the proposal management and production in response to federal RFPs.  Project Management was document management.  My supervisor and I organized teams of dozens of engineers and produced documents measured in inches of output (I remember one that was about 2 feet thick.)  We weren’t satisfied to take the troff macros as found, but went back to the developers to automate page and paragraph security markings.
Next time: from writing software to managing software teams.  What are your memories of computers and programing prior to 1984?

2 comments:

  1. First computer I saw in person I think was a PDP-11. Shortly after that in 1980 I was in the basement learning 6502 assembly and a host of languages (C, FORTH, etc.). I just pulled the heap out of the closet a few weeks back to see if the floppies still worked and they did. The acoustic modem, well ... did not.

    What struck me was how little those language skills help me now, and how I value my education in networks more than programming.

    ReplyDelete
  2. Prior to 1984? I don't recall being alive then... But I do remember the Apple IIGS fondly (pre-90s?), its giant floppy drive, and a few games like Math and Reader Rabbit and Zany Golf. Aww, electronics nostalgia.

    ReplyDelete