For some reason as soon as I heard of COBOL the name instantly stuck in my mind. I do tend to like names/words with o’s in them like moon and boon for example, so I guess it is not much of a surprise that the name of this programming language alone has already got me interested.
I know though that there are many out there who dislike the language and see it as an old dinosaur that just will not die. But for me that’s actually another reason why I like it.
When I think of COBOL I imagine large rooms full of big computers in the 1960s/70s/80s and for some reason it gives me this weird sense of nostalgia even though I wasn’t even alive during that time.
But I like that kind of ‘retro style’ similar to how I like the feel of the Alien movie and the game Alien Isolation, I like to imagine the sort-of 1980s-style future technology and gadgets and I love thinking back to times when there were only internet and networks but no world wide web. I cannot entirely explain why but for some reason the period feels adventurous to my brain.
And COBOL seems to fit into such similar areas. I feel like many systems seen in the Alien franchise would run on something akin to COBOL as back then they had no concept of anything like the more modern programming languages we have now, or other such technologies we have today.
So naturally you either extend what already existed then or you completely make something up that likely won’t actually ever come about in the real future. And besides as you are about to see we actually still use it loads anyway.
So with my new-found fascination for the name COBOL I thought I may as well actually look into the programming language and see what I can learn about its history and usage as well as any other interesting tidbits. And unlike many others I am going to try and be serious about it – many dislike poor COBOL so much now a days that when they speak of it they enjoy bullying it. But not me! So let’s get to itβ¦
COBOL – standing for Common Business Oriented Language – is one of the older programming languages with it having first appeared all the way back in 1959. The language has come quite a way since then. It is only more recently that COBOL has been updated to fit more into the modern age – but it remains really only used within legacy systems where it would be too much of a hassle to rip all the COBOL out and replace it with a more modern language (cause why fix what isn’t broke?).
Such systems you may still find using COBOL are mainframes, ATMs, and legacy financial, administrative and business systems in both companies and governments alike. As such a demand for people who know the language still exists and due to the lack of places that still teach it today and the many people who’d rather learn a more modern language (such as JavaScript, Python, Ruby etc), there is a growing shortage.
COBOL is a high-level, imperative, procedural and object-oriented language. High-level means that it is easier for humans to interpret (and therefore write it) and a compiler is used to convert the human-programmed language into a machine-readable format, and object-oriented means the language binds related data and functions into an ‘object’ which can be reused. Imperative and procedural relates to how the language is ordered and how it executes.
COBOL begun being developed in the late 1950s with sponsoring of the US Department of Defense who wanted to develop a common business language that could be used for different kinds of mainframes to remove the need to use various separate low-level machine code and assembler solutions (solutions a lot harder to learn and that were defined only for a single brand of computer).
This effort was guided by the Committee on Data Systems Languages (CODASYL). COBOL would draw inspiration from several older languages of the time:
FLOW-MATIC, which was the first English-like data processing language that was developed under the direction of the famous American computer scientist and US Navy rear admiral Grace Hopper (who also promoted and contributed to COBOL’s development) at the American business machine manufacturer Remington Rand in 1955. The FLOW-MATIC language was made for the UNIVAC I – the first general-purpose electronic digital computer design for business application.
AIMACO – standing for AIr MAterial COmpiler was drafted in 1959 as a definition of a high-level programming language by AMC (not the theatre chain but Air Material Command that came before the Air Force Material Command), IBM and United States Steel with intention for it to be used on all AMC systems.
The definition itself was influenced by FLOW-MATIC and COMTRAN but never had a compiler developed.
COMTRAN – standing for Commercial Translator was an early programming language developed by IBM in 1957 with the intention for it to be the business programming equivalent of FORTRAN (Formula Translator) which is a programming language developed by John Backus and IBM in 1957 for scientific programming. FORTRAN is still used today making it the oldest programming language still actively used.
COBOL would become the dominant language for building business (and government) systems and even today it still remains dominant in such areas – namely in the US.
Data by Enlyft shows the language is still used by over 37,000 companies the majority of which are IT and Service Industry companies. It is also estimated that up to 850 billion lines of COBOL remain actively used and that a whopping 90% of Fortune 500 companies rely on COBOL – particularly big finance, insurance, airline and retail companies.
A US Reuters study in 2017 also showed that 43% of banking systems still use COBOL with 95% of ATM card swipes relying on COBOL code and that 80% of in-person transactions also involved COBOL. It also showed that the popularity of COBOL had dropped dramatically since the early 2000s despite its wide need – with it getting to its lowest popularity in 2012 from which it has been on a steady resurgence, perhaps due to renewed demand for COBOL developers.
It is estimated that overall the presence of COBOL continues to support more than $3 trillion in day-to-day commerce. As of now most COBOL developers are aged in the 45-55 range followed by 35-45, 55-60, under 35s and then over 60s. Will COBOL ever become hip again?
It is also likely COBOL use will increase in many organisations – especially with modernisation efforts.
The idea to create a language that would become COBOL came from Mary Hawes who was a programmer working for the Burroughs Corporation – an adding machine company that later also sold typewriters and computers.
Hawes wanted a computer language that could run on different brands of computers and that could perform accounting tasks such as payroll calculations, inventory control, and records of credits and debits. A call that would later be taken up by the DoD who agreed to sponsor such an effort and following a meeting of representatives of computer users and manufacturers at the Pentagon the CODASYL was formed.
After giving this new language the name of COBOL it was time to get it to actually run and work. This involved developing compilers and testing the COBOL language and resulting compiled machine code to ensure it worked as intended using UNIVAC I, UNIVAC II and RCA 501 computers.
Programs using COBOL were being written by 1960 and later that same year the ability of COBOL to work on different brands of computers was proven for the first time. Following this the next few years would see other computer companies adopting COBOL and developing versions of it for their own machines and from there the language begun a rapid spread.
Reasons for why COBOL still exists in common use today is that it remains a flexible and reliable language and COBOL’s accuracy with mathematical calculations, which manages to beat more modern languages such as baseline Java due to design difference, is precious for banks and the IRS.
And it’s not even that modern programming languages are worse at maths or could not be made to work more accurately for such financial calculations – it is just pursuing that takes even more time and money plus risk – which becomes pointless when COBOL does it fine as it is.
Many businesses core applications still run on COBOL because overhauling it would be too risky and costly and frankly for mainframes in particular nothing better has really been developed.
As well as that there is support being developed for solutions and developer tools to modernise COBOL (such as Visual COBOL which provides support for the language to be written in modern and popular integrated development environments and integrate with Cloud infrastructure) which further reduces the need to replace it and may even interest budding programmers to learn the language and fill existing and growing demand.
You are likely interacting with COBOL without even knowing. Things like call centres, money transfers, bank accounts, payment systems, insurance, ordering systems, vacation bookings, stock trading, government services and much, much more still often use COBOL.
So, all in all we should be taking COBOL more seriously – because you’ll probably die before COBOL does.