Business Programming Languages and the Legibility of Programming
computer.org
computer.org
Between Flow-Matic/COBOL, Fortran, Algol, and Lisp; one couldn't really say which approach would become the most popular or comfortable. Algol's style pretty much "won" in the longer run, but it wasn't clear and couldn't be clear up front. Despite Algol-style's "win"; COBOL, Fortran, and Lisp are still in common use, and have defenders (sometimes for domain-specific reasons).
I will agree that things like "record statements" may have come from the COBOL camp, although there may have been precursors in punched-card templates. I should note Algol was influenced by FORTRAN.
Virtually every Cobol site out there also requires programmers to prepend their user-defined names with some mnemonic, e.g.
pg5005-this-paragraph
lv-this-local-variable
acpr7502-all-variables-in-programs-in-accounting-system-payroll-subsystem
This also means they never confuse user-defined names and program keywords.I found nothing in the COBOL 60 documentation concerning a required width. The closest (in section VIII "Reference Format") was "right hand margin Z is determined by the width of the paper or printing media".
While it's true that the 80 column IBM card was by far the most popular, other options were available. I can believe that a COBOL implementation for the Remington Rand might use all 90 columns.
The COBOL 60 documentation says (section 2, "Words") that variables are no more than 30 characters in length.
There was no need to fit everything in the same physical line because COBOL 60 supported line continuation, using a "-" as the last character position of the line (section VIII-2, "Reference Format"). This could even occur in the middle of a name.
I think that is the amusing distinction between daydreaming academics and bean-counting business people: at the end of the day what does the language assist you with? For academics, Algol was a tool for thought. For business people, it was (and still is) a tool that helps them know how much money they are making and to make the machinations of their business function.
// A Suit is one of:
type Suit =
| Hearts
| Spades
| Clubs
| Diamonds
// A Face is one of:
type Face =
| Jack
| Queen
| King
| Ace
// A card is either:
// A face card with a Suit and a Face
// A non face card with a suit and a number
// or a joker
type Card =
| FaceCard of Suit * Face
| ValueCard of Suit * int
| Joker
models like this are easy to read and the languages will ensure that when you work with them that you never miss handling a case.