COBOL++

Title: COBOL++

General Information about Item:

  • Joke
  • Programming knowledge / not English-language specific
  • United States

Informant Data:

  • Professor Tom Cormen has taught in the Computer Science department for 26 years. He’s well known as a coauthor of Introduction to Algorithms and author of Algorithms Unlocked.

Contextual Data:

  • Social Context
    • The joke was collected on November 6th, 2017. Professor Cormen encountered this joke many years ago on the internet, and it would generally have shared between computer scientists who had encountered the languages C, C++, and COBOL in the late ’90s and early 2000s.
  • Cultural Context
    • This joke is one of the least accessible in our collection, requiring knowledge of the relationship between programming languages not named in the actual text of the joke (C and C++) and understanding of the plus-plus operator. The procedural programming language COBOL was created in 1959 and has mostly fallen out of general use; additionally, the newer version of COBOL (updated in 2002) was made to already be object-oriented, defeating the premise of the joke. (An object-oriented programming language is one in which we define objects that can hold data and perform certain functions, and the relationships between these objects.) Thus, the fact that COBOL was not an object-oriented language before 2002, compounded by its relative obscurity as a “legacy” language, would be lost to most computer scientists today. This particular joke was widely shared on the internet years ago between computer scientists who were familiar with all the references. The “improved” version of COBOL in the joke has a ridiculously long name (“Add one to COBOL given COBOL”), and undergraduate students who know that C++ is the object-oriented version of C will still find the joke funny, but less so than if they had known about COBOL’s reputation for excessive verbosity.

Item:

Q: Did you hear about the object-oriented version of COBOL?

A: It’s called “add one to COBOL given COBOL”!

Transcript:

  • Stephanie: Um, could you say your name and background please?
  • Prof Cormen: Yeah, Tom Cormen, I’m a computer science professor at Dartmouth, I’m in my 26th year here.
  • Stephanie: Could you tell me the joke that you have prepared today?
  • Prof Cormen: The joke is, did you hear about the object-oriented version of COBOL? It’s called “add one to COBOL given COBOL”.
  • Stephanie: And where did you first hear this joke?
  • Prof Cormen: I’m sure I saw it on the internet years ago.
  • Stephanie: Alright. And could you explain the joke very briefly?
  • Prof Cormen: So the joke requires understanding a few things. First of all that, the language C++ is supposed to be an object oriented version of C. that the plus-plus operator means add one to something, so that’s C++, the joke in just the name of that language is it’s one better than C. In the language COBOL, it’s much more verbose, and the way that you would say add — take a variable and add one to it and store that back into the variable is, you say “add one to the name of the variable given the name of the variable”. So in this case it’s COBOL, add one to COBOL given COBOL, meaning that it’s one more than what it was.

Associated file (a video, audio, or image file):

 

 

Collector’s Name: Stephanie Guo

Tags/Keywords:

  • Joke. COBOL. Programming.

One thought on “COBOL++

  1. Jeff Grigg

    I’m sorry, but it bothers me so I will point it out: It should be “GIVING” not “given”.

    Conventional COBOL syntax would be …
    “ADD ONE TO COBOL GIVING COBOL.”

    And yes, the period at the end is important too. It’s the statement terminator.

    Also, modern COBOL compilers are case insensitive, so even more modern could be …
    “Add one to COBOL giving COBOL.”

    I would still put COBOL in all upper case, as it stands for “COmmon Business Oriented Language.”

    .

    (And yes, I’m also quite familiar with C, C++, Smalltalk, Java, C#, and others.)

    Reply

Leave a Reply

Your email address will not be published. Required fields are marked *