Friday, October 5, 2012

I sharpened a pencil today


It had been a while.

I'm not an artist; and, I don't often write in my planner or journal with a pencil since they tend to smudge, and you have to keep resharpening. But there was a a time...

 ...when I was pencil-writing all the time.

When I first started in IT, I was a "programmer", usually termed a "developer" these days, and we wrote "code". In pencil, on paper, with gridlines intended to help guide writing things properly.

Wow, when you think about it.

I'd sit at my desk, coding, thinking out and writing down the program instructions to tell a computer what to do to solve whatever it was I was asked to. Control trains on railroads, at first. Then, later, telephone business problems, like producing bills for printing, or reports of customers and what they spent, what they used, what they had installed. In pencil, on paper.

I went through a lot of pencils, and erasers, of course. ArtGum or PinkPet, both worked pretty well. What didn't was the eraser on the end of the pencil, too abrasive, it'd go right through, or at least also erase the lines of the printed form.  Especially after two or three times.

I'd switch back between using a wood pencil, with it's sharpening ritual and wonderful just-cut wood smell, and a Pentel mechanical pencil, one of those .7mm blue ones, when it got hot & heavy, and I didn't think I could spare time to get up / down for a visit to the copy room and pencil sharpener.

We'd write all the code for a program, on paper. You learned to leave space for additional code in case you forgot something. You learned to use "subroutines", modular code, to perform functions, and coded on separate sheets of paper, again to leave room for modifications if these came up.  Funny to consider now, but composite design, object orientation, and these other modern notions may have had their root in people just getting annoyed at having to erase and rewrite so much stuff when they ran out of room.

What's with all the pencil & paper? For developing computer software? Why didn't we just type them in, you ask?

Because...no one had a workstation, at least not one of their own. You'd code on paper, and when ready, reserve time on one of the handful of "terminals" so you could use a text editor to type in your code. Then, run a "compile" to turn the code into an executable program or find your coding or typing errors. If you were able to get a clean compile, you'd use the workstation to run and debug your program.

It was considered bad form to sit there and hog a terminal if you had lots of changes & fixes; you were supposed to get a printout and return to your desk to work out corrections, new logic, whatever. With more pencil and paper.

Wow, you say. They really did it this way, back in the day? Dang. How old are you? Where they didn't even have PCs yet?

Pretty old, I guess. Because: working with pencil & paper, and typing things on one of a pool of shared workstations, was a huge improvement over working with punched cards.

Punched cards? Seriously?

Well, yeah. When I was learning "computer programming" in college, you'd write up your code on paper, but then sit down at a punch-card machine and type in your code. Each line went on one card. If you had a typo, you'd toss that card and try again. When you were done, you'd have a deck of cards with your code. It was not good to drop them, or get them out of order.

You'd take your deck of punched cards with your code, insert them in the right spot into a "compiler deck" (a huge stack of cards, usually in a box), then load the entire stack into the card reader to compile your code into a program. If you got a clean compile (no typing or syntactical errors), you'd combine the compile deck with more cards to actually execute it against test data. And it this case too, you'd return to your desk with your results printout, and work through the errors and changes. On paper, with pencil. To return again to the card punch to make changes, and go through the process again.

All this, from sharpening a pencil today.  In this very visual, workstation-enabled world we have now, it really does seem like...ancient history.