Are We Overestimating the Number of COBOL Transactions Each Day? (archive.org) 90
An anonymous Slashdot reader warns of a possible miscalculation: 20 years ago today, cobolreport.com published
an article,
according to which there are 30 billion Customer Information Control System/COBOL transactions per day. This number has since been cited countless times... [T]his number is
still to be found in the marketing of most COBOL service providers, compiler vendors
(IBM,
Micro-Focus and others) and countless articles about how relevant COBOL supposedly still was.
The article originally reported 30 billion "CICS transactions", but within 2 years it had already been turned into "COBOL transactions"...
The "30 billion" likely originates from a DataPro survey in 1997, in which they still reported 20 billion transactions per day. Only 421 companies participated in that survey. They actually scaled the results from such a small survey up to the IT-market of the entire world!
That same survey is also the source of many other numbers that are still to be found in the marketing of COBOL compiler vendors and articles:
- There are 200 billion lines of COBOL Code
- That's 60-80% of all the source codes in the world [sic]
- 5 billion lines of COBOL code are newly written each year
- There are 2 million COBOL developers in the world
- COBOL processes 95% of all "in person transactions", "ATM swipes" or similar
DataPro was bought by Gartner Inc. in 1997. Since then, all the numbers are reported to come "from Gartner". Only very early sources quote DataPro as their source.
Some of these numbers are obvious nonsense. The explanation for this is that DataPro had only surveyed mainframe owners. So it only says that 60-80% of all the source codes on mainframes are written in COBOL (which is plausible at least for 1997). And only 95% of all credit companies that have mainframes use their mainframes for processing credit card transactions. Considering the low participation, we are probably talking about 19 of 20 credit companies here.
The "30 billion" likely originates from a DataPro survey in 1997, in which they still reported 20 billion transactions per day. Only 421 companies participated in that survey. They actually scaled the results from such a small survey up to the IT-market of the entire world!
That same survey is also the source of many other numbers that are still to be found in the marketing of COBOL compiler vendors and articles:
- There are 200 billion lines of COBOL Code
- That's 60-80% of all the source codes in the world [sic]
- 5 billion lines of COBOL code are newly written each year
- There are 2 million COBOL developers in the world
- COBOL processes 95% of all "in person transactions", "ATM swipes" or similar
DataPro was bought by Gartner Inc. in 1997. Since then, all the numbers are reported to come "from Gartner". Only very early sources quote DataPro as their source.
Some of these numbers are obvious nonsense. The explanation for this is that DataPro had only surveyed mainframe owners. So it only says that 60-80% of all the source codes on mainframes are written in COBOL (which is plausible at least for 1997). And only 95% of all credit companies that have mainframes use their mainframes for processing credit card transactions. Considering the low participation, we are probably talking about 19 of 20 credit companies here.
Why should we trust those numbers now? (Score:4, Insightful)
Re: Why should we trust those numbers now? (Score:5, Informative)
Don't forget non corporate COBOL users.
e.g. The UK Department for Work and Pensions.
- Pays out £70,000 of transactions per SECOND
- Despite frenetic activity on their new systems and having an in-house staff of over 700 developers, the "over 50% COBOL" statistic still stands
Re:Why should we trust those numbers now? (Score:5, Interesting)
Maybe systems have been updated, but so often the systems doing the processing are so critical to the organization that updating them just means modifying a few (carefully reviewed) lines of code. Perhaps if someone were creating an entirely new bank, it might be COBOL-free, but that's not all that common (especially weighted by volume of transactions).
My guess is that there are more transactions via COBOL today than 25 years ago for the simple reason that there are far more electronic transactions now - more is done via credit cards and less is done with cash. Probably everything that needs to go through a bank probably goes through COBOL code at some point.
Re:Why should we trust those numbers now? (Score:5, Insightful)
Mature code is ugly but it also transforms the situation into implementation defined requirements. Any faithful port of the logic will be just as ugly. The only reason to change languages is for access to subjectively better hardware unless that language is purposefully built for the task. One such purposefully built language is called COBOL.
Re:Why should we trust those numbers now? (Score:4, Informative)
I completely agree. Here's an article that I think is pretty good on the subject (talking about how netscape screwed up in choosing to rewrite their code and why they were wrong to do so).
https://www.joelonsoftware.com/2000/04/06/things-you-should-never-do-part-i/
Re: (Score:1)
It's nonsense though, a lot of Spolsky's writings are. Sometimes rewrites are the best thing to do, the cost of maintenance can easily become higher than the cost of rewrites in systems with high levels of technical debt, and writing code isn't the slow thing in building software, gathering requirements, understanding the problems you're trying to solve, and coming up with the solutions.
Systems for which those things are well understood and well answered and where the original system was developed organical
Re:Why should we trust those numbers now? (Score:5, Interesting)
*** sorry for the book below... I started writing and... well it got out of control ***
Back in the 90's I worked for a bank clearing house and was coding some stuff on PC and there was an NCR mainframe which was actually so far out of support that they were literally collecting spare NCR mainframes from dumpsters to have spare parts. There was simply no point in rewriting the banking code since the mainframe from the 1970's was processing banking transactions for
The mainframe guys didn't see their jobs threatened because unlike nearly every PC technology, on the mainframe, everything is an object and everything is a transaction.
To compare to a modern approach... an IBM mainframe is
- CICS - Function as a Service, similar to Amazon Lambda functions... almost identical in fact.
- DB2 - Distributed Object storage database with NoSQL support as well as (I think) and ACID compliant SQL query engine as well as tables support
- JCL - Basically the AWS command line tools for uploading and scheduling Lambda events and transactions
- RPL3 - A batch language for generating form reports
- TSO/e or ISPF - something like HTML for presenting the user interface to smart terminals... IBM 3270 terminals were sorta like a web browser in the sense that they support things pages and form controls and had things like the approximate equivalent of Get and Post.
- COBOL - One of very many programming languages which can be called by the CICS engine
I suppose I could go on, but overall, these systems are basically self-hosted AWS alternatives which have evolved
I should point out that COBOL, which not the most exciting language is insanely simple. As soon as you understand that you generally don't write programs in Cobol, rather your write functions. You schedule the function to run using JCL (job control language) when an event occurs (a form posted data for example) and then you use object storage and nosql style methods to query databases and read or store information for example.
What people generally don't realize about the mainframe is that it completely and totally lacks a single point of failure. You can have a few nodes or a few million nodes. Storage is distributed naturally across any format from high performance SSD through real to real tape... even S3 if you really want it.
- IBM mainframes are and always have be a cloud.
- Load balancers on the way into a mainframe distribute transactions across any available node (just like K8S ingress)
- Unlike ingress, if a transaction doesn't complete, you can schedule a retry that will try another node
- Functions are stored as source or binary objects in the common object database
- Within operator provided constraints, all functions are elastic and location independent.
- When a transaction comes in, the function associated with the transaction (often referenced with something like a URL) is loaded onto a node.
- The CPU in the node isn't important. The binary format for IBM mainframes is a virtual machine language and has to be just in time compiled on the node where it will run if a binary wasn't already cached from earlier transactions.
- The system depended on the terminals to provide user interface functionality. Since the 60's, I'm had been using declarative UIs and a language like JSON for triggering transactions. The difference being that terminals didn't need responsive UI or single page apps. Instead, when a new page layout was ne
Re: (Score:2)
This comment is featured on Hacker News
https://news.ycombinator.com/i... [ycombinator.com]
Re: (Score:2)
I'll only believe it (Score:4, Funny)
if Netcraft confirms it.
Re: I'll only believe it (Score:4, Funny)
But who confirms Netcraft?
I've seen so little of them, the last decade, that we might ask BSD users to confiem their existence.
Re: (Score:2)
I have written occasional bits of Cobol, but I am reasonably certain that no Cobol written by me is still in use, and I will not write any more IBM or Microfocus Cobol ever.
I will not confirm whether or not Netcraft or Gartner exists, not will I listen to anyone else confirming anything relating to Netcraft unless they have evidence written in Snobol4 that they are a genuine Zombie.
Pressing social concern (Score:2)
Role of COBOL in your daily life overstated, news at 11.
Re: (Score:2)
See, real conspiracies are around but they're often boring to a general audience, like this conspiracy to overhype the use of an ancient programming language to drum up business for the handful of companies that still sell products and services related to it.
Most people probably aren't even interested in the fake STEM shortage conspiracy.
Re:Pressing social concern (Score:4, Funny)
If only there were a mysterious person called QBOL who could make it all seem interesting.
Re: (Score:1)
Articles like this are infinitely better and more suitable than the inane political rage-bait that gets posted here. COBOL's incredible PR factoids should absolutely be subject to scrutiny.
Re: Not only IT. Over-estimation driving policy? (Score:2)
Are you a militant libertaryan by an chance?
Re: (Score:1)
"can't remember"
"i believe"
"can't remember"
Thanks for your valuable contribution.
We are UNDER estimating (Score:2)
Not all COBOL lines are executable (Score:3)
Most lines are in the identification division, the environment division (COBOL programming taught me the correct spelling of the word environment) and the data division.
Think of Cobol as the software version of bureaucracy, where a small fraction of employees are doing actual work?
Re: (Score:2)
Re: (Score:2)
You have to admit that "MULTIPLY xx BY yy GIVING zz" is clearly an imperative statement.
Re: (Score:2)
Re: (Score:2)
You are implying that understanding one line of Cobol out of context implies that it is possible to understand the entire context.
As one of the few people here who has experience of actual Cobol, I initially read this statement as
1000 lines of clearly incomprehensible COBOL
which is far more credible if you have ever had to debug the stuff.
Re: (Score:2)
Yeah, no. Pretty sure I wasn't.
As do I, although it was a long time ago in a bank far far... well it's not that far away, and it's still running COBOL. .Net front end for a COBOL backend and the COBOL guys kept sending me segments in the wrong ord
Although I did dive into COBOL again not so long ago when writing a
Re: (Score:2)
References to departments or machines that were scrapped before I moved there can also be a problem.
I write code expecting it to be used for 10 years - not 50 years. (I have also supported F
Re: (Score:2)
Re: (Score:2)
You can use standard operators in COBOL since decades.
Old code never goes away (Score:4, Insightful)
Re: Old code never goes away (Score:2)
If it runs on IE, it is not critical, and neither are the morons that haven't left that "community" yet.
Re: Old code never goes away (Score:2)
It was a national train scheduling system
Estimates are hype (Score:2)
Estimates are always made to favor the needs of the people publishing the estimates. People who sell trash compactors estimate the need for such machines as a way of selling more; companies that train and hire out COBOL programmers estimate the need to for COBOL to support getting more people to use their services.
That isn't to say COBOL isn't used. I know of a large corporation involved in shipping where the majority of the data on packages passes through at least one COBOL-using mainframe as it moves arou
Sale of trash compactors decoupled from COBOL (Score:2)
The days of when the sales of trash compactors were predicted by the use of COBOL ended when recycling of paper was instituted.
Re:Estimates are hype (Score:5, Informative)
"Estimates are always made to favor the needs of the people publishing the estimates"
Well yes, but actually no.
There *are* a lot of estimates/studies which aim to be unbiased. These are generally from people/companies who have a solid reputation for doing such work.
Conversely, I still remember the !@#$ing Microsoft ads, across virtually all media they thought would appeal to IT types, pushing the idea that the 95% of the internet ran on Microsoft Server**, based on an independent survey! ... completely ignoring the *minor* detail that Apache was running on 85-90% of all internet servers - based on numerous unbiased sources - and was completely free.
Where **, in the smallest font that media would support, mentioned that the number was based on sales
Not only plausible but a vast underestimation (Score:3, Informative)
30billion per day, I would rather estimate 3000 billion, and plus, per day.
For reference, the German railway system - Deutsche Bahn - had ~150million passengers in the year 2018.
Assuming everyone booked a ticket (which they did not as many have monthly or weekly tickets), that would be roughly 400k bookings a day. Considering that most of the backends are in Cobol running on Tandems (yes!) and most transactions consist of a set of sub transactions, assuming perhaps up to ten per ticket, that leads us to 5 million COBOL based transactions for a single company, per day.
Re: (Score:2)
It's as dumb an analogy as yours. However, he does have the wrong figures for the number of passengers.
But since you seem to lack basic decency and an ability to google I will help out.
The Deutsche Bahn's own integrated report states they had 2,603 million passengers in 2019 - yes, that's 2.6 billion - the 152 million is for long distance passengers only, taken with regional passengers it's obviously a lot more. [dbschenker.com]
Every single passenger regardless of whether they hav
Re: (Score:2)
I was basically only talking about the transactions for booking the train connection, not the financial one :D
But thanks for the correction, while I found the passenger number oddly low, I simply thought I had misremembered and accepted it.
Re: (Score:2)
A programmer was caught on camera duplicating COBOL code using copy & paste.
Let's ask the other way around: (Score:1)
Has anyone ever seen COBOL still being actively used?
How much of what you saw in the last 10 years was COBOL? Not saw, as in code, but as in running software.
And what industries? Banks? What else?
My imprecise gut says, the word we are looking for, is "negligible". But I'm happy with being told I am wrong.
Re:Let's ask the other way around: (Score:5, Informative)
Get a phone bill? COBOL generated that. Every call, every text, every data packet gets rated. And that rating engine? COBOL.
Flight reservations? COBOL again.
Just two examples that I’ve touched in my professional life routinely. There’s tons more.
Re: (Score:2)
As someone who maintained a phone billing system in Java, and another written in PHP, which I replaced with one I wrote myself at least partly in PHP, I refute that statement.
The bills may have been generated by Cobol, but the call data collection was not in Cobol.
Re: (Score:2)
This is exactly the repeated stupidity that the story is about.
Re: (Score:2)
Indeed. There is a mythology that COBOL is widely used, but little evidence that it actually is.
The PP is just repeating the myth while providing no evidence and no specifics.
"Phone companies use COBOL." Really? Which phone company?
"Airlines use COBOL." Really? Which airlines? Where are their job postings for COBOL coders?
Re: (Score:2)
Get a phone bill? COBOL generated that.
No it didn't.
My phone bills arrive as PDFs in my inbox. PDF generators are not written in COBOL.
Perhaps you mean the data was processed with COBOL. Highly unlikely. Pac-Bell has been using Java for decades. They have dozens of job listings for programmers, but none for COBOL as far back as I can search.
Re: (Score:2)
Re: (Score:2)
Get a phone bill? COBOL generated that.
That hasn't been true for a long time. T-Mobile and Verion both have billing systems written in Java. Not sure about AT&T.
Re:Let's ask the other way around: (Score:4, Interesting)
Banks are obviously the big one. In general any organization that has been around a while (i.e in business since the 70s) with large amounts of financial transactions. The gains of using computers were so great and the standardization around COBOL basically made it a technology that is impossible to dislodge. It is too critical to the underlying infrastructure. Their core processing is done using very old code (but probably as close to bug-free as you can get) - and it would be far too risky to change it, so it stays the same. Most is in-house so it isn't publicly visible.
In addition to banks, you have airlines, government agencies (many different ones), railroads, electric grids, ...
It isn't the "cool" technology and not a lot of new stuff is done using it (which probably means the volume of programmers working on such systems is relatively small), but I wouldn't call it negligible.
Re: (Score:2)
Banks are obviously the big one.
Why is that "obvious"? Banks have been hiring Java programmers for decades.
you have airlines
Which airline?
Airline online reservation systems were built in the 1990s at the earliest. Why would they use COBOL?
Re: (Score:1)
Re: (Score:1)
Re: Let's ask the other way around: (Score:5, Informative)
Insurance.
My mother writes COBOL for a living. Her employer services the insurance industry. Not the big boys like Allstate or Liberty Mutual who are big enough to have an in-house software team but little-ish regional companies in places like Upstate New York that are big enough to be insurance companies but too small to justify insourcing their software development.
Many of these little guys have been around for many decades and started going digital versus pencil and paper in the 70s when COBOL was the only option. My mom's company was founded around then as a joint venture of a bunch of these little guys. And they just kept on going.
Re: (Score:2)
But I'm happy with being told I am wrong.
You're wrong. Be happy.
Re: (Score:2)
I have a friend who works with a insurance company. He is a cobol programmer. The core of their system run on old main frames with cobol code. I asked him why they still run on them with old code. His answer was simple. "All the bugs are known."
Makes sense. You are dealing with financial records. A bug, hardware or software, could cost millions if not billions dollars before its stopped.
How many remember the old floating point bug in the old Pentium processor? Modern processors or a bug f
Re: (Score:2)
Highly unlikely they are running 'old mainframes'. Mainframes, yes. Old, no. If they are like most mainframe users, the mainframe (and OS, middleware, etc) is probably less than 5 years old. The only 'old' thing is generally the application (business logic).
Re: (Score:2)
Re: Let's ask the other way around: (Score:1)
Re: (Score:2)
Re: (Score:2)
Lots of on premise ERP systems use COBOL extensively. Most often in Payroll systems but also Inventory systems too. The thing about COBOL is that, yes, it's ancient and not a lot of fun to code in but it WORKS. It is extremely efficient at processing huge data sets. For years I have been hearing that it is going to be retired but it ends up being such a massive undertaking that most places just give up.
WTF are you trying to say? (Score:2)
If it isn't broken, don't fix it.
or
I need a job fixing stuff that ain't broken.
Re: (Score:2)
Re: (Score:2)
If it isn't broken, don't fix it.
I suspect you still go to work on horseback. A much more sensible approach is:
If the numbers are true, it should be abandoned (Score:2)
There probably aren't 5B lines of code in the entire body of project code bases in the ecosystems of Red Hat, Debian and Ubuntu.
If you are starting from 200B lines of code and adding 5B new lines a year, your language is nothing short of some satanic torture device meant to prepare developers for an eternity in Hell in terms of how ineffective it is at anything resembling decent practices.
Re: (Score:2)
All the codes! (Score:1)
- That's 60-80% of all the source codes in the world [sic]
The plural of FORTRAN programs written until some time in the 80s or 90s is also apparently "codes" among physicists and engineers of a certain age.
I'm 35. I Learn[ed] To Code for realz in college in the early 2000s. I've always known "code" to be a collective noun.
Any 4 or 5-digit user ids around here care to weigh in on when the transition happened?
Re: (Score:2)
Probably some kind of euro-speak, like the corporation "is" and "are" switcheroo.
Better answer might be... (Score:1)
We do not know, but it is a lot... probably billions.
Until you know who is using COBOL or whatever and how it is being used, then how much is a figure that might be addressed objectively.
But hey, you have not lived until you have to face the new guy who wants to swap out all of the company systems and implement a service-based architecture, when he cannot even write a simple service.
Re: (Score:2)
But hey, you have not lived until you have to face the new guy who wants to swap out all of the company systems and implement a service-based architecture, when he cannot even write a simple service.
Don't you love those guys? Don't you love it even more when those guys are the bosses nephew or son? Fortunately, I was already on the way out and got to watch it all happen from a distance.
Re: (Score:2)
Just envy (Score:5, Interesting)
I think many programmers are just envious because they know that the code they write will not be used for a tenth of the lifetime of the reputable Cobol code.
Re: (Score:2)
Re: (Score:2)
"An anonymous Slashdot reader warns" (Score:2)
Really?
its all machine language end of the day (Score:1)
Stop Picking on COBOL (Score:2)
I began writing software in the early 1980's in BASIC, Assembly, RPG II, eventually C, Bash, Perl, C++, and PHP along with SQL and more so now JavaScript/Node.js, C#, and Python. The truth is, these languages have continually become more complex, more memory bloated, slower, harder to learn, and less efficient to code in. Frameworks have enabled people who cannot write softare from scratch to write applications, too, but very restricted and poor performing.
COBOL is still easy to argue as the best overall
Re: (Score:1)
COBOL is a domain-specific language and it fits the domain pretty well such that general-purpose languages have a hard time competing against it.
I don't think so since the payroll company I... (Score:3)
work for still uses COBOL. Every paycheck for well over three million employees is generated by COBOL. We've been trying to replace it for well over a decade, but we've failed so far since there's just so many rules.
There's still a lot of it ... (Score:2)
If you look at CSDs (Central Security Depositories), you'll find scary amounts of code written in both Cobol and PL/1.
CICS is also still alive and kicking in a lot of places.
Cobol requires a lot of lines to do anything (Score:2)
Just "Hello World" takes 50-100 lines of code. Modernization of the language to support things like "functions" requires multiplied additional lines of code, just to start telling the program what you actually want it to do. I'm surprised the number of lines of Cobol isn't higher. But that doesn't equate to a lot of functionality. I'm old enough to have written Cobol professionally. I don't ever want to see another line of it!