Page 3 of 3
At about the same time (1959) that the Algol committee were hard at work, the business users, well mostly people from the companies making commercial computer hardware, also formed a committee - CODASYL (Committee on DAta SYstems Languages). In 1960 the result was a report that defined the first version of COBOL (COmmon Business Oriented Language).
The COBOL committee was a very different kettle of fish to the Algol committee. These were practical people very concerned to produce a language that could be used - and perhaps even concerned to produce a language that could be used by programmers less talented than they. Many of them had excellent theoretical backgrounds and probably could have designed an Algol-like language if they had a mind to; but they didn't.
The precursors of COBOL were FLOW-MATIC, designed by Grace Hopper's team at Remmington Rand; AIMACO, an Airforce programming language; Commercial Translator, a language specification developed but not implemented by IBM; and FACT, developed for Honeywell.
The aim of the committee was to produce a language that could be read and understood by programmers and managers. They deliberately tried to make the language wordy and English-like by using lots of `noise' words that were irrelevant to the meaning. This wordiness (or should it be wordimess!) has long been the major criticism of the language. To give you some idea of how low the committee were aiming it is worth saying that they rejected the idea of using the well known signs of arithmetic i.e. + and - in favour of the verbs ADD, SUBTRACT, MULTIPLY and DIVIDE. So instead of writing A=A+B you would write ADD B TO A. Even A=B would be written MOVE B TO A!
At this point it looks as if I have nothing encouraging to say about COBOL but this isn't the case. The COBOL committee concentrated on the practical matters much more than the Algol committee. For example, Algol left the details of I/O undefined and up to the particular machine manufacturer to solve - an attitude that you will still find in Algol-derived languages such as C and Modula. But COBOL's greatest strength is its I/O. It introduced the idea of separating the data from the procedural part of the program. You defined the data (i.e. the record structure) that you wanted to work with in one area of the program's text and the what you wanted to do with it in another.
COBOL was carefully designed to make it easy to do the sort of tasks that were involved in business data processing. It certainly didn't include any of the academic ideas to be found in Algol. The best description of it was a sort of business Fortran - but amazingly wordy compared to the compact Fortran notation.
The people involved in the COBOL project were also very different from the Algol committee - they were all involved in commercial data processing, the non-glamourous but highly profitable end of computing! You could best describe the leading lights as down to earth. Grace Hopper for example was originally a mathematician who somehow became attached to the US Navy for most of her career - so much so that rather than Dr Hopper she is generally known by her navy rank, evetually as Rear Admiral Hopper. What could be a clearer statement that she didn't think of herself as an academic!
Another mathematician on the COBOL project was Jean Sammet who, like Grace Hopper, disdained the purely academic. In response to the question "Why do you think that academicians have chosen to ignore COBOL?" Jean answered "Many have a snobbish attitude and feel it is beneath their dignity".
The two cultures
The formation of the two committees that led to the creation of Algol and COBOL was the first and clearest sign of the split in the industry between the academic and commercial. This split is alive and well today and can be found everywhere. The only real change is the introduction of a third grouping in the 70's - the enthusiasts - who manage to irritate both of the older groupings!
COBOL went on to become for a time the most widely used language, even overtaking Fortran's head start. And what of Algol? Well without trying to be kind, all that can be said is that it died a death. Even so the academics have had a partial last laugh in that Algol gave rise to most of the modern languages that we consider so good - Pascal, Modula, C, Java, C#, Python and Ruby all owe their fundamental structure to Algol.Of course COBOL is still in use, and so is Fortran, but in time the ghost, or should it be ghoul, of Algol may still rule the world.
Diversity of languages?
Because Cobol caught on and satisfied the needs of the business community there were very few challenges to its supremacy. Apart from RPG (Report Program Generator) from IBM, alternative business languages were basically jazzed up COBOL. In the scientific area users were basically happy with Fortran and its offshoots were once again specialisations, such as GPSS for simulation.
Where the real diversity of languages is to be found is in the academic camp. Algol never really caught on and so new candidates were produced every few days. Algol 60 became Algol 68, Algol W, Simula and eventually C, Pascal, Ada and others. In many ways Algol was ahead of its time and most of its descendants enjoyed a well-deserved impact later on.
Other non-Algol based languages that were important in a minor sort of way were:
- IPL V (1958) - a list processing language
- LISP (1960) a recursive list processing language
- Snobol (1967) a pattern matching language for use in language processing
- APL (1967) a language for interactive maths
You can see from this list that most of the minor players of the 60's were niche languages that had their particular application area and their particular avid supporters, who often claimed that they were the general purpose language of the future.
The candidate that at the time was taken seriously as a language that seemed to have a long future ahead of it was PL/1 (1965). Given that the three major applications areas could be covered by Fortran, Algol and Cobol why not create a super language that incorporated features from all three - thus PL/1 was devised. This was another IBM-backed language, like Fortran, only unlike Fortran this super language failed to gain users. The reasons were that it was too big, too slow and well before its time. PL/1 was a dinosaur and micro computers and BASIC were just around the corner....
For the development of other computer languages see the other parts of this series covering the 1950s and onwards