Do You Know Cobol? If So, There Might Be a Job for You. (wsj.com)
Despite its advanced age, Cobol is still the most prevalent programming language in the financial-services industry world-wide. Software programmed in Cobol powers millions of banking transactions every day and underpins critical computer mainframes. WSJ: And Cobol isn't going away anytime soon. Banks and other companies have come to the uncomfortable realization that ripping out old mainframes is pricey and complicated. Transitioning to new systems is likely to take years, and besides, a lot of the older tech works just fine. The problem is that Cobol isn't popular with new programmers. So, with a generation of Cobol specialists retiring, there is a continuing hunt to find a new generation of programmers to service this technology. In Texas, Mr. Hinshaw's (an anecdote in the story) company, the Cobol Cowboys, a group of mostly older programmers, is training U.S. military veterans in the programming language. Accenture is coaching hundreds of Cobol programmers every year in India and the Philippines to work at banks. In Malaysia, one consultancy that provides engineers versed in Cobol for its clients, iTAc MSC Outsourcing, has adopted the slogan "Keeping the Dinosaurs Alive." A host of companies offer online courses in Cobol in places like South Africa, India and Bangladesh. Developing economies are key technology-outsourcing centers for banks. Further reading: Major Banks and Parts of Federal Gov't Still Rely On COBOL, Now Scrambling To Find IT 'Cowboys' To Keep Things Afloat.
Someday, they will die out but for now they have a use!
The same can be said for *any* technical skill.
Sure I'll go ahead and learn what I need to to keep your stack afloat.
What's that? You don't want to pay me a reasonable wage? Well then! I guess we have a problem indeed. Scramble on, fine HR folks at "Major Banks and Parts of Federal Gov't"!
I tend to rant.
So as to never be roped into a job like that.
In my defense, back then, COBOL did not even have an ELSE statement.
It was just pretty dumb.
And all the stuff written in it was stultifyingly boring.
That was the best 1% mark I ever sacrificed.
Where are we going and why are we in a handbasket?
This same thing has been said every five years since the 90s. You think they would have done something by now after they realized what a mess things were prior to Y2K.
So, if you are in the U.S. and you know Cobol already, you might get a few years of employment out of it. However, such jobs will go overseas, too.
in about 90 days. Buddy of mine did it back in the day. But without a college degree you won't make it through modern HR filters. Why hire a high school grad for $80k + 40/hr/week when you can import a dev for $60k + 72/hr/week?
Hi! I make Firefox Plug-ins. Check 'em out @ https://addons.mozilla.org/en-US/firefox/addon/youtube-mp3-podcaster/
"Cobol is still the most prevalent programming language in the financial-services industry world-wide". Not a chance. Don't pretend every bank has decades old mainframes and that there's no way or incentive to replace the hardware or software.
It's one of these stupid anecdotes that was true back in the 90's.
Simply knowing COBOL isn't the deciding factor. Could I stomach being employed in the banking industry and facilitating the awful shit they pull? No. So whether I know COBOL or not is irrelevant.
do you know cobol? IF so, there MIGHT be a job for you.
Yeah, sure let me get right on that. If, might; why not waste my time on vague promises?
The way COBOL programs are structured I think you had to have been programming in the 1970's to really understand the idioms and work flow. That means you may have been on the job for 40+ years already, putting you pretty close to retirement age if you were one of the younger folks to pick up COBOL in the late 1970's.
We're going to hit a brick wall in about 5 years on this, and some businesses will have to learn an expensive lesson about the sunk cost fallacy.
“Common sense is not so common.” — Voltaire
Stupid question here, but if big businesses are having all of their older, experienced programmers retiring and none of their younger programmers have the skills, why aren't they paying to train people that already work for them? Seems like that would be a lot easier and cheaper, plus they have the added bonus of already knowing what your business does/needs and how it works.
The only thing necessary for evil to triumph is for it to be pitted against a slightly greater evil
oh, not again ... they do not want COBOL programmers, they want programmers who know CICS transactions and DB2, VSAM, etc, who have enough experience to come in and fix production business logic ... I see this article every year or two and it's ... let's all say it together ... NOT COBOL PROGRAMMERS ANYONE WANTS ... if you know COBOL but don't know CICS, you will not get a job... and, hey, there is a huge glut of out of work CICS experts to pick from.
You're using COBOL, right?
Great minds think alike; fools seldom differ.
I'll learn a language that has an IF MIGHT loop, looks awesome!
---
To make me go back to programming COBOL on mainframes. /h (maybe)
I did it for 3 years. I still have the 9mm scars as a consequence.
So rise up, all ye lost ones, as one, we'll claw the clouds.
He would have been first if he didn't have to type all that stuff:
IDENTIFICATION DIVISION.
PROGRAM-ID. FIRST.
PROCEDURE DIVISION.
DISPLAY 'First'.
STOP RUN.
You can be a snobby all you want about your C and SQL databases, but one thing two combinations will never do is what COBOL does every night, weekly, etc.
That is process millions...I mean MILLIONS of records in a single night, producing bills, checks, statements, etc.
COBOL is optimized for record processing, not pretty pictures, drop down menus, HTML, etc.
COBOL has once focus:
1. Get the data in
2. Transform it
3. Get the data back out.
COBOL can slice and dice data in ways C and SQL can't even dream of.
You don't write Websites in COBOL. You do the serious work that involves billions of dollars of transactions. Reliably, repeatedly.
When Fascism comes to America, it will call itself Anti-Fascism, and tell you to give up your guns.
Know any PDP/11? https://www.theregister.co.uk/...
Only the State obtains its revenue by coercion. - Murray Rothbard
If you already really know how to code it shouldn't be a problem to learn cobol in a short time. We had in our IT classes, and I thought it to be a breeze..
Anyone with some coding experience can learn it in a couple of weeks.
What's more difficult is that every single company has it's own editing/compiling tools, source management, home made subroutines, programming standards, etc...
Coding for batch processing is a lot different than for a web pages or user applications.
And forget about the documentation, it has probably been lost in all the movings and restructurations. Some systems are more than 30 years old.
Try it! Library of Babel
These firms are on the hook for correct transactions, screwups of which can cost millions.
So if it ain't broke, don't fix it. Go away, refactoring busywork generator portion of latest software engineering strategy fad.
(-1: Post disagrees with my already-settled worldview) is not a valid mod option.
Learning COBOL is not really a big deal. What you need to be successful in that environment is experience with a whole raft of older IBM technologies like MVS, ISAM, SPUFI, MQ, etc. etc., etc... Layer that on top of modern "Get off the mainframe" stuff that emulates these things in a *NIX environment and you begin to realize you need to be Dr. Frankenstein from the past, not a good developer who can pick up yet another language.
Greed is the root of all evil.
Banks don't want to pay for training, they want plug-and-play staff, and a pony.
Perhaps they should rename it to sound hip and cool. Stupider things have caught on*. Call it Cloudbol++ or node.bol or Bolockchain.
* Or applied to the wrong things or places
Table-ized A.I.
Trump would love COBOL; it's usually in all capitals and makes small things sound important, as if you are God commanding an army of millions who don't question orders.
Table-ized A.I.
But where do they get replacement hardware for mainframes and how secure are those supply channels? If it's going to take years to create a newer system, are the channels that provide replacement hardware guaranteed to be in place for the entire duration from the time a replacement project starts (let alone the time management continues to procrastinate in approving a replacement system)? Of course, that's not too likely to happen on the current executive's watch, so it's really a problem for their successors (or at least that's the way they see it).
DEC went belly up a couple of decades ago... PDP-8 went out of favor for the PDP-11, then the VAX-11 did that in with the thumb switches on the thing.
I'm with you though, I wonder if my DEC VAX Administrator training certificates are worth anything more than for starting a bonfire, or my demonstrated ability to adjust the boot loader for the Harris H100 to use the correct CDC 300 Megabyte 8 platter Drive to boot Vulcan is a marketable skill. Somehow, I'm guessing not.
"File to fit, pound to insert, paint to match" - Aircraft Maintenance 101
Into what? COBOL has lasted 50+ years. How do you know Java or C# or Python will last that long (in viable numbers)? COBOL is kind of like Latin: it's stable because it's a dead language. Scientific taxonomies use Latin because it won't change on them.
COBOL also has a lot of built-in idioms for business data processing. Java etc. would have to use libraries to get similar, and those libraries may fall out of maintenance even if Java itself lasts.
Table-ized A.I.
Cobol programmers will be in high demand, in order to stop the Millenium Y2K bug
In the year 2018... the problem is still not fixed.
"I disapprove of what you say, but I will defend to the death your right to say it." - historian Evelyn Beatrice Hall
When people are saying they need people to fill "COBOL jobs" they aren't actually looking for COBOL programmers. There are looking for people who are willing to jump into excruciatingly painful dead-end jobs dealing with obsolete technology and working just to keep something afloat.
I had an internship with a Fortune 500 company (not a tech company) working on COBOL software in the late 1990s. The COBOL part was easy. It is a pretty simple (but verbose) language and doesn't take long to learn if you've seen FORTRAN, Ada, or BASIC. What *was* really hard was learning how the reporting and monitoring systems worked (we were basically gathering data from food production machines, reporting and archiving it).
Basically, everything in this division was run on old IBM mainframes (actually new mainframes/minicomputers emulating old operating systems... MVS and AS/400 or something). You didn't have a command line where you did your compile and link stuff... oh no, you had to submit jobs in a very finicky format using the mainframe's JCL (job control language). It was heavily customized for no good reason (that I could tell) so only a few of the really acidic and unpleasant old-timers could help you get your stuff going. You couldn't look this stuff up on your own because it was basically macros built upon macros from I'm guessing the early 1970s.
Anyway, this internship was soul destroying. Like the worst job I ever had. I worked my ass off and barely accomplished anything because the simplest thing was so hard and no one knew what the hell was going on. Every so often a "consultant" from HQ (we were a remote site in a different state from the headquarters) would come, install something, and then he (always a he) would leave while everything broke. Even though my internship was to develop a specific piece of new functionality, I spent most of my time figuring out what was going wrong and patching it.
So technically, I have COBOL experience now, but really I have a bit of experience bashing my head against a custom one-of-a-kind wall, and that experience isn't transferable.
To add insult to injury, it wasn't even a high-paying internship. The only good thing about this company was the culture was everyone was out the door at 4PM (hours were strictly 8AM to 4PM). Once I stayed to 6:30PM to fix a production server that was mangled by a messed up JCL card. (Oh god, the JCL cards. Of course they weren't punch cards because this was the 1990s, but you had to format the commands AS IF THEY WERE FREAKING PUNCH CARDS I guess because they were reusing old punch card parsing code. So, if you put a JCL mnemonic in the wrong column, the job failed. I wish I were making this up, I really do, but I'm not.) Anyway, I stayed till 6:30PM one night and the plant manager was so excited with my "can-do" attitude that he gave me a "golden nickel" which was one free lunch at the plant cafeteria. Yes, this was six months of my sorry life.
In the early nineties I was contracting for a large financial institution that were re-training COBOL programmers to be C programmers. I was called in to fix the most awful C code that I've ever seen, before or since. e.g. Functions that would span for 25 pages and blow up compilers.. Later of course, they needed all those COBOL programmers back for Y2K. Now they need 'em back for the boomers retiring. Such foresight.
Here's a thought.. What about building a modern language preprocesser that spit out COBOL? Something like RATFOR did for Fortran?
Besides the hundreds of billions of lines of code that would need to be translated, COBOL does fixed point math exceptionally well which is why banks used it in the first place.
If developers are serious about replacing COBOL, they need to focus on fixed point math and then figure out how to make a compelling financial case for using it. Change for the sake of change is not a reason to spend the money to change a language.
https://medium.com/@bellmar/is...
Work Safe Porn
not the other way round. Never forget that.
But "seriously", if you can code up a new altcoin in COBOL, I will be seriously impressed and not bored, admiring the sheer surrealist abstract impressionist audacity of it.
Where are we going and why are we in a handbasket?
Yet the PDP-11 lives on. In the '90's and early 2000s in the form of the Osprey, a PDP-11 on a PCI card. Now, software emulators are fast enough.
I tuned it down without any hesitation.
I had been working at a company whos draconian monolith called Data Processing Department had no clue how to run a manufacturing plant. We had asked for 6 years to have a report for a fully expanded bill of materials (supposedly an impossible task) for our products so we could get a jump on the purchasing and inventory analysis of long lead items, and yet we were stuck with the hand entry on paper, whch was hand typed twice by data processing operators, which generated reams of paper,. That initial process fed the next level of hand entry on paper for all the subassemblies, which gave the next level of product, and at the end, we humans got out a calculator to total up what was needed to actually build something. To make matters worse, each run of that program was overnight and filled reams of paper we had to sift through, just to get a clue what we needed to complete the orders.
One day I stayed late to play with my dual-floppy IBM 8088 PC 4.77 mhz with an interface board that let it act as a terminal to the mainframe. I had just bought a Pascal compiler and reprogrammed that interface board so to teach it how to pull up the interactive programs that displayed our parts catalogs, read the virtual screen data, and then to switched to the non-interactive mainframe partition where the same "report" jobs could be submitted through a virtual card deck, and then receive those paper reports as text data from those same programs". I now had access to all the information we needed to do our own fully nested bill of materials. The next day I sat down at lunch and threw together a recursive routine to do exactly that, and it submitted those batch jobs during the day and compiled the results from each job submission. This program cut an entire week from the time to deliver, and it took me half an afternoon to write. A week later I had that same program checking inventory and produced a consolidated list of what needed to be purchased.
When my boss saw the output I created he grabbed my report and ran down to data processing to ask, no tell, them once again to write this 'impossible' report he now had in his hand. The data processing department took 6 man months to write that exact same report, and they had direct access to the database, and didn't have to reprogram any hardware, or write libraries, or to make the tail wag the dog. They just wrote straight COBOL
In summary
Pascal: 6 hours (once the libraries were written)
COBOL: 6 man-months with no special development required
You get to decide
Nice try but China is developing AI that translates COBOL to rust, while stealing one US penny per transaction and locking the penny away on a blockchain implemented on a distributed network of Huawei smartphones. Don't cha know.
Where are we going and why are we in a handbasket?
We live in an age where programmers are pretty used to transpiling. We have entire languages like Elixir and Scala that transpile to Erlang and Java respectively, and dozens of others. This has been going on for 20 years. We do it all the time. React, Typescript, and Angular couldn't exist without it.
The way I see it, transpiling is the answer here. Doesn't even matter which way you do it.
Say for example, you wanted to hire young cheap programmers to write code against legacy systems. Just come up with a transpiler that converts whatever it is they're working in into COBOL/DB2 that'll compile against those ancient IBM steel giants. It'll take work to get there, but you're writing non trivial in house code with it's own frameworks and coding standards anyway. If you're still using COBOL, complex projects are pretty commonplace.
Or, if you're feeling enterprising, you could write something that will work against the existing code in your environment, and transpile yourself out of cobol completely, and into something a little more modern like Java, Go, or C. They've had the time, they certainly have the resources to do something like this. And if they did, they would be able to cut costs in the longer term, be more platform flexible than they are, and deliver a higher quality of product to their internal stakeholders, other employees, and customers.
If they really cared about solving this problem, they would just do it. It wouldn't even be a conversation. It would happen, it would be done. No, this isn't really about COBOL or a shortage of old programmers who know COBOL. This is a pretense to bring in exploited offshore labor from the third world, in order to drive down rates in the labor market when the cost of living is at an all time high. "There's no solution, so we have no choice but to train offshore resources and bring them stateside to do it" is pure fucking transparent bullshit. And we should know better than to fall for it.
This signature has Super Cow Powers
Did you hear there's now an object-oriented version of COBOL? It's called "ADD ONE TO COBOL GIVING COBOL".
Have you read my blog lately?
COBOL is the future, of 1954.
Slashdot, fix the reply notifications... You won't get away with it...
I haven't seen anyone offer a training, boot camp or workshop in COBOL.
Because you did not look for it.
Google: cobol workshop
About 832,000 results (0.35 seconds)
Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
I must confess that many of my coworkers love the original UNIVAC operating system, OS2200, known in a previous life as EXEC 8.
UNIVAC seemed to have gotten the ASCII message earlier than IBM, so EBCDIC isn't a problem.
What is a problem is socket programming in COBOL - we had people who knew how to do it in EXEC 8, but they are gone.
I have done obscene things with stunnel defending this beast. I'm actually an Oracle junkie in real life, but I am thankful for the COBOL cards that I wrote in high school and rubber-banded every class for understanding what the hell that machine is doing, and I don't understand 1% of it.
But the best of these COBOL guys love the flexibility and expressiveness of AWK, and their descent into the C languages begins at this guidepost.
Who says that you can't teach an old dog new tricks?
But i know about toilet cleaning. Does this mean there is a job for me too? I would probably prefer it to COBOL
The dangers of excessive individualism are nothing compared to the oppressiveness of excessive collectivism
It's time to force them to update those crappy old systems.
I wrote COBOL back in the day, moved to C++ ASAP. But it's not the language. A company that is still using COBOL also has entrenched, archaic ways of doing EVERYTHING. Sorry, not interested in the least!
If you're able to find the right customer/client. Specialisation is the reason I'm torn hither and fro on wether I should ditch PHP or dive deeper. There are setups out there that are not trivial and need someone who's way beyond regular web stuff.
Same goes for Cobol. Anything running in Cobol today is bound to be seriously mission critical and thus non-trivial to maintain. Which means if you are able to handle such a set-up you're in a position to ask big bucks.
There are quite a few jobs not doing the latest fad in technology and instead dealing with some obscure ERP system and its internal PL or something similar. Those systems aren't going away and are good places to find positions that are basically unfireable.
We suffer more in our imagination than in reality. - Seneca
No. IDGAF what you're paying.
In a world of the blind, the one-eyed man is king--and the two-eyed man is a heretic.
Oh, yeah, all the k3wl tools in the latest language...
Right. Perhaps most of you missed "it works just fine, and does the right thing" in the story. Explain why it should all be tossed, preferably without running in parallel for a year or so, and replaced with RubyOnRails, er, I mean, whatever Goggle's latest language is, or M$'s.... most of which will be forgotten in 10 years.
Got a standards committee for your favorite language? (I've got one, but my fav's C).
Oh, and about mainframes... how many VM's can you run on your system? Back around 2000, some nuts at IBM, using IBM's VM (which dates back to the seventies) maxed out a then-current mainframe... with 48,000 VMs running Linux, and the mainframe ran comfortably with 32k VMs.
Would I go back to writing COBOL, Hell, no. because I like pointers, and more control structures. All the rest is excess... and before you try to argue that, why, wasn't that story on slashdot the other day, that the new versions of apps for the latest i-droid phones running *slower*, becuase what they're pushing out the door is crap alpha software?
Let's see *your* software running 15 years from now. And do you *really* think financial services should be constantly rewriting software into new languages, becuase. they're new? So they can charge you more, because they're constantly hiring new develpers, rather than paying you more, or letting you learn a new language?
If you think the daily calculation of interest for your savings account or home loan is "little" then you have no real understanding of the complexities involved.
When I was still working for a bank one of my work colleagues was tasked with finding a 0.5 discrepancy in general ledger program. He eventually printed it out, it took a ream of paper, and he printed double sided and with as small a font as he could use and still read it. Granted, it was one of the larger programs in use, but still. You print out 99% of programs today (without supporting libraries) and it won't use up a ream of paper. That was his only work task for over a year, find the discrepancy and fix it. He printed it out so he could staple a dog's leash on it and drag it around behind him when he went for coffee. Eventually he hung a porcelain pig with feathers from the air vent in his office and stuck a half cent in it's mouth (not sure where he got the half cent - it's been out of circulation for ages) and told anyone who asked WTF that when pigs fly he will find the half cent. He broke over 3 keyboards by pounding the shit out of them, it was probably more, we stopped counting, but there were always little keyboard keys scattered around his office. Eventually he resigned and his manager / team lead took over the bug hunt, keep in mind that he wasn't the first person to attempt to find the bug. AFAIK they never found it, and each month they have to do a manual transaction to get the general ledger to balance. I worked there for almost 10 years, luckily by that time I had moved to front end, so the bug wasn't dropped on my desk.
There are three kinds of falsehood: the first is a 'fib,' the second is a downright lie, and the third is statistics.
1) Programming in COBOL is not difficult. It is a very procedural language. It also takes a LOT of lines of code to actually do anything. :-)
2) COBOL is alive and well. In fact, on the ERP system that I work on there are many COBOL programs still around and they are crucial for Payroll processing. Nobody, and I mean nobody, wants to mess with these programs.
3) COBOL, despite the fact that is is very old, is extremely good at moving around huge volumes of data. It is also very stable.
4) If you are going to even attempt to modify a COBOL program you had better have a firm understanding of Copybooks and JCL, as the code is likely used in a lot of other programs.
5) It's not going anywhere. The banks have no incentive to rewrite the code into a modern language. For one thing, it's incredibly complex to try and unravel. Secondly, you are not likely to get any discernible processing improvements. Thirdly, it would cost a fortune.
6) Programming in COBOL is really boring. It is almost entirely back end processing. What doesn't kill you makes you stronger
7) As time goes on, skills in COBOL will command a very high hourly rate. Think government and banks. If you can stand all the politics and overhead you will be able to make a good living at it.
I would say your data processing department didn't consider your report a high priority and it got shifted down the list of other shit they had to work on. It probably only took a couple hours to write in COBOL, same as in Pascal, but they only GOT to it 6 months later.
Change control can also be a pain in the ass (if they actually had any) where my wife works a small change means 3 weeks of waiting for change control approval.
Their release schedule might be 6 months as well, where my sister works they only release twice a year, unless it's an emergency bug fix.
Either that or they are a useless bunch of twats, the time taken has fuckall to do with the language it was written in.
There are three kinds of falsehood: the first is a 'fib,' the second is a downright lie, and the third is statistics.
I would say your data processing department didn't consider your report a high priority
That is an understatement if there ever was one. Somehow the production schedule, which is the only way you stay in business, should have been a higher priority than anything else, other than the sales reports. During my time of 6.5 years, there were six large layoffs. The company was bleeding money badly because of the inefficiencies of the corporate structure, and bitter fighting between departments grappling for power, and data processing was no different. The only group of people that were actually treated well all the time was the Sales team. The salespeople were the elite, and they could do no wrong.
Change control can also be a pain in the ass (if they actually had any)
Their change control was a COBOL comment block. They had so much dead code it's a wonder anything worked at all.
Either that or they are a useless bunch of twats, the time taken has fuckall to do with the language it was written in.
This. Exactly. Nobody knew how their system worked (or didn't), and to do the same report they needed to clean up the database of parts lists. There were recursively nested parts lists as well as broken/missing references, misspellings, all of which I had logic to detect and did workarounds. I had a couple of years experience working around those problems on paper, so I at least I understood how it needed to be coded logically.
When I said 6 man-months I meant exactly that. That is the time that was actually charged to get it all done. They finally could not ignore all the problems they created for themselves, and they were thus forced to understand their own spaghetti code. As for the language itself, COBOL, in general, is extremely verbose. I could do in one line of Pascal what it took them more than a full page of their COBOL to do. Modularity was a completely an alien concept to them as well. I've read the code, been there, done that, because that is the only way to get them to fix the business and job tracking logic, and I would have gone insane if I had to deal with all that stupidity on a daily basis.