COBOL Turns 60. Why It Will Outlive Us All (zdnet.com) 163
ZDNet remembers when the only programming languages "were machine and assembler," until Burroughs Corporation programmer Mary Hawes proposed a vendor-neutral language with an English-like vocabulary. (Grace Hopper suggested they approach the Department of Defense, leading to a summit of 41 computer users and manufacturers at the Pentagon in 1959.)
But ZDNet argues that 60 years later, COBOL isn't done yet. In 2016, the Government Accountability Office reported the Department of Homeland Security, Department of Veterans Affairs, and the Social Security Administration, to name just three, were still using COBOL. According to a COBOL consulting company, which goes by the delightful name, COBOL Cowboys, 200 billion lines of COBOL code are still in use today and 90% of Fortune 500 companies still having COBOL code keeping the lights on. And, if you've received cash out of an ATM recently, it's almost certain COBOL was running behind the scenes.
ZDNet explains that's the largest number of businesses using COBOL are financial institutions, which, according to Micro Focus includes "banking, insurance and wealth management/equities trading. Second is government services (federal, provincial, local)." Micro Focus is the company that now maintains COBOL, and their global director of marketing and "application modernization" tells ZDNet that "the number of organizations running COBOL systems today is in the tens of thousands. It is impossible to estimate the tens of millions of end users who interface with COBOL-based applications on a daily basis, but the language's reliance is clearly seen with its use in 70 percent of global transaction processing systems. Any time you phone a call center, any time you transfer money, or check your account, or pay a mortgage, or renew or get an insurance quote, or when contacting a government department, or shipping a parcel, or ordering some flowers, or buying something online at a whole range of retailers, or booking a vacation, or a flight, or trading stocks, or even checking your favorite baseball team's seasonal statistics, you are interacting with COBOL.
ZDNet notes that some people are even moving their COBOL applications into the cloud, concluding "At this rate, COBOL programs will outlive us all."
But ZDNet argues that 60 years later, COBOL isn't done yet. In 2016, the Government Accountability Office reported the Department of Homeland Security, Department of Veterans Affairs, and the Social Security Administration, to name just three, were still using COBOL. According to a COBOL consulting company, which goes by the delightful name, COBOL Cowboys, 200 billion lines of COBOL code are still in use today and 90% of Fortune 500 companies still having COBOL code keeping the lights on. And, if you've received cash out of an ATM recently, it's almost certain COBOL was running behind the scenes.
ZDNet explains that's the largest number of businesses using COBOL are financial institutions, which, according to Micro Focus includes "banking, insurance and wealth management/equities trading. Second is government services (federal, provincial, local)." Micro Focus is the company that now maintains COBOL, and their global director of marketing and "application modernization" tells ZDNet that "the number of organizations running COBOL systems today is in the tens of thousands. It is impossible to estimate the tens of millions of end users who interface with COBOL-based applications on a daily basis, but the language's reliance is clearly seen with its use in 70 percent of global transaction processing systems. Any time you phone a call center, any time you transfer money, or check your account, or pay a mortgage, or renew or get an insurance quote, or when contacting a government department, or shipping a parcel, or ordering some flowers, or buying something online at a whole range of retailers, or booking a vacation, or a flight, or trading stocks, or even checking your favorite baseball team's seasonal statistics, you are interacting with COBOL.
ZDNet notes that some people are even moving their COBOL applications into the cloud, concluding "At this rate, COBOL programs will outlive us all."
laughed at the "tens of millions of users" (Score:4, Informative)
No, there are over a billion users of COBOL daily. If you're moving money in the western world with western banking or credit cards, that happens with COBOL. I hear rumors there are a lot of COBOL in Japan, South Korea and India too.
Re:laughed at the "tens of millions of users" (Score:4, Informative)
Surely they don't all come with a lousy boss, but they are being phased out. Here is one example [slashdot.org], and they saved $3 million euros a year after the migration. Other people I know who are working with COBOL have similar plans.
On the other hand, IBM mainframe sales keep rising, so they must be doing something
Re: (Score:2)
On the other hand, IBM mainframe sales keep rising, so they must be doing something
Z-series sales have been on a decline for over a decade. There have been a couple small peaks in there but in general it's been on a steady downhill trend.
Re: (Score:2)
IBM "mainframes" are rarely Z-series these days. IBM sells a product that will convert their own Z-series systems into the IBM cloud, which is just running on standard x86 iron, I know a couple of smallish vendors that do the same thing or run disaster recovery 'mainframes' simply by creating a VPN between your mainframe and Amazon and then running some software.
Re: (Score:2)
IBM "mainframes" are rarely Z-series these days. IBM sells a product that will convert their own Z-series systems into the IBM cloud, which is just running on standard x86 iron,
A cluster is a fine thing, but it isn't a mainframe. I'd argue that it's generally superior to a mainframe, and the market seems to agree.
Re:laughed at the "tens of millions of users" (Score:4, Interesting)
I learned COBOL for Y2K, and I agree. There is not actually any demand.
Mainframes are mostly running code written in C.
COBOL programs are mostly maintained by switching to modern compilers, and writing new libraries in C. The old code is not touched other than to hook in the new libraries.
Re: (Score:2)
Wrong, you just need to find the right employment agency. They don't really advertise because it generally produces zero results. If you find the right employment agency you will find plenty jobs. Most job hunting is done by word of mouth now because no one teaches COBOL anymore.
Re:laughed at the "tens of millions of users" (Score:4, Informative)
OK, lest you say that's only in Ohio, let's look in California, another job posting that pays dirt [indeed.com].
The only ones making money off COBOL are the consulting firms quoted in the summary and article.
Re: (Score:3)
5 figures and it is a "senior" position, so to qualify you have to have a long history of being a specialist receiving below industry average pay.
Re: (Score:2)
Re: (Score:2)
Yep. I still get feelers despite telling everyone I wasn't interested for over twenty years now.
Re: (Score:2)
So there is even less demand than there is legacy supply. And supply must be shrinking, so demand must be shrinking faster.
Re: laughed at the "tens of millions of users" (Score:2)
Re: (Score:2)
$90k is above the median income almost everywhere in the country, including Silicon Valley.
Since 2016 the median income has been over $100K in Santa Clara County, and 2017 for San Mateo County.
2017 Santa Clara County [census.gov] (click on the list on the left to check out earlier years) or 2017 San Mateo County [census.gov]
The mean has been over $100K for over a decade in Silicon Valley, but that has more to do with the bloat at the top of the income scale.
Re: (Score:2)
Re: (Score:2)
That page seemed to be cookie driven, better links I hope SCC [census.gov] and SMC [census.gov]. All the data is broken down into "Households", "Families", "Married-couple families", and "Nonfamily households". There is unfortunately not an individual income section. Median income of "Families" and "Married-couples" are both significantly higher than "Households", which presumably includes individual incomes.
Re: laughed at the "tens of millions of users" (Score:3)
Re: (Score:2)
If you're going through an "employment agency," you already failed at consulting and will get low pay once you calculate the hours.
Re: (Score:2)
Mainframes are mostly running code written in C.
Hmm . . . I would have guessed, PL/I.
In a project that I worked on in the late 80's, we had to port stuff written in PL/S for an IBM Series 1 to IBM "Industrial PCs" running OS/2.
That was a hoot and a half.
And it would explain to anyone why my posts here are completely batshit crazy.
Re: (Score:2)
Disgusting, but at least it works. And I doubt you have to swim in third-party libraries with conflicting version requirements, so better than the average modern enterprise framework.
But the places that buy that have shitty HR and can barely hire anybody. They have to merge with another company just to pillage engineers.
Re: (Score:2)
Mainframes are mostly running code written in C.
Hmm . . . I would have guessed, PL/I.
You'd be out of touch. Most mainframes these days run Linux/C/other.
Re: (Score:2)
COBOL programs are mostly maintained by switching to modern compilers, and writing new libraries in C. The old code is not touched other than to hook in the new libraries. ... no one is so stupid doing that.
That does not make any sense. Cobol is excellent in data processing. What the compiler gives you for free you would need to write manually in C (input/output/formatting)
Re: (Score:2)
I tried to look for some COBOL jobs a few years back, when I bought into the COBOL hype. There aren't very many (which is ok, as long as there is one for me), and more importantly they are relatively low paying. $60k per year and a lousy boss, no thanks.
That's because most of them are in the financial sector, where it is a fundamental principle that 99 percent of the money is reserved for the big cheeses and the shareholders. (Two groups who increasingly tend to be the same people).
Re: (Score:2)
That's because most of them are in the financial sector,
Or the government.
Re: (Score:2)
No, there are over a billion users of COBOL daily.
And there are more than 7 billion people producing trash each day. What of it? The trash still stinks.
also why the mainframe will live for decades (Score:2)
The job control and IBM COBOL dialects and IBM compiler preprocessor commands, CICS and SQL baked in the IBM way, EBCDIC mode, mainframe arithmetic precision modes and BCD that aren't the IEEE types.... all mean the big corporations are not going to bother porting code built up over decades to Unix iron, or Linux based Intel/amd x86 servers.
Re: (Score:2)
The middle managers in those companies who are running Unix iron will only see the cost of migration and say “not gonna happen” - without considering how much overall they're paying annually to keep those beasts going.
Re: also why the mainframe will live for decades (Score:2)
Re: (Score:2)
Software in COBOL is not hard to maintain. It is quite a nice language.
Rewriting simple "data processing" into a more modern language rarely makes any sense.
Re: (Score:3)
The job control
When someone says to me "JCL", it flips me out and causes post traumatic syndrome symptoms about Job Control Language, which I used in the early 80's.
What really frightened me was that I did a gig in a development system of IBM Z back in the late 90's . . . and they were still using that stuff, as opposed to bash, or what similar.
I need to like my job. Sure, I can do a bunch of stuff in ornery and arcane languages, but at the end of the day, I need to say, "That was fun!"
Re: (Score:2)
OTOH, in writing firmware for microcontrollers I have to deal with BCD all the time. Sometimes I just buy a BCD chip for a few cents if it is only needed on IO and I have extra GPIO pins.
I'll bet a lot of them would port it if their HR departments were willing to let them hire contractors based on deliverables instead of resumes.
Companies don't migrate because they have broken hiring practices, not because old BCD is hard, and not because IBM SQL is hard.
I personally would actually prefer to work on some CO
Re: (Score:2)
I don't think it has to do with HR. They don't migrate because it's thousands of apps with tens of millions of lines of code that is still being changed. No one is going to take years to migrate that to a platform that is more expensive (at the large end), less reliable, less secure, and with lower performance.
Re: (Score:2)
"Millions of lines of code" usually ends up including a few hundred thousand lines just of math routines that you don't rewrite when you port, you just make minor modifications to hook in the new stuff.
Nobody has millions of lines of business logic or IO, which is the stuff that has to be ported.
And depending on the comment polices, every 5 lines of C is 50 lines of COBOL, because you know they didn't get to the millions if they stripped comments and boilerplate.
Re: (Score:2)
And depending on the comment polices, every 5 lines of C is 50 lines of COBOL,
In *logic* prhaps.
In data processing/formatting: most certainly the opposite around.
Re: (Score:2)
OTOH, in writing firmware for microcontrollers I have to deal with BCD all the time
What the hell are you doing that you need BCD ? I've been working with microcontrollers for decades, and I've never used BCD for anything.
Sometimes I just buy a BCD chip for a few cents if it is only needed on IO and I have extra GPIO pins.
Why not just copy/paste some working code ?
Extending Cobol (?) (Score:4, Interesting)
Shouldn't it be possible to extend Cobol without breaking backwards compatibility? I know Cobol looks like someone combined a beta version of SQL and a design draft on an early Basic while on a mix of bad LSD and crack, but that shouldn't prevent anyone from adding features that make sense, in a modern way.
What I'm trying to say is that I see know reason Cobol couldn't be around for another 200 years and why that musn't be a bad thing - especially if Cobol is maintained and extended in a sensible manner that doesn't break existing workflows. I mean, people still code in other obscure languages like Lisp and Haskell and whatnot and AFAICT that stuff works if done right.
Anybody with current insight into the Cobol world that can tell us what's happening with Cobol in the non-breaking extensions department?
I'm curious.
Re: (Score:2)
Case in point: QB64 [qb64.net].
Any language can be modernized, if there are enough (and/or sufficiently influential) people who want it.
Re: (Score:2)
Did you not notice they have a Github link?
Re: (Score:2)
By the way, I've helped bug test for that project, especially for routines involving multi-channel sound. It was downmixing everything to mono until I asked what was up, and when they fixed that, they decided to just get ahead of the curve and make it work with any arbitrary number of channels.
The whole thing is really a BASIC-to-C++ translator, feeding into gcc++. I've intercepted the intermediate C++ and forwarded it for someone else to use as a reference, since they were much more familiar with C++ than
Re: (Score:2)
Re: (Score:3)
Re: (Score:2)
If on LSD, then it's time for: .sig: Sique *sigh* [youtube.com]
Re: (Score:2)
Yes, COBOL gets extended same as any other language by standard committee. Object oriented extensions, recursion, unicode and pointers were formalized in COBOL 2002
COBOL 2014 added collection classes, XML processing, dynamic sized and allocated tables.
Re:Extending Cobol (?) (Score:5, Funny)
Ah, object-oriented COBOL...
Also known as ADD ONE TO COBOL GIVING COBOL.
Re: (Score:2)
actually it's just
ADD 1 TO COBOL
Re:Extending Cobol (?) (Score:5, Funny)
Shouldn't it be possible to extend Cobol without breaking backwards compatibility?
Sure. Here's my suggestion:
Re:Extending Cobol (?) (Score:5, Insightful)
Re: (Score:2)
Corrected it for others to understand.
Python is the Basic of modern days.
Re: (Score:2)
Where are your environment and data divisions?
Re: (Score:2)
I know Cobol looks like someone combined a beta version of SQL and a design draft on an early Basic while on a mix of bad LSD and crack
That's mostly the direct consequence of having been written in terms a business user can readily understand. In other words, it was the very first domain-specific language.
Languages like C, C++, Java, Python, etc. are written much more in terms familiar to programmers. That's good, but it leaves an aching chasm between the actual problem statement and the programmers who have to try to create solutions.
Re: (Score:2)
The latest version of COBOL had been released last year.
Each time they add a lot of new functions and features.
You can now parse and generate JSON messages with a single instruction.
You can do the same with XML.
We develop new APIs in COBOL that allow web services to communicate with the legacy applications, using MQ messages.
We have batch jobs that processes millions of transactions using less than a second of cpu, and under 16 MB of RAM, you can't do that in java (I know because I do both COBOL and java de
Of course (Score:5, Insightful)
It's billions, effectively, every financial transaction will probably use a COBOL program at some point.
It will outlive us all because it just works, it doesn't need to be improved, or supplanted, etc. It's funny, computer weenies mock it (" I could write that in 4 lines of C, ha ha!") but it's perfectly good solution to the problem they had/have.
FORTRAN is the same way with scientific and engineering work, it's never going away, because there's no need for it to go away. It was designed more-or-less for these applications, by true professionals And with the F77+DEC extensions (or the same things from other versions), you don't need to do anything thing else or hypothetically "better". We still use FORTRAN subroutines written in the early 60s and only slightly modified since *every single day*.
Re: (Score:3)
Not really. You'd need multiple libraries that handle business-oriented and data-centric idioms built into COBOL's language.
COBOL has some handy features built in, such as hierarchical defining and naming of data blocks. You can reference the blocks by name rather than have to list each column by name.
Re: Of course (Score:2)
Re: Of course (Score:2)
Re: (Score:2)
Re: Of course (Score:2)
Re: (Score:2)
Re: (Score:2)
Your previous statement (aka language not for features but libraries) might be true if you have to choose between C#/Java or consider Python.
Most certainly you chose Smalltalk, Fortran, Cobol or even Perl for its features.
Re: (Score:3)
Personally I don't like working in COBOL, but it's not the language I don't like, it's the tedious work that goes with it.
Re: (Score:2)
FORTRAN is the same way with scientific and engineering work, it's never going away, because there's no need for it to go away. ... We still use FORTRAN subroutines written in the early 60s and only slightly modified since *every single day*.
I don't think a lot of new scientific code is being developed in Fortran, but I could be wrong. The widely used Fortan libraries such as LAPACK (which have wrappers for C and Python and which Matlab relies on) are getting replaced by API-compatible versions such as the free (beer) Intel MKL that I don't think are written in Fortran and that are faster as long as you run on Intel CPUs.
Re: (Score:3)
I don't think a lot of new scientific code is being developed in Fortran, but I could be wrong.
Yes, you are wrong. Fortran may not be what the "cool kids" are using, but there is a LOT of new Fortran code being written for scientific and engineering applications. Fortran also continues to evolve - Fortran 2018 was published last year. What's being written is not utility routines like LAPACK, but full-on applications in domains such as weather forecasting and optical analysis.
COBOL is indeed still widely used, and well-paying consulting gigs are still available, but the COBOL standards committee disba
Re: (Score:2)
Even if you write it in 4 lines of C, you only need a couple lines of COBOL to use it there. :)
Many of the Ruby and Perl libraries are implemented in C, too.
Re: (Score:2)
It's not that it just works. In many cases it could be improved. The problem is that it's just too much of a risk to replace it with new software. The current software written in COBOL is so old that there's probably nobody that knows the various parts system with all of the edge cases that have been put in over the years. While it's possible to run past transactions through a test system to verify that the new system works how would one know how far back to test to ensure that the majority of exceptional c
Re: (Score:2)
effectively, every financial transaction will probably use a COBOL program at some point.
Yah, no. The financial system migrated to Java long ago, and much of it is now on C++.
Re: (Score:2)
Re: (Score:2)
It's billions, effectively, every financial transaction will probably use a COBOL program at some point. It will outlive us all because it just works, it doesn't need to be improved, or supplanted, etc
There's plenty of stuff in the financial world that has been improved or changed. My own personal banking is totally different than it was a few decades ago. We have a lot more financial products, and nightly batch processing and mail-in checks have been replaced by real-time internet banking, phone apps, pin & chip, ATMs, and contactless payments. There are new government/tax regulations, financial mergers, and more security features to combat all the new ways to commit fraud.
It's foolish to think otherwise. (Score:2)
Shit, we still have people becoming fluent in Latin as part of their jobs. What's a programming language compared to that?
Re: (Score:2)
Shit, we still have people becoming fluent in Latin as part of their jobs. What's a programming language compared to that?
Approximately the same. One is a language used in science, the other is a language used in engineering.
Re: (Score:2)
I think the cost of maintaining knowledge of a programming language is considerably less than knowing a full spoken language, but let's just say they are the same for simplicity. Even if that is the cost -- there will always be code from the past that needs to be read. Like Latin, there will always be at least a few people who know and use COBOL, because the cost of doing so is simply not that high. (This presumes civilization as a whole survives, of course.)
Re: (Score:2)
Medicine needs to have vocabulary distinct from lay people so they can be precise. Heartache could be physiological or emotional, cardiopathy is definitely physiological.
Also something like pneumonia doesn't even have an informal equivalent, so I don't know what else anyone might try to call it.
COBOL rules OK (Score:2)
Re: Play it safe, boys and girls (Score:2)
Stability has a place (Score:2)
It's like Latin: it's used for scientific naming because it stays the same because it's a mostly "dead" language, not shaped by trends and fads; some of them wasteful, redundant, and useless in IT.
Cobol consulting pays (Score:2)
Re: (Score:2)
Three times the typing, but that only translates to an increase of maybe 5% in time.
And OTOH the decimal math will reduce some of the programmer time.
Re: (Score:2)
Re: (Score:2)
It doesn't have anything weird like dependencies that load over git repos, so maintenance is as easy as any old code. Which could be good or bad, depending.
It at least gives you a chance.
Re: (Score:2)
And OTOH the decimal math will reduce some of the programmer time.
Not really. Binary math just works. The only place you need decimal is in the conversion from user input/output. That is trivial, and only needs to be done once.
ZDNet remembers ? (Score:2)
Re: (Score:2)
It's like Latin in theology (Score:3)
from the what-can't-they-do dept (Score:2)
A Story from my COBOL-Y2K days (Score:3, Funny)
There was a COBOL programmer who was tired of dealing with the Y2K (faux issue) hype so they arranged to be put into hibernation in 1998. The programmer was supposed come out of hibernation in 2002 - getting rid of all the pointy haired managers. Buried in his secret cave his timer had the Y2K leap year bug and would reset itself back to 1998 every two years. The legend of this programmer was written into Comp Sci classes all time.
However, at some point, the secret cave was discovered and the so-called super brains figured out that the system timer had a ---- malfunction. So the super brains figured out how to stop the reset and to the hibernation system thought it was now 2002, not 2000 and it slowly woke up the COBOL programmer.
He opened his eyes and say grey skinned pointy haired skinny things giving each other high what evers and patting each other on the back of their silvery coats. As the programmer came out of hibernation they asked - WTF? and the "things" had to slowly explain to the programmer the God Awful Truth --- The programmer had a unique job position, the year was 9997 and they were the only person on the planet who knew COBOL with the year 1,000 "Right Around the Corner".
It's never too early to start planning for the crap to hit the fan.
Re: (Score:3)
...with the year 1,000 "Right Around the Corner".
I must've put a decimal point in the wrong place or something. Shit. I always do that. I always mess up some mundane detail.
Mostly Bullcrap (Score:2)
The article is mostly bullcrap. COBOL is a compiler that translates source code written in COBOL into machine code that can be executed by a computer. No one interacts with COBOL -- they interact with the code executing on a computer. COBOL does not have to be "supported" by any given computer system or CPU, you merely have to have a compiler that can convert the COBOL source code into the machine code that executes on that computer/CPU.
So nothing you do ever interacts with COBOL (unless you are using a
Why not a meta-COBOL? (Score:2)
COBOL is tedious but it's not really complex in terms of language features. I don't believe it would be unreasonably hard to create a somewhat higher level language with a much cleaner and simpler design that could have an automated and exact translation back and forth between it and genuine COBOL code. Data representation in COBOL really is clever and could be a very interesting feature to implement in a new language and that's the only part that existing systems truly need to work with.
Not saying it wou
IBM's hand reaches far (Score:2)
Once I worked for an outfit pf respectable size that considered migrating to GNU/Linux using the Micro Focus library. Huge savings could have been made. Yada yada...
The rumor was that IBM convinced both the shop and Micro Focus to consider "the implications". The project never even passed the brainstorming phase.
Personally I don't care much for COBOL but I highly respect it for its business. The fact that it doesn't show in statistics is perhaps due to the fact that IBM and customers really don't care
Re:Won't outlive me (Score:5, Funny)
I'm a cyborg.
... programmed in COBOL.
Re: (Score:2)
I hope not, I'd like to be able to do more than add up the AR.
Re:Won't outlive me (Score:4, Funny)
I'm a cyborg.
... programmed by a COBOL programmer retrained to use C#.
FTFY
Re: (Score:2)
I can't move around the room or see/hear very well, but damn can I add things up.
Apt description of COBOL.
Re: (Score:2)
CICS is just middleware, it isn't that different than working with MQTT or AMQP based application servers. Why change?
Re: (Score:2)
No, it's not just middleware. One of the things it does is also terminal screen handling. I understand it also controls some of the IO.
Re: (Score:2)
It is just middleware. A language-independent application server. It is just fancy glue with some bells and whistles.
Re: (Score:2)
Re: (Score:3)
Yes the ATM does not run COBOL. But the mainframe it talks to to check if you should be given money DOES use COBOL.
Citation needed.
Clearly you have not worked much in the financial IT industry, I hear it's hard to break into (apparently) I started there, so...
I have worked in or around a LOT of financial institutions and they ALL used COBOL.
I have written my fair share of nic
Re: (Score:2)
1) Find a lot of relatively lousy COBOL developers who don't cost much (surprisingly, these exist. They might have failed out of their CS classes, but they are who COBOL was built for). They keep the system running at a low cost, but don't add much.
2) Find a lot of good, but very expensive COBOL developers. They can add to your system but are expensive.
3) Write a Javascript interface layer, so you can interact with your old systems and add new features to the
Re: (Score:2)
Wrong, new apps and code changes happen all the time in the big COBOL shops such as banks and insurance processing. I've some friends into it. You haven't heard of anyone because you're not in those industries, by the sound of it.
"ancient systems", no Z-series mainframes and their operating systems are more advanced than what you likely work with. Superior virtualization, clustering, security, disaster recovery, reliability than any big iron unix or linux box or cobbled together x86 boxes.
Who wants to
Re: (Score:2)
not what I've seen in the big COBOL using shops (big banks, big insurance, government)
They have their own developers, and yes there are very modern tools for developing COBOL, Microfocus will be glad to take your money.
In the real world, COBOL code is modified and maintained constantly. The places that do it have budgets in the billions of dollars.
Don't know what kind of shop you are imagining.