Advanced

COBOL turns 60: Why it will outlive us all

Posted by Scott_Ruecker on · 8 comments
ZDNet; By Steven J. Vaughan-Nichols
Mail this story
Print this story

In the beginning, there was machine languages and assembler. Neither was easy to use, but then along came COBOL, and everything changed.

Full Story

  Nav
» Read more about: Story Type: News Story

» Get new stories by e-mail: nightly or as they are published

« Return to the newswire homepage

Comments (8)

I lost an earlier, longer comment, so here's the condensed version:

In Pascal: "a := b * c ;"

In BASIC: "LET a = b * c"

In COBOL: "MULTIPLY B BY C GIVING A."

And for the pedantic:

In Scheme: "(set! a (* b c))"

Finally, in Forth: "b @ c @ * a !"

-----

Each statement accomplishes the same thing, but which one requires the least translation as you read it out loud? I'd argue that COBOL very nearly approaches that goal.

COBOL is to computing languages what RISC is to processor design, a hard application of the KISS principle: "Keep It Simple, Stupid!". The design philosophy of COBOL is to lay out the data structures explicitly, in order to simplify the code.

"Show me your flowcharts and conceal your tables, and I shall continue to be mystified. Show me your tables, and I won’t usually need your flowcharts; they’ll be obvious." - Fred Brooks, The Mythical Man-month
Forth is a language that I still fondly remember. I loved the logic of Forth, maybe its appeal resulted from it's similarity to my calculator of choice at that time, an HP35.
When COBOL appeared there was already FORTRAN. And it had the simplest assignment statement that you can dream, inherited by C and Python and many others: "a = b * c" It takes me 100x more time to understand the COBOL statement. I guess COBOL was only meant for people that have no mathematical knowledge.
I find the less 'wordy' versions better. I want to know what a bit of code is doing at a glance, not have to read a chunk of prose to get gist.
@penguinist: Different strokes, I guess... I still use HP's RPN -- if I'm not invoking gdcalc on the KDE1.1 box, I'm pulling down my HP-11C or HP-41CV (long before the Turbo-C or Perl5 versions, I wrote the first version of ampsr that had standard-values search on the HP-41CV) -- but Forth has too little syntactical sugar and too great a head-context load, particularly for stack operations, for my tastes. The least little distraction or social interrupt leaves me having to rebuild my visualization of the data from scratch. Do you live alone?

@arm: I share your distaste for wordy languages: it's too hard to pick out the chosen words (variable names, immediate constants, strings) from the language mechanics. C > Pascal for that reason alone.
bverheg wrote:I guess COBOL was only meant for people that have no mathematical knowledge.
That was a major factor in the design of COBOL. It was designed in part so that executives, who weren't necessarily computer programmers (but could read English!), could look at the code and see what the machine was accomplishing. The target audience wasn't the scientists, but rather the business leaders. Hence the acronym: COmmon Business Oriented Language.

The only adjustment I'd make to the above quote, is to change "mathematical knowledge" to "knowledge of Turing machines". COBOL first appeared five years after Alan Turing died, so thinking of computers as Turing machines was still very common. Most business executives had no training in using Turing machines or symbolic computation, so COBOL was an easy way for them to read the "effective method" without formal training in the underlying theory.
cobol was of course designed to read like english. the problem with that is that english was not designed to express complex mathematical and programmatic statements.

in other words, things that are easy to express in english, are also easy to express in cobol, but programs of more significant complexity became extremely hard.

greetings, eMBee.
And one way in lisp: (setf a (* b c))

Post a comment

A free account is needed to post. Write your comment here first: your text is kept in this browser while you sign up or log in, and is waiting for you when you come back.

Your message:
|||||
10
Markdown: **bold**, *italic*, [text](https://link), - lists, > quotes, $x^2$ for math. Formatting help

Sign up and post (it is free)  or  Log in and post