COBOL: 60+ Years of Proven Business Rules, Still Going Strong
It’s kinda funny that most developers only tell jokes about COBOL, when
massive amounts of COBOL code is in fact what makes the financial world go round, even in 2019!
It’s estimated that COBOL runs close to 90% Of all Fortune 500 Company business-software systems worldwide, and this code is responsible for around 85% of business-transactions each day.
Also, around 70% of other mission-critical business-logic and more general
information-systems used by companies and governments worldwide is written using COBOL.
This includes systems used to balance large, complex budgets and
calculate things like retirement plans and payments, issue and keep track of personal ID numbers, like social security numbers and similar systems around the globe.
Who uses COBOL today?
IBM claims that around 200 billion lines of COBOL code are still in use
today by various industries.
Why hasn’t COBOL been replaced, even after 60 years in duty?
The sheer cost and effort to replace COBOL is not an acceptable return on
investment (ROI), it’s as simple as that.
There just aren’t enough skilled COBOL developers around
to do the work involved with porting the systems to a new platform.
It’s something that’s ongoing, but it’s a huge undertaking, done by only a handful of industry veterans that knows enough about both the
COBOL language, the mainframe platforms on which they run and how to, actually port the systems to a cloud infrastructure using a more modern language.
Relatively new software developed by IBM can now deploy COBOL application code to the Cloud using COBOL and Kubernetes with no complete rewrite necessary.
This is a factor that plays a huge role for considering re-writing COBOL code, when the porting process is that complex.
Learning COBOL today might actually not be a bad idea
COBOL programming skills are in fact still very relevant.
In a relatively recent survey, 71% of universities believes companies will rely on COBOL for at least the next decade.
Thousands of organizations are spending millions on COBOL development and maintenance around the world today.
COBOL systems are still driving many mission-critical systems
at some of the most prestigious companies in the world.
Without COBOL we wouldn’t have a functioning system for financial transactions, things like ATMs or terminals at stores where we can swipe our debit or credit cards as payment wouldn’t function and international money-transfers wouldn’t be possible.
So there’s no doubt that COBOL is still important.
A plan might be to first learn COBOL well and understand how it
is used in the world of finance, and in governments, and then figure out what
technologies and languages would be the best fit for these tasks today.
Then you’d have to learn how to port legacy COBOL over to the new language and platform.
If you’d manage to do that, I’d say unemployment would be the least of your
concerns for the rest of your developer career.
If or when all the COBOL code had been ported, you’d still be an expert in using the new target language and platform, so the ball wouldn’t stop rolling any time soon.
The work that’s being done today for having COBOL interoperate with more
modern systems uses Java, but this may or may not be the best solution in all use-cases.
Part of the reason for this is that a large portion of modern business-systems
already runs on Java based solutions.
The transition from COBOL to Java may seem like the shortest path of least
resistance right now, but as with many things in life, that’s not necessarily
the best way in the long run.
IBM has done a massive job in creating tools for Java and COBOL interoperability, so this is also an important factor to consider when deciding how to kill this elephant.
High profit jobs are queuing up!
According to a COBOL veteran, “clients will pay almost anything for your services” one founder of the COBOL Cowboys, says in this article.
Many COBOL programmers claims that the 60+ year old language is still as “current” and “modern” as any other programming language in the marketplace today.
Especially for features like scalability, concurrency and parallel
execution.
Most COBOL applications fit into one of two categories:
- On-line transaction processing (OLTP): where inter-transaction parallelism is exploited to allow several instances of the program to run concurrently on independent transactions.
OLTP programs are typically executed in parallel by the Transaction
Processing monitor within which they are developed and executed. - Batch: where the larger programs tend to handle serially a large number of
records, subjecting them to similar processing. This is the read-modify-write loop used in many COBOL programs.
So, will COBOL rise and stand the test of time forever?
Who knows what the future holds?
Any way you look at it, learning COBOL now is a golden opportunity for getting a well paid job. Also it doesn’t take forever to educate yourself enough to handle it if you already have experience from other languages and are willing to sweat some blood, and possibly loose some hair in the process.
Anyway, I had a great time learning about COBOL while putting together this short little story.
EDIT:
Stumbled upon this article from IBM, which warrants what I try to convey in this post. It’s an interesting read, and the conclusion for those with the TL;DR; Syndrome (TLDRS):
“The foundation of American and worldwide business depends on COBOL applications running the billions of daily back-office transactions. Banks, insurance companies, airlines, ERP systems, stock exchanges, fulfillment centers and more are all required to process large numbers of transactions in a bounded amount of time. The applications they count on to accomplish this vital task run COBOL on IBM Z.”
“If the continued use of COBOL and mainframes is, as we believe, inevitable, or at least until someone produces an alternative that is as efficient and effective, the most appropriate solution is to train a new generation of COBOL programmers”
So, go learn COBOL and get hired easily!