The "old" language which actually might deserve the "good for critical stuff" reputation is ADA.
Mainframes, especially modern ones, are pretty cool imo. The obvious downside is the high cost, which makes them very unappealing for startups.
There was a thread last week asking why cloud hasn't killed the mainframe, which I thought had some pretty good replies: https://news.ycombinator.com/item?id=37333837
So if you are (say) IT director in the bank, and you value your career, you should reject all attempt to modernize, as all failures would be blamed on you. Just say something about COBOL being most reliable and ask for more budget for contractors.
That being said my understanding has always been that learning COBOL was never the hard part, the hard part was always that it's not just COBOL it's learning the mainframe it runs on, and learning the JCL that is associated, and a dozen other pieces of finicky technology.
Someone feel free to correct me if I'm wrong.
I heard this on HN, so this hearsay itself, but I believe it’s not that these companies can’t find people that can learn COBOL, it’s that there are people with 30+ years of COBOL experience on their codebase.
The COBOL job security comes from being the only person who knows the codebase, not that somehow people can’t learn COBOL.
I think this meme has a lot of caveats. There are some banks running very very specific old versions of mainframes and databases and thus need expertise, so they are paying high emergency consultant fees for the few with that expertise. The average developer is better off learning aws and python.
Apparently 80% of all bank transactions and 95% of all ATM transactions in America are still running COBOL, as is the Social Security Administration and DoD's finance systems (https://www.youtube.com/watch?v=TBs7HXI76yU)
x86 / VSphere ESXi / Windows 2016-19
If one wants to learn I'd usually suggest the yearly Master the Mainframe by IBM, but I'm not sure they are running one this year. If you want to work with cobol you'll probably be dropped on a Z/OS or AS400 machine or some OS owned by HP and that's what you'll spend 99% of your time learning.
yes, rewrite them on a modern language!
COBOL (or PL/1) to any other language is a deterministic problem, imagine transpiling millions of line of code and every time you run the compiler you get slightly different output...
Anyway transpiling from one language to another ie COBOL to java is almost the easy bit, the hard bit is making the behavior and execution correct, especially when there are multiple OS and product services that don't exist outside the mainframe.
disclosure I am CTO of heirloom computing, we migrate mainframe applications to the cloud.
But seriously, I bought some old COBOL books recently, and was meaning to get more into it. Not because of some job situation, but it seemed different enough, in a "cozy" manner. I could get away from the Algol-ish day job languages with something blatantly more concise (extremely functional, esolangs or APL), but that's more the "puzzle" aspect where COBOL might be more the "knitting" approach.
If any sort of collapse hits, the popular programming jobs would be either old PCs (of which there are tons around, and which have tons of replacement parts); or repurposing old cellphones into something else (again, sheer number of things); or something super simple like 6502.
Cobol is powerful when it comes to batch jobs, and you can bundle transactions ( ie. TX1900 means execute this transactions, which consists of 10 other transactions that will create a new client, and open a savings account, etc). Your front end can be whatever you want and all your business logic is embedded into Cobol transactions.
The con however, is that these consultancy companies do not share these transactions with their clients or external developers. You'll either have to figure it out on your own ( good luck ), or use the consultancy company. These products are really cash cows for their vendors.
So job 1 reads your data and does light processing (good) job 2 turns it into a CSV of weird codes and turns BCD straight into base-10 digits integers (huh), job 3 then reconverts this back and joins this with more DB data and finally saves that data (split into every 12 customers) into a file with a sequential file name based on week number and current time in US Central time zone (but the system is in Germany)
The language is not complex at all, but as you correctly point out it is verbose. And handling variables is quite tedious.
It can work more or less fine if you couple it with a RDBMS, but if you are instead using IBM files and job scheduling/control you add another layer of stuff to learn. Again, more tedious than esoteric.
I would not enjoy going back to it, probably (in any case I am not really writing code anymore in my current position) but if it was the only alternative to starving I would have no big qualms picking it up again.
Its more like the game minefield - you tread carefull
people make it a rite of passage to give some horrible cobol code to interns for a few hours just to scar their soul a little
I wrote the program in the turbo pascal editor Setline numbering and then sorted it by colums. I tested it with microfocus, and it showed one bug and two typos. On to the card punch and the IBM compiler, and the IBM line printer. Finished In time to clean my card punch completely. It was the end for the card punches, and COBOL. Over the next few semesters a lot of people asked how I did the last program I one day, and I just showed them the column sort of the listing. You either wondered what use it was or you thought it was evil. The code was elegant...
I advised someone designing a logo for a new remix a couple of years ago. (I've left the community due to toxic hostile newbies, but I still use the software.)
They had no idea that the Ubuntu logo was meant to represent something, let alone that it had a name ("the circle of friends").
https://canonical.com/blog/a-new-look-for-the-circle-of-frie...
[1] https://www.cnbc.com/2020/04/06/new-jersey-seeks-cobol-progr...
But, having said that, I can pick up a COBOL program and by reading it, I will know what it does and almost certainly how it does that.
That can not be said for several other programming languages I have used. One of COBOL's criteria during its development was that it should be READABLE. It is.
At the time the other stuff I was learning involved Pascal on VMS and DBase II on an 8086, so it was all great fun.
>Create Account
>IMPORTANT: The Micro Focus Partner Portal is built using Salesforce Lightning which only works in Chrome or Firefox.