Many Businesses Still Love COBOL (techradar.com) 195
TechRadar shares some surprising results from a new survey of enterprises using COBOL and mainframe technologies:
According to a survey by Micro Focus, which follows data gathered in previous 2017 survey, 70 percent favor modernization as an approach for implementing strategic change. This is opposed to replacing or retiring their key COBOL applications as they continue to provide a low-risk and effective means of transforming IT to support digital business initiatives...
This is further supported by the results of the survey with an increase in the size of the average application code base which grew from 8.4m in 2017 to 9.9m this year, showing continued investment, re-use and expansion in core business systems.
"92 percent of respondents felt as though their organization's COBOL applications are strategic in comparison to 84 percent of respondents in 2017," according to the official survey results. The survey spanned 40 different countries, and involved COBOL-connected architects, developers, development managers and IT executives.
"COBOL's credentials as a strong digital technology appear to be set for another decade," according to Micro Focus' senior vice president of application modernization and connectivity. "With 60 years of experience supporting mission-critical applications and business systems, COBOL continues to evolve as a flexible and resilient computer language that will remain relevant and important for businesses around the world."
This is further supported by the results of the survey with an increase in the size of the average application code base which grew from 8.4m in 2017 to 9.9m this year, showing continued investment, re-use and expansion in core business systems.
"92 percent of respondents felt as though their organization's COBOL applications are strategic in comparison to 84 percent of respondents in 2017," according to the official survey results. The survey spanned 40 different countries, and involved COBOL-connected architects, developers, development managers and IT executives.
"COBOL's credentials as a strong digital technology appear to be set for another decade," according to Micro Focus' senior vice president of application modernization and connectivity. "With 60 years of experience supporting mission-critical applications and business systems, COBOL continues to evolve as a flexible and resilient computer language that will remain relevant and important for businesses around the world."
Compare code back then and today (Score:5, Insightful)
Back then, code was written by people who not only had the training but also the background to know what they're doing, and they got plenty of time to get it done right. The code got audited and reviewed before being tossed onto the production system was out of the question, considering how much the system costed and how much even running a faulty code once costed.
Now compare that to today, where code monkey with little to no experience and training slap together snippets they copy from Stack Exchange while having equally little to no idea what exactly that code does, or what side-effects may lurk in those lines, let alone how it performs in edge cases, coupled with an "it compiles, ship it" mentality from management.
And you wonder why companies cling to ancient code that they KNOW works?
Re: (Score:3)
Re:Compare code back then and today (Score:4, Funny)
They haven't added enough abstraction layers to attract young people.
Re: (Score:2)
Re: (Score:2)
No, COBOL just happens to be the language that stuff was written in. It has little to do with the language, way more with the people and how code was created back then.
Re: (Score:2)
because it's a filter that keeps out millennial code monkeys?
Yes. Unless you're referring to the Y2k problem and are talking about (millennial code) monkeys. In that case, it keeps them in.
Race to the bottom. (Score:2)
I guess it's the same as in every industry.
Profit maximization means effort minimization too.
Somtimes, that can be a good thing. [youtu.be]
But usually, all you get is wasting more time with replacing broken things to save a little in the short run, while paying more in the long run (aka generating more profit).
I think the key problem is, that people simply can't afford making wise long-term investments. It might be wise for your family, to build a brick house without metal, that lasts a literal thousand years. But if
Re: (Score:2)
Re: (Score:2)
LOL. Why do people idealize COBOL as "so good"?
Is it because people back in COBOL days used to wear ties at the office?
COBOL just looks like "good" because no one ever dares touch it because "it works". Truth is, a lot of that COBOL code would shit itself if you try to make even insignificant changes to it.
We've always had incompetent developers. COBOL doesn't save you from those.
I programmed COBOL where I had to wear a tie (Score:2)
you ignorant clod!
Re: (Score:2)
Again: It's not the language that's good. Cobol is actually a quite horrible programming language.
It was the people using it.
Re: (Score:3)
But other than that.. yeah,.. the economics and expectations of programming have changed radically. I really can not blame the code monkies.. often they have the brainings and the training, but not the time or resources to do things in a more structured way.
Comment removed (Score:5, Interesting)
Re: (Score:2)
CODASYL did that? Educate [wikipedia.org] yourself.
Re: (Score:2)
BULLSHIT.
The lead developer for a small bank here used to be a construction worker (he still has rough hands from handling bricks back in the day). He picked up a COBOL book in his spare time and learned on his own. This was 40 years ago. A construction worker with no formal training other than a COBOL book. There was no code review, audit, or "testing environment".
Stop romanticizing the good ol times. Shops that still run COBOL are usually run by greybeards with Big Blue hearts. Why would you want to chang
Re: (Score:2)
Pulled that out of your butt, so bullshit right back at'cha. Banks don't just use IBM or major iron, you know. Ever hear of Tandem? Lots of COBOL code running on Tandem.
Re: (Score:2)
I said SHOPS, not specifically BANKS.
I know for a fact that the bank I mentioned earlier does use AS/400. And the province's IT department also uses it. They did support for the province's lottery and they had AS/400 as well. I saw their old "decomissioned" stuff too: I never saw a mountain of over 100 Token Ring MAUs before that.
Re: (Score:2)
...Now compare that to today, where code monkey with little to no experience and training slap together snippets they copy from Stack Exchange while having equally little to no idea what exactly that code does...
I guess you have no idea what today's DevOps is???
Re: (Score:2)
What "new capabilities" are needed to run payroll, or MRP, or print utility bills?
I don't think people get it. COBOL is the bulldozer, backhoe, etc. of data. With COBOL, you are moving data, tons of data. You aren't making sculptures with it or landscaping a garden.
Re:Survivor Bias (Score:5, Interesting)
That's literally the point he made - that the code still around today doing this tasks doesn't NEED those new capabilities.
That said, old code that works doesn't necessarily mean GOOD code.
We're currently in the process of replacing our COBOL based property tax system that was originally written nearly 40 years ago. It is fairly well tested and error free at this point, but politicians are free to change things at will, so occasionally the business processes behind it are adjusted. When you go to implement those changes, you quickly learn that though the old system works damned near perfectly, the code is TERRIBLE. Just about everything in the system is hard-coded rather than controlled by any external configuration settings.
In the end or desire to move away from COBOL is mostly just because that codebase has become a nightmare to work on. Changes that should take 1 week or two end up taking months instead.
Re: (Score:2)
That said, old code that works doesn't necessarily mean GOOD code.
I think this is the crux of the whole argument. The "if it works, don't mess with it." theory. The world's COBOL financial cores could be a bunch of houses or cards for all I know. And the only reason they haven't toppled is because the people that run them understand that you don't go in the room where the house of cards is. And you certainly don't try to polish the floors in there.
Re: (Score:2)
Now do Perl.
Re: (Score:3)
"PHP is a minor evil perpetrated and created by incompetent amateurs, whereas Perl is a great and insidious evil, perpetrated by skilled but perverted professionals".
- Jon Ribbens
Re: (Score:2)
Integrating for newer systems like home banking and apps?
Supporting internet payments for your utility bills?
Keeping up with government requests for new tax codes and ways to calculate them?
Do you even work in this field?
Re: (Score:2)
Re: (Score:2)
Re: (Score:2)
I spent my career using it to write financial transaction systems.
Cool, can you explain why using a phone app to send a payment from person A with an account at big bank X to person B at big bank Z is instant in Europe but still takes 3-5 business days to clear in the US, and whether clinging to code from the 1960s "because it still works" plays a role in that?
Extra credit question: why in the year 2020 does rolling a 401k over still involve mailing a paper check from one brokerage firm to another?
Re: (Score:3)
Re: (Score:3)
That being said, the modern ecosystem is REALLY high churn, with versions of a language and its libraries falling out of compatibility rather quickly. That high rate of chang
Re: (Score:2)
Yeah, I also can recall obsolete statements from other languages. What's your point?
Re: (Score:2)
Not a COBOL problem.
Re: (Score:2)
I'm a low-ID now?
Anyway, yes, that's true as well. It's like saying that the music was way better in the earlier days, only because the really bad novelty hits ain't being played anymore and only the true classics get any airtime anymore, while contemporary music... you get the idea. Sure, there's a lot of truth in that, too.
But let's be honest here, back in the days of "real programmers", those that wrote code knew what they were doing. They knew the hardware they wrote for, they knew the limitations and t
Re: (Score:2)
"why should the code that controls it? "
One reason, the hardware layer changes too much and leaves that code base behind.
Not a problem for COBOL. Problem for the occasional flavor of the semester upstart next insanely great thing.
Re: (Score:2)
Could you please point to an instance of the hardware leaving COBOL behind?
Re: (Score:2)
My job is in IT security. In other words, I get to see a lot, a DAMN LOT of code and the results of it. Cargo cult programming isn't a joke. It's a reality.
That will remain ... until everybody's dead. (Score:2)
Gee whizz, Sir, I don't think it will last when everybody who learned it died.
-- Lil Timmy, who never learned Cobol, and never will.
Re: (Score:2)
Comment removed (Score:5, Insightful)
Comment removed (Score:4, Informative)
Re: (Score:3)
Re: (Score:2)
It works, but nobody knows why.
Yep. COBOL is one of those languages where it's not just possible, but relatively common to find out that whoever originally wrote the code you're working on is now dead. We have a ~40 year old COBOL program on site. No clue who the original programmer was, but we typically have 1 "main" COBOL programmer who babysits that stuff and we're on our 5th programmer that's maintained that code as the previous ones retire. Each one has put on their own brand of quick band-aid fixes to make stuff work - and work
Re: (Score:2)
It's fucking **English**. That statement says scores more about your programmers than the language.
Surprising? (Score:2)
So COBOL developers think that it's a good idea not to port their projects away from COBOL, and this is a "surprising result"?
Re: (Score:2)
Windows XP and Internet Explorer are th next cobol (Score:3)
Re: (Score:2)
I have one work tool that doesn't work correctly except in IE.
I have another work tool that doesn't work correctly except in Chrome, no, not in Firefox either.
And there is another whole suite of tools that work in Chrome but not Edge or IE.
Some of these are modern tools. Some not. It's not so simple, browser issues are still with us.
LOVE is a big word (Score:2)
Many people also LOVE their wife, because it's too expensive to get a new one.
Re: (Score:3)
Have you looked at the wife market lately? Not much out there that is long-term reliable. Most of the used ones haven't been maintained or upgraded, and the new ones are a real roll of the dice. It's like whoever is designing them doesn't know how marriage works at all.
And no, the Uber/Lyft models are too expensive for regular use, and have real demand issues. Never available when you want them, or price gouging when they think you're dependent on the service.
Think before you leap.It's probably you...
Ok, so what should they port it to? (Score:5, Insightful)
So you have a COBOL system that's been working fine for 40 years, and you are told you need to rewrite it in a current language. So what current language will be around for the next 40 years? Not sure which one? Maybe lets wait another 5 years and see if that new long term language comes along. Otherwise you know that if you rewrite it today, after those 5 years, you will be told it needs rewriting again in the newest shiny language. Sometimes doing nothing is the optimum strategy.
Re:Ok, so what should they port it to? (Score:4, Insightful)
Something I always find a bit unnerving about the post Y2K programming culture is the short time horizon. Modern languages constantly breaking compatibility in order to 'stay relevant', developers thinking in terms of months or maybe a few years rather than decades.
On my current project, we have had to update our version of Python a total of 5 times. We have probably lost about 6 months of dev time to that over the years, and keep having to rewrite things to work around the language changes. If our stuff was doing anything mission critical, I would have pushed for just staying on 2.3....
Re:Ok, so what should they port it to? (Score:4, Insightful)
Re: (Score:3, Informative)
Today it would be ported to Python without question. Then of course Python 2 code is not compatible with Python 3. A quick search shows 8 years between versions 2 and 3. I bet some of these machines running COBOL have uptimes longer than that, especially the AS/400.
Re: (Score:3)
So you have a COBOL system that's been working fine for 40 years, and you are told you need to rewrite it in a current language. So what current language will be around for the next 40 years? Not sure which one?
ALGOL, of course.
Re: (Score:2)
I do not entirely disagr
Re: (Score:2)
"I do not entirely disagree. However, one thing that a total rewrite would force is to actually understand the ins and outs of the existing COBOL code"
If that happens, then I agree, though what normally happens is what gets rewritten is what they think the code is doing, and often those little subtitles are lost until they encounter the reason they were there the first time.
Over time the process of discovering the exceptions continue until the new code is as much an incomprehensible mess as the COBOL origin
Bias (Score:2, Funny)
So the company that makes the language says that people love the language. Sounds unbiased and reliable to me.
Re: (Score:2)
Micro Focus "makes" COBOL? Are you sure? [wikipedia.org]
Sounds like someone with no knowledge is taking pot shots to feed their ego.
So what? (Score:3)
In this age of virtual machines and simulations I do not understand why this is such a big deal? Also, with CEOs funneling more and more cash away from business infrastructure, they can just say "well, the Cobol experts said this is the right thing to do". These decisions are made by the company executives and, ultimately, they are the responsible parties here, and they are the ones that have the most potential exposure if something fails.
And why not? (Score:2)
COBOL: A very inefficient language (Score:5, Interesting)
Line for line COBOL is a very inefficient language to write in
In the early 80's I worked for an electronics manufacturing company whos data processing department was using mainframes running COBOL. For years our production staff had been asking for a fairly simple application, one that would give us a fully nested bill of materials needed to build any particular product so that we could get an early start on the procurement process. They said it was not possible.
One day I sat down at my IBM PC XT which I had adapted a terminal interface card to connect to the mainframe so that I could read a virtual representation of the terminal console for the mainframe. In less than 6 hours I coded up a Pascal application that could extract all the individual bill of materials and calculate how many of each assembly would be required, and then did a fully exploded list of every nut, bolt, diode, filter, and resistor that would be required to ship a particular order. It took about an hour to run and handed me what would normally take two weeks of manual processing. A production analyst could simply fill in the model number and a quantity, and my little program could then tell you in less than an hour what long-lead items were likely to hold up the production line. With management's signature, we could then get those long lead items on order that very same day and potentially save as much as a month on the delivery time of an order.
After seeing my printed report my manager grabbed my report from my hands and marched straight down to the data processing managers' corner office to confront them about why they couldn't do the same thing. They finally relented and assigned their most experienced COBOL programmer to code up the exact same report. I had to run my program again because the DP management kept my only copy.
My little Pascal program took me about 6 hours to write, and their same COBOL project took over 6 man-months to write and test. They even had direct access to the data on the mainframe while I had to dance through fiery hoops to extract that same information and build my own temporary database.
The DP manager offered me a job writing COBOL, and needless to say, I refused the offer. About six months later I left the company to become a professional programmer and never looked back. I stopped counting at 24 different computer languages more than 30 years ago when I realized it is not in your best interest for management to find out you know how to write in particular languages, like COBOL or PL1, because one day they will very likely ask you to "fix" something that would be better rewritten in another language better suited for the assignment. Some languages should just be retired, and its safe to say COBOL is one of them.
Re: COBOL: A very inefficient language (Score:2)
DP Manager
Hell there is a term I have not heard in ages!
Re:COBOL: A very inefficient language (Score:4, Informative)
This can be misleading because it is anecdotal and based on what COBOL was like on mainframes. These days, with a modern compiler, using free form COBOL (no line numbers or strict formatting), COBOL is comparable to other languages. So it does not apply or accurately describe these more modern implementations such as GNU COBOL which support free form COBOL and are easier to use.
Re: (Score:3)
Bullshit. I know both COBOL and Pascal. Bullshit.
Yeah, that's the metric, how few lines you use. You know, those things that no machine actually
Re:COBOL: A very inefficient language (Score:5, Insightful)
That's probably because your little program stumbled over all the corner cases that the COBOL programmers spent years working into their code.
The kind of programmer that thinks a 6-hour job is production ready is precisely the sort of cowboy that tests on a limited data set and proclaims himself God. The one you keep away from working production code without mentoring by an experienced maintenance programmer.
Nothing will replace COBOL... (Score:2)
...until a language is developed that can match COBOL's ability to rapidly process huge amounts of data, and do so at least as efficiently with regard to memory and processor usage.
Remember COBOL's heritage. Then begin to understand why it has seen such longevity.
That's as far as I go.
If it ain't broke, don't fix it. (Score:2)
If it ain't broke, don't fix it.
-some old proverb; or blasphemy to most young tech people
Tools not people (Score:2)
The machine is not running COBOL, it is running whatever was compiled from it. COBOL is there for the convenience of the people, If you don't like COBOL, concentrate on getting the machine to translate the COBOL to something the people understand and have the people modify that. Then, for all I care, the machine can translate the differences back into COBOL as a lingua franca.
ie. concentrate on making tools that can represent the old code base in the way you want to see it (which will likely change over ti
Best thing for COBOL is GNUCOBOL (Score:3)
GNU COBOL is now mature, so COBOL could see even more use, since previously a major barrier towards use of the language was lack of open source, accessible compilers for it. Now anyone can write a program in COBOL so it can see even more use.
The Memories, Make Them Stop! (Score:2)
Again? (Score:3)
It seems like this article gets posted about 2-3 times per year for the last 5 years or so.
It is almost as if someone around here is astounded that all the COBOL code hasn't been already re-written in Javascript.
Do grow up, people. The corporate management of trillions of dollars of assets doesn't really give a damn about your sense of computer language aesthetics. And never will.
77 year old cobol programmer (Score:3)
Re: (Score:3)
This sort of thing is unfortunately quite com
Re: (Score:3)
I always laugh when I see people talk about "modernizing" code that's been working for decades.
Re: (Score:2, Insightful)
Re: (Score:2)
The question is not 'if' you can modernize COBOL code, it's 'why' are you modernizing COBOL code.
Again, core transaction systems don't need to be modernized. If you want to be able to ACH funds all during the day, that's scheduling. If you want to permit peer transactions, you write new code that feeds that old COBOL recon system accurately.
Now if you're a fresh face in the payments business, you've probably not written your core in COBOL, and good for you. You mostly really don't care how the interchanges
Re: (Score:2)
It depends on what the code does, IMO. If you want parallel action handlers, throw the fucking CoBOL code out. It was designed for linear processing. Yes, I know of parallel extensions, but after programming VB for the past 6 months and dealing with the kludginess of it, some languages just need to die.
Re: (Score:2)
Re: (Score:2)
... as more and more of the developers who know it retire and die off, COBOL code is essentially going to become functionally black box and downright impossible to maintain. Worse yet, the longer you delay modernizing it into something that can be maintained by people who aren't retired or close to retiring, the more expensive and difficult it's going to be as these obsolete skills simply disappear.
Yes, good point. That's why the English language and our number system were abandoned and replaced so many centuries ago.
Re: It Works (Score:3)
Nonsense, your imagined maintainable languages continually break backwards compatibility, some even with minor point releases (e.g. Java under Oracle's mismanagement). They are immature languages. Cobol doesn't have that problem. Enough people learn it to keep the billions of lines running, the high enough pay ensures it. Your beloved fad languages will come and go, but Cobol is how the world moves money
Re: (Score:2)
I wrote an Advice warehouse for the bank I was at. To ensure it was accurate, I wrote an accompanying "scanner" for all the key levels. One day, on a lark I did a scan of the full day. I sat at my desk for about a half an hour in a shook daze that I was responsible for $1.7B a day transactions.
Re: (Score:2)
However, as I said, in a decade or
Re: (Score:2)
However, as I said, in a decade or two all of it will have to be thrown out as all the developers are either dead or retired. It's that obsolete of a language so it's pointless to talk about how much more "mature" it is than languages you can actually find developers for under the age of 60.
Exactly what all the experts and journalists were saying in 1990. Since when the number of lines of business-critical COBOL has almost tripled.
Re: Yeah, well, price might be a reason. (Score:5, Insightful)
Most languages change too quickly to allow legacy code to work, CoBOL and just a few others don't have that problem. As for Haskell, almost nothing in the business world written in that in the first place. Essentially zero lines compared to billions of lines of CoBOL that move money. It will continue to endure for decades more
Re: (Score:3, Funny)
When everyone is dead, it's a bit late to start worrying about upgrading software tools.
Re: (Score:3)
If you're not training the replacements, your business model is based on a generation of success and then, well, fading away. What? COBOL is older than many of its currently-trained maintainers grandparents. As if any serious business changes their software platforms because another college class just graduated with hot new skillz...
Re:Yeah, well, price might be a reason. (Score:4, Insightful)
COBOL is and always was crucial in applications that do not require ongoing 'routine' maintenance. In finance, core transaction processing, the sort of overnight back end reconciliation that ensures your pay was actually credited to your account, isn't something that needs to be updated very often. Y2K and mergers that bring new account designator are rare challenges. Adding on modern payment features such as continuous presentment or peer payments can be done above this layer.
Where I work, COBOL is the foundation and has been for a long time. Looking at the real world performance and experience with modern platforms, even SQL/Oracle, and the 'big data' engines, they cannot approach the availability and reliability of the COBOL foundation. Decades of experience is an advantage, but mostly it is the core and architectural reliability that makes COBOL too valuable to leave right now.
In another decade we'll see something change, but that was what we thought 2 decades ago. Functional and performing application app platforms like COBOL do not go obsolete. Training is a necessary ongoing effort. C and derivatives are 'old' by the measure of upstarts like Rust. So what.
Re: (Score:3)
I was once asked to provide a brief assessment of a small credit union's facilities, and was horrified. Of course I had an obligation to keep the information confidential (transaction and database servers running obsolete windows server OS on COMPAQ server hardware - this was the mid 2000s) but I made it very clear to management that it was going to bite them in the arse if they didn't upgrade. It wasn't mainframe technology, but it reinforces the idea that the mindset exists - "if it ain't broke, don't tou
Re:Yeah, well, price might be a reason. (Score:5, Funny)
Cobol is a lot more work to maintain, and lacks many features that require you to think harder.
That's why you should use the object oriented extended version. I believe it's called ADD ONE TO COBOL GIVING COBOL.
Re: (Score:2)
No it isn't.
Which level are you talking about? Name a few.
Re: (Score:2)
If you look at modern COBOL, its not really more complex than C or other languages. Its free form, and no line numbers. It is pretty comparable to modern languages. There is an object oriented form.
Nowadays, maintainability most importantly is about doing good documentation of everything because the reality is there is no such thing as self documenting code. But, also using sensible variable names as well, since readability can be helped. And in line code comments as well.
One thing that held COBOL back was
Re: (Score:2)
Re: (Score:3)
"The pool of resources is shrinking faster than what any of these respondents understand.."
Ever hear of supply and demand? Is is possible to learn COBOL today you know.
Re: (Score:2)
Ever hear of supply and demand? Is is possible to learn COBOL today you know.
Yep. Really programming classes are mostly just there to teach you the CONCEPT of programming. Algorithm complexity, variables, loops, recursion, data structures, etc.
Syntax isn't really that important, it's just important to know when to use each time of basic concept. Any decently skilled CS graduate should be able to pick up COBOL on their own by self-study.
Re: (Score:2)
I can't tell if you're being serious or if you're joking.
I guess it would depend upon if you have ever seen a real COBOL application source?
Re: (Score:3)
"I guess it would depend upon if you have ever seen a real COBOL application source?"
I have, and I agree entirely with the poster, I guess it depends if you have ever seen a real competent programmer :-).
COBOL is no harder to learn than Assembler and any programmer should be able to pick either up in a couple of days and be competent in a couple of weeks.
Re: Your resource pool is dying off... (Score:3)
Ok I will let you hang with COBOL Syntax while I programmin LISP, an even older language
Re: (Score:3)
That just means the price of working with COBOL has gone up. A win for anyone knowledgeable with it.
Re: (Score:2)
Oh? [besanttechnologies.com]
Well, kind of. [wisdomjobs.com]
But it may be worth the effort [javaworld.com], even today.
Re: (Score:2)
Re: (Score:2)