COBOL is not an interesting programming language these days, and you should not learn it unless you need it for your current job.
> [COBOL was] designed, initially, for non-programmers to be able to describe in words what it is they would like to accomplish in a way they could be understood by the computer.
Let me tell you a secret. It doesn't work for non-programmers. The complexity of "Z = X + Y" is no more or less than "ADD X TO Y GIVING Z", and bugs will happen at the same rate with either syntax. The added verbosity will only annoy you.
Another myth surrounding COBOL is that as its programmers age, there is a lack of them and therefore COBOL jobs are high-paying and you should learn it to make good money. The reality: I've never met a really wealthy COBOL programmer -- or rather, one who was wealthy because he/she knew COBOL. That's not where the money is. COBOL jobs are not particularly well-paying, and there are young people learning it, and no, they don't get awesome paychecks.
Not to mention that verbosity often distracts from meaning, leading to more place for bugs to hide.
But say this to non-programmers, and they vehemently deny it's true. And always cite a friend of their neighbor who made it good from COBOL. It's like they need to believe there's a shortcut out there to sure wealth as long as you're smart and work hard.
It wasn't designed to work, it was designed to please senior management.
Grace Hopper: “I used to be a mathematics professor. At that time I found there were a certain number of students who could not learn mathematics. I then was charged with the job of making it easy for businessmen to use our computers. I found it was not a question of whether they could learn mathematics or not, but whether they would. […] They said, ‘Throw those symbols out — I do not know what they mean, I have not time to learn symbols.’ I suggest a reply to those who would like data processing people to use mathematical symbols that they make the first attempt to teach those symbols to vice-presidents or a colonel or admiral. I assure you that I tried it.”
Wouldn't it be easier to just use C/C++, and define macros like "PLUS" that explands to "+", "MINUS" that expands to "-", "BECOMES" that expands to "=", etc.?
Oops, COBOL predates C. :(
Yup. All the articles on the shortage of COBOL programmers is actually companies whining that they can't find cheap labor. If they paid well, they'd have their pick of young and old.
I looked at jobs in my area and some don't require any experience, they train you.
There's also the kid who just bought a Mainframe: https://www.fastcompany.com/3063265/this-teenage-ibm-employe...
You just need a Linux PC with the IBM Z Development & Test Environment.
(Of course, ZD&T, even the “Personal Edition”, doesn’t exactly have hobbyist-friendly pricing.[0])
You can do cheaper (i.e., free) with Hercules, but only with older OS’s.
[0] https://www.ibm.com/products/z-development-test-environment/...
"these days"?? COBOL has been available on Windows since Windows 3.1, and was even a commercial success on DOS in pre-Windows days. Yes, it was principally used in finance on mainframes, but the mini- and micro-computer implementations were fully ANSI standard, and included extensions for CICS and other mainframe stuff.
(I worked on DOS COBOL runtime support, then OS/2, then Windows ...)
But COBOL jobs don't pay anywhere near that kind of coin, and they likely never will in my lifetime. The systems in place are solid enough that they can survive the resolving door of shitty, underpaid contractors who are hired to work on them. Nothing every improves, but it also never gets worse.
Out of curiosity I just made a short search for COBOL jobs in my area. The few I found actually pay less than my current Java job.
The word “COBOL” isn’t necessary in that sentence.
And, for that matter, “programmers” could be replaced with any skilled work field for which such complaints exist.
An actual shortage of labor (where the demand curve is above the supply curve at all price points) is theoretically possible, but in the real world nearly 100% of complaints about labor shortages are really complaints that the intersection of the supply an demand curves are at a point that results in purchasers of labor making less profit from whatever they are buying that labor for than they’d like, and laborers making more than those employers would like.
The case of COBOL is of interest as there was a wave of articles this year suggesting there was some sort of anomaly on the market: tons of COBOL programs and not a soul alive to maintain them.
There’s probably something more like a legitimate short-term shortage in that case, because you have lots of immediate demand for changes (because of urgent business process changes) to stale legacy systems, so you really don’t have the luxury of waiting on long-term corrective mechanisms like retraining, price signalling through the pipeline for workforce entrants, etc., before the value opportunity is missed. COVID-19 and the resulting (many probably short-term) legal and business changes created a number of market anomalies of that kind.
The pay is at the intersection of "knows COBOL" and "knows the problem domain inside out". The problem domains are not something most people would ever have been exposed to without getting in in the first place as COBOL programmers.
Modern COBOL does not enforce CAPS LOCK anymore though - and you can even skip the 7-columns indentation if you wish!
Ok now I’m curious...
And, it was developed long before a lot of modern compiler theory was even thought of, so it's going to be a little unfamiliar to those used to "modern" languages.