Sunday, August 22, 2010

Thok Have Mammoth on Face -- Stone Age Programming

Welcome to my computer programming blog. I'm a first -- maybe second, depending on definitions -- generation programmer. If the "art" of programming were, say, visual art, my entry time would be about the equivalent of the point where prehistoric humans began to create images with dyes derived from plants, rather than just to chisel images on rocks using harder rocks.

My first programming language was FORTRAN IV. This sounds like it might be quite a ways up the generational ladder, and, in computer life terms where a second is like an eon, it is. However, in human years, the interval between the initial introduction of FORTRAN (IBM's Mathematical Formula Translation System) and the arrival of FORTRAN IV was only a blink -- less than the elapsed time between the introduction of the iPod and the iPad. In fact, when I was diligently creating programs in FORTRAN IV, it had already been replaced by FORTRAN 66, though this was primarily a standardized version of FORTRAN IV.

FORTRAN IV or FORTRAN Googol -- it didn't matter to me... I quickly moved on to much cooler computer concepts -- but more about that later. For now, let me assert that I discovered not only did the computer do things for me that I really hated to do for myself -- like long division -- but that I was really good at writing programs. This awakening was akin to something I'd experienced earlier when I first played an electric guitar. It just clicked. My set of genes was custom tailored to the task.

To appreciate how big a difference the computer made in the life of scientists, engineers, and, most importantly to me, college students, you have to consider the timeline. The first affordable personal desktop calculators were not available until the early seventies. My first one (which I still have, by the way) was a Radio Shack EC-375... nice big buttons, with several simple scientific-like capabilities such as Square Root. By this time, however, my years of cranking out the solutions to dreaded "word problems", was a hideous memory. Take your typical basic physics word problem (PLEASE, in Henny Youngman voice). It might require a few seconds to see how to get to the answer... but another 10 minutes to grind through to the ten digit number which represented the continuation of your student deferment. If you don't know what I'm talking about, just consider yourself lucky -- both about the ten digit number and the student deferment.

To me, it was fascinating that a means existed of describing to a machine how to work a problem, and then the machine would do the heavy lifting and spit out the answer in a millisecond or two. But how did the machine do this? All I knew at the outset was that I could type my program on a keypunch, give a stack of cards to a acne scarred sociopath with B.O. (called a sysop), and only a day or two later, get a ten pound sheaf of paper which somewhere within contained information about the errors that, if corrected by repeating the keypunch/submission process, would provide the very answer that I requested.

There were issues here that I very soon caused a hypersensitivity for me. The keypunch was like the Godzilla of Typewriters. The user would insert a bunch of IBM style punch cards into a hopper, and the machine would punch holes (in Hollerith Code, named for Herman Hollerith, the founder of the company that became IBM) that could be read by the computer's card reader. The sound created by the keypunch for each keypress was similar to the sound of a bad snare drum struck way too hard by an inexperienced drummer. I was already well acquainted with this noise by dint of a decade of participation in garage bands. An entire room of keypunches operating simultaneously was the drum corp nightmare that only became reality in the hands of Fleetwood Mac years later. Oh yeah... and the machines were always busy, requiring at least an hour of waiting time.

The noise and wait were a simple necessity. However, nothing could have prepared me for the anxiety produced in anticipation of potential damage to the deck of cards, sometimes numbering in the thousands, that could be inflicted by rain, wind, beer (always beer), or, gawd forbid, dropping the deck, particularly when said dropping was accompanied by rain, wind or beer. After one dropping in beer episode (a DIBE), I learned to insert sequence numbers on the cards. There was a card sorter that could read sequence number and re-order the deck after the damaged cards were retyped. Yikes... do you appreciate your Netbook a little more now?

The big mystery to me, though, was what did the computer do? How the hell did it make sense of those little punches, do the arithmetic, store the data, and print error diagnostics (usually) and answers (occasionally.) For my life, this was a jumping off point -- much like the reaction to the sound of the electric guitar's E-string that I first heard in 1957. This jumping off point, surprisingly, led me back in time, not forward, for a certain period. From that point, I could move forward with the foundation of the knowledge of basics.

In future blog articles, I hope to give non-technical readers an idea of what goes on in the computer, and just what manifestation of the mental malady called computer programming has led to writing this blog.

1 comment:

  1. This comment has been removed by a blog administrator.

    ReplyDelete