2011, my father-in-law...and COBOL

2011, my father-in-law...and COBOL

Summary: To say that programming was inefficient was an understatement. Such was IT in the late 1970s.

SHARE:

It's early in the morning of the first Monday of 2011. I just checked Drudge Report for the first time today. So far, there doesn't appear to be any idiocy (any new idiocy, anyway) coming out of Congress or Washington.

Oh, sure, the new, incoming Congress is trying to find a way to crucify the President and any surviving members of the 111th United States Congress for their twin crimes of keeping the economy from imploding and trying to care for our citizenry, but that's not really new news, at least for the first Monday morning of the year.

That means we're all clear (at least for the moment) to look back on our holiday week off and think about family, food, tech support, and COBOL.

[At this point, if this were a movie, you'd hear sounds of tires screeching, see quick shots a head snapping around to stare, and then horrified expressions among just-happened-to-be-there onlookers.]

COBOL? CO-BOL?!? CO-What?

For those of you younger than the Baby Boomer generation, COBOL stands for COmmon Business Oriented Language and was hugely popular in the 60s and 70s as a data processing language. Today, we'd use Oracle or MySQL along with languages like Ruby, Python, or PHP to accomplish much of the same thing.

I was a teenage COBOL programmer.

One episode from my misspent youth will illustrate COBOL and how generally anachronistic it is to today's development technologies.

It was 1979 and I was looking for a summer job after freshman year. I found a listing for a summer COBOL programmer gig at International Paper. Now, as it turns out, I didn't know and hadn't ever seen COBOL, but to me a programming language was a programming language, so given a night with a book, I could learn it enough to pass an interview.

And that's just what I did. I found out there was going to be a COBOL test at my interview, so I crammed. I didn't know COBOL, but as a freshman, I certainly knew how to cram. I got the highest score the Northeast Regional Data Center had ever seen and got my summer job.

So there I was. In college, I'd been programming DEC PDP-10s, using teletypes, DECwriters, and ADM-3A glass teletypes, so I had some idea of so-called "interactive" programming.

But at International Paper, COBOL was programmed on punch cards (I'd also used punch cards to program Fortran in college). If you've never used punch cards, they were horrid beasts. You'd type one line of code per card, so large programs lived on entire cartons filled with cards.

You'd hand your stack of cards (remember, we're talking physical cards) to a computer operator, who'd lug the stack (about 5 to 15 pounds of paper), dump the deck into a card reader, the job would run, and you'd get a paper printout with your output.

An entire evolution of this could take anywhere from 15 minutes to overnight, depending on the workload in the data center.

Interactive, it was not.

If you made one error in your code, you'd have to start all over. And, if for some reason you dropped your deck of cards, you'd spend your entire day trying to put them back in order, one physical card at a time.

Such was IT in the late 1970s.

So, at International Paper, they programmed COBOL professionally using punch cards. Because this was a mainstream, professional data processing operation (they called it DP back in the day, before DP became more common as a porn star term), the programmers didn't even punch their own cards.

Oh, no. Instead, programmers spent their days filling out what were called "coding forms". These were spreadsheet-like paper documents, where you'd hand write (as in, with a pencil) your code.

You'd then send the coding forms to the basement, where teams of old ladies (I was 17, they all seemed like cranky old ladies at the time), would then transfer your hand-written programming statements to punch cards, and then a mailroom clerk would deliver the boxes of cards to the computer room (raised floors and all), the "job" would run, and you'd get your stack of printout with the results back -- usually two or three days later.

To say that programming was inefficient was an understatement.

But that was the late 1970s. Today, we have IDEs (Interactive Development Environments) and whether you're using Visual Studio or some other development environment, the code-test-revise cycle takes seconds rather than days. Of course, our stuff is also vastly more complex, but that's a story for another article.

Two more thoughts before we get back to families and tech support, which is where our story began. First, during my summer of code at International Paper, I shared an office with another programmer, an "old" guy in his 40s. He got stuck with the 17-year-old, so it's anyone's guess how well loved he was there. But he imparted to me what he considered to be the most important wisdom of the day.

He told me, with deadly seriousness, "COBOL is life."

Second, that summer was also, thankfully, the last time I coded COBOL and used punch cards.

Let's get back to the family side of our story.

To most civilians (and by "civilians", I mean people who are not like us techies), Thanksgiving is their single best chance to get tech support. We techies are a captive audience and each and every Thanksgiving, we're presented with problem computers and phones like olden-day shaman were presented with sick babies to heal.

Christmas, to civilians, isn't a holiday celebration. Christmas is their last-chance day for real tech support, at least until mid-May, when they generally know we'll be visiting Mom and can be accosted to do one more malware removal pass or Windows reinstall before they have that long wait over the summer and early fall until the following Thanksgiving.

So Christmas is big in family tech support land.

To many of us techies, however, the big event is the week between Christmas and New Year's Eve, because that's the week everything's generally really slow, so that's the week we spend installing servers, upgrading our data centers, and generally doing all the stuff we never get time for because there are users out there pulling on our shirt-tails and saying, beseechingly, "Please, sir, may I have some more?"

Into that whole family holiday bouillabaisse this year came...my in-laws.

This year, my in-laws came down to Florida from New Jersey to spend the Christmas holiday with my wife and me. And this is where our story of family and tech support merges with COBOL.

Shortly after my in-laws arrived, I went upstairs to my home office to hide. I'm not exactly a family-oriented dude and I actually had work deliverables to complete while the old, retired people came down to cavort in our toxic Floridian sun.

I keep forgetting that my father-in-law (hereinafter referenced as FiL) used to be a COBOL programmer for a big company because his grasp of contemporary technical subjects is disturbingly small. To be fair, he got his technical chops back in the punch card days, and so technologies like home networking must seem more like science fiction than even rocket science.

So, I'm upstairs in my office, writing (and hiding) and hear my wife calling my name from the bottom of the steps. She wants to know if I can help FiL open a .DTL file. This does not sound good. But I go downstairs.

The man still keeps notes on punch cards. Apparently, he's been hoarding punch cards since the 70s and 80s. Now, to be fair, back then, punch cards were awesome for note-taking, but still, we're talking decades.

Anyway, apparently FiL wrote some DOS-based COBOL program decades ago, which he still uses to keep his checkbook register. He brought the thing with him on a thumb drive, a technology, it seems, he knows about.

He managed to talk my wife into letting him edit this thing on her laptop, which he does through DOS and EDIT. Why he doesn't use Quicken is an open question.

To be fair, COBOL still exists. There's even an object-oriented update that came into being around 2002 or so. But still -- DOS, EDIT, COBOL, and punch cards? Yes, in my house. On the same computer my wife uses to load and manage our 20 terabyte media server. COBOL. Seriously. Last week.

What were your holiday tech support experiences like? TalkBack below. Have a great 2011! Remember, just one more year until 2012.

P.S. When I told TechBroiler's Jason Perlow about my FiL, his punch cards, and COBOL, Jason responded in his usually twisted little way with the following message:

000010 IDENTIFICATION DIVISION. 000020 PROGRAM-ID. ANNOY MY WIFE AND MY SON-IN-LAW DURING THE HOLIDAYS. 000030 AUTHOR. FATHER-IN-LAW OF GEWIRTZ, DAVID. 000040 DATE-WRITTEN. DECEMBER 2010. 000041 000050 ENVIRONMENT DIVISION. 000060 INPUT-OUTPUT SECTION. 000070 FILE-CONTROL. 000080 SELECT DAVID-FILE ASSIGN TO DAVID. 000090 ORGANIZATION IS LINE SEQUENTIAL. 000100 SELECT WIFE-OUT ASSIGN TO WIFE. 000110 ORGANIZATION IS LINE SEQUENTIAL. 000120 000130 DATA DIVISION. 000140 FILE SECTION. 000150 FD DAVID-IN. 000160 RECORD CONTAINS 4096 CHARACTERS. 000170 DATA RECORD IS DAVID-IN. 000180 01 DAVID-IN PIC X(4096). 000190 000200 FD WIFE-OUT 000210 RECORD CONTAINS 80 CHARACTERS. 000220 DATA RECORD IS WIFE-OUT. 000230 01 WIFE-OUT PIC X(80). 000240 000250 WORKING-STORAGE SECTION. 000260 01 DATA-REMAINS-SWITCH PIC X(2) VALUE SPACES. 000261 01 RECORDS-WRITTEN PIC 99. 000270 000319 000320 PROCEDURE DIVISION. 000321 000330 PISS-OFF-EVERYONE. 000340 OPEN INPUT DAVID-FILE. 000350 OUTPUT WIFE-FILE. 000351 MOVE ZERO TO RECORDS-WRITTEN. 000360 READ DAVID-FILE. 000370 AT END MOVE 'NO' TO DATA-REMAINS-SWITCH. 000380 END-READ. 000420 CLOSE DAVID-FILE. 000430 PISS-OFF-EVERYONE. 000440 STOP RUN.

Gee, uh, thanks, Jason. Yeah, um, thanks!

Topic: Software Development

About

David Gewirtz, Distinguished Lecturer at CBS Interactive, is an author, U.S. policy advisor, and computer scientist. He is featured in the History Channel special The President's Book of Secrets and is a member of the National Press Club.

Kick off your day with ZDNet's daily email newsletter. It's the freshest tech news and opinion, served hot. Get it.

Talkback

64 comments
Log in or register to join the discussion
  • RE: 2011, my father-in-law...and COBOL

    Man that is a brilliant post to start 2011.

    And "I was teenage COBOL programmer" too...
    Lord Minty
    • Using the latest netbeans IDE the other day

      I too was reflecting on where I started (68k assembly). Fortunately I avoided the punch cards.<br><br>COBOL was one of the required languages at uni, as was Fortran and Pascal. I've never had the need for them commerically.<br><br>Somethings haven't change, 40 is still old. Not many industries where you can be the chief at 40 and not surprise anyone. <br><br>Just as impressive as the capabilities of today's tools is the price. It cost next to nothing today.
      Richard Flude
  • COBOL , Grace Murray and Baby Boomers

    Great article, David (with an assist by Jason), and with a neatly disguised history lesson thrown in for good measure.

    But as an "old" Navy man how could you avoid writing about COBOL without mentioning Rear Admiral "Amazing Grace" Murray Hopper?

    I first became aware of her from a "60 Minutes" segment and the one lasting impression I have from that early 80's telecast is best summed up by the following Wikipedia except. "Grace Hopper is famous for her nanoseconds visual aid. People (such as generals and admirals) used to ask her why satellite communication took so long. She started handing out pieces of wire which were just under one foot long, which is the distance that light travels in one nanosecond. She gave these pieces of wire the metonym "nanoseconds." Later she used the same pieces of wire to illustrate why computers had to be small to be fast. At many of her talks and visits, she handed out "nanoseconds" to everyone in the audience, contrasting them with a coil of wire nearly a thousand feet long, representing a microseconds. Later, while giving these lectures while working for DEC, she passed out packets of pepper which she called picoseconds."

    My first experience with punch cards was an early 70's Wayne State University computer class where "great" strides in IBM PL/I programming took place by us fortunate undergraduates. Its funny now, thinking back, but I learned to program in Fortran, Pascal and Basic only later on my home Apple II + computer system in the early 80's.

    By the late 80's, I had graduated to programming in Lisp and Prolog on my Amiga system during my A.I. fling years. Finally, like all us Baby Boomers, we were seduced by the Corporate Dark Side and I resorted to programming in Visual Basic on various Corporate projects.

    Fortunately, I have retired in time to save my soul and pursue other matters.

    Thanks for the walk down memory lane today, David. It was a good way to start off the year.
    kenosha77a
  • RE: 2011, my father-in-law...and COBOL

    Boy oh boy...hey, you can say what you want about COBOL (and it's direct predecessor, Commercial Translator), but let me tell you, I am still programmin in it, on a simulator program on DOS...I can argue about all day...maybe it's inefficient, maybe it's outdated, maybe it's whatever you say...but that's the first try at an application. After 17 upgrades and who knows how many bug fixes, the spaghetti code in other languages becomes difficult to follow. The updates to the application I am working on now could not be done in a year or more, and I am doing my best to get in done in a few months. The productivity is amazing. Now, I am good at it, and I understand the differences in the actual data representations underlying it, (I wrote huge sections of various IBM COBOL compilers for new machines, along with an amazing group, starting in 1960, the year I graduated from college. We even had to punch cards with the compiler code itself, then carry them down to the concourse level of the Time-Life building (and even try to get them back in the boxes in the correct order when they spilled) but I still believe it has it's advantages. So I'm forwarding this column to a bunch of my former colleagues, and they will let you know what they think!
    jgs25
  • RE: 2011, my father-in-law...and COBOL

    These inefficient languages such as Fortran and Cobol ran every major coporations business operations for more than 20 years and helped put men on the moon with processors less powerful than your X-Box. Maybe not as impressive as a You-Tube video or facebook but not bad either...
    allentbuford
    • Whoa, there! These languages were NOT inefficient ...

      @allentbuford ... if you are talking about computer time, not human time. <br><br>Once compiled, these languages were exceedingly efficient (especailly Fortran) but they were inefficient to write and debug. <br><br>In the 1960's and 70's, multimillion dollar mainframes measured machine cycles in hundreds of microseconds and programmers were paid under $10 per hour. Key punch operators were earning much less. Labor was inexpensive and computer time was measured in hundreds of dollars per hour.<br><br>Today, a programmer can command between 30 and 150 dollars an hour and for under a thousand dollars one can acquire a very fast personal computer. Mainframes have been replaced by blade servers costing under $20,000 which can support multiple servers. <br><br>Today, labor is expensive but hardware is cheap. Efficient machine code is no longer a priority. Efficient use of labor is however so producing working code is all that matters. <br><br>That said, I think a lot of research is still done in Fortran because it is so well-suited to numerical techniques for massively parallel processing.
      M Wagner
  • RE: 2011, my father-in-law...and COBOL

    Amen
    Hot Face
  • RE: 2011, my father-in-law...and COBOL

    Hey, I clicked the 'edit' key, corrected my previous entry, and NOTHING happened...so my conclusion is: You're obviously not programming in COBOL.
    jgs25
  • RE: 2011, my father-in-law...and COBOL

    And, hey, I'm running out right now to buy an iPad!
    jgs25
  • RE: 2011, my father-in-law...and COBOL

    You have an unwanted period at the end of line 340 and you can't have two paragraphs with the same name (lines 330 & 430). That's just off the top of my head and ignores little things like failing to loop through the input file, not actually doing anything with the data you did read, and not closing the wife-out file. Yeah, I spent a decade or so programming COBOL and it was a golden era in my life.

    As for your article, I found it ageist and annoying but I suppose at your age I knew everything too and thought the old fossils were "past it". Hopefully you, too, will learn better as you get older and wiser.
    valerie@...
    • RE: 2011, my father-in-law...and COBOL

      @valerie@... Thank you, Valerie, for the ageist support!
      I "got my chops" when spaghetti was not yet code, but unit record machine patchboard wiring, and my lower division college programming courses were half a semester of FORTRAN II, submitting one final program on 80-column worksheets to be processed by the county's DP facility.
      I'm still working, still launching satellites and building embedded applications, despite 40 being "still old", despite recently hitting that superannuated mark. (Oh, yeah, that's 0x40, but hey, what's in a number?)

      Dave
      dbell5
    • RE: 2011, my father-in-law...and COBOL

      @valerie@... I'm not ageist at all. In fact, I'm an old fart myself, having programmed back in the 1970s.

      It's just that COBOL, as a language, is out of date. I guess that makes me a linguist. Heh, I crack myself up!
      David Gewirtz
  • RE: 2011, my father-in-law...and COBOL

    I worked at a bank in the 80's, very object oriented calling subroutines. Average program was 20,000 lines... Then there was Reader's Digest 100,000 line program, 32k record size, super duper spigeti code, misspeling in the procedure names, they did not believe in subroutines because it took to much space.. And they were proud of how it all worked. I just knew there had to be a better way. And then came VB!!!
    holidaydrive@...
    • RE: 2011, my father-in-law...and COBOL

      @holidaydrive@... "spaghetti"
      M Wagner
  • WOW! Sure brings back memories ...

    ... especially Jason's contribution.

    I finished my MS in Computer Science in 1982 and, while I wrote very little COBOL, I debugged enough of other people's code to have nightmares.

    I remember punching my own Hollerith cards in graduate school while learning ASSEMBLER but quickly moved to online files of 'virtual card decks' which could be submitted as "batch jobs" to the mainframe. (I actually knew someone who would write his code card-by-card while sitting at a keybunch machine!)

    My first real job after grad school found me converting hundreds of decks of Hollerith punch cards into small on-line files of IBM JCL (Job Control Language) which could be included into a larger "virtual deck" for batch submission to the mainframe.

    For what it is worth, the Hollerith punch card was invented by Herman Hollerith in the late Nineteenth Century. It was first used on a large scale for the 1890 census. It was last used on a large scale in Florida - on Election Day 2000 (the last US election of the Twentieth Century) - when "hanging chads" became the focus of the controversial election of George W. Bush.

    Ah, those were the days!
    M Wagner
    • RE: 2011, my father-in-law...and COBOL

      @mwagner@... "I actually knew someone who would write his code card-by-card while sitting at a keybunch machine!"

      I did that all the time, especially for the two very earliest programming classes I had in college. In fact, it was one of the things that infuriated the keypunch operators at International Paper. I hated (H-A-T-E-D) the coding forms, so I'd wander around until I found a free keypunch machine somewhere in the building, and start coding.

      The thing was, there was a very strict hierarchy in the company and programmers weren't allowed to move desks (yep, got in trouble for that as well) or punch cards (that was a job for the hourly workers).

      I had no idea of hierarchy and certainly couldn't grok that at 17, I was a higher-level employee than someone older than me. I also didn't understand that by doing their work, the keypunch women felt their jobs were threatened.

      I just wanted to write code. I never coded COBOL after that summer, but it was certainly not the last time I got in trouble with employers or co-workers. Sigh.
      David Gewirtz
  • RE: 2011, my father-in-law...and COBOL

    [i]Such was IT in the late 1970s.[/i]

    pfft... I coded COBOL in the early 90's. Of course that was the last coding I ever did. :)
    Badgered
  • RE: 2011, my father-in-law...and COBOL

    It took me most of a week to do a small freelance job, write and debug a custom VB macro for Excel. The code looked right. It worked right for some inputs but gave incorrect results for others. It turns out that there are obscure differences in the Office and VB object models. The "sort" function is from one model; comparison operators are from the other. You can guess the rest. So much for increased productivity! I could have written the whole thing in COBOL in under an hour!
    geekydewd
  • RE: 2011, my father-in-law...and COBOL

    Holy mackerel !!! "trying to care for our citizenry" Way too much Kool Aid consumed by this Progressive. It is not the job of government to take care of the citizens. Must be the age difference I was taught to take care of myself, not be dependent.
    wdcdba
    • RE: 2011, my father-in-law...and COBOL

      @wdcdba

      Glenn Beck is that you?
      tonymcs@...