Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I once had this crazy idea that I might learn COBOL. COBOL developers are getting older and retiring, but there's still a lot of legacy code hanging around that needs maintaining. People have told me that this has lead to an under supply of COBOL developers, resulting in a lot of available work and could be potentially very lucrative! (not my only motivation, honest!) Is there any truth in this or is it a bit of a myth?

share|improve this question

closed as not constructive by ChrisF May 22 '12 at 10:44

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.If this question can be reworded to fit the rules in the help center, please edit the question.

Iḿ really curious about what motivation you would have other than the money. Maintaining legacy COBOL systems is not the kind of job most people look forward to. – hugomg Oct 8 '11 at 15:40
I meant it's not my only motivation as a developer in general, but for moving to COBOL, then yes, money would be the motivation! – Paul T Davies Oct 8 '11 at 16:01
There isn't enough money in the world to make me change to COBOL – Tom Squires Oct 8 '11 at 17:45
Hint: a big reason there's going to be a shortage of COBOL developers is because a mainframe stack (CICS, Endevor, COBOL and JCL was what I worked with at HSBC) is almost impossible to learn without being paid to work on it. It's not like you can get emulators to run them on, for example. – user16764 Nov 25 '13 at 20:28
up vote 19 down vote accepted

Yes, I think this is somewhat true. COBOL is being taught less and less at universities. It is not a modern nor "hot and cool" language - so the chance of people picking it up by interest/hobby is smaller than for the current "hot" languages.

At the same time, there are millions and millions of COBOL code live in critical systems, that will have to be maintained in the future.

Therefore, it might be difficult for companies to recruit the number of COBOL programmers they need, so being a good COBOL programmer could be lucrative. In my country, some big companies offer well-paid COBOL jobs to new graduates, even though they know they will need to teach them everything about COBOL and mainframes from scratch.

I would not choose my career based on this. Choose based on your interests, what's fun to do ? If you invest in developing yourself and improving your skills on the programming platform of choice; you should be able to make good money in any language.

Also, COBOL is needed for now, but I don't know of any new projects being started on COBOL. A COBOL job might be maintaining 10 or 20 years old code. My guess is that COBOL will be around and important for some years to come; but when existing systems eventually needs to be replaced, they probably won't be built in COBOL.

share|improve this answer

Yes and No. It depends on how lucky you are and were you work.

I can tell you from personal experience that there is a lot of live COBOL code out there, most of it in large banks. This code is being maintained and enhanced.

Since this is a niche and COBOL programmers are not as easy to find as Java/C# ones, and given the fact we are talking about the financial sector, chances are you will be payed very well.

But there is a catch...

Some companies started to get into this niche and offer banks their COBOL programming services. This is better for banks, instead of having people in house. Their system might need modifications for some law or something and it needs to be done, but afterwords there is nothing to do any more, but an in house person will have to be payed all year long even if she actually works just half of that time.

So the banks hire the services of these COBOL programming companies.

If you end up in a company like this your pay will be small because these companies work with fresh CS graduates.

They hire youngsters and give them a job with small pay (their speech is like this: hey... you are fresh out of school... you know nothing, so we are giving you a change to grow withing the company... this is a risk for us... bla bla yada yada).

These poor souls were scarred by C++ pointers in college and introduced to COBOL (in house complete training for a couple of months or so) find an easy to work with language which enables them to create a program that transfers money from one account to another by just Copy-Pasting code from somewhere else.

That's the main style of development, Copy-Paste. In a mater of days you create a full working 50 000 line program that does the job.

These youngsters receive specifications written almost in pseudo-code and they are transformed in code monkeys. By the time thew wake up...well... it's to late.

If you end up in a company like this you will be treated as the youngsters, no matter how much experience you have. And if you don't like it... there are plenty of young people to replace you.

As I said, it depends on your luck and were you live. I know about companies like this in both Europe and India, YMMV.

share|improve this answer
Intersting viewpoint! – Paul T Davies Oct 8 '11 at 18:45
I've worked with COBOL, and I can confirm that it's mostly copy-and-paste. – user16764 Nov 25 '13 at 20:38

Being already skilled in COBOL is lucrative.

The problem is: you hardly write new code, you keep mantaining forever, do some integration, or port to Java/.NET/web.

That's more the profile of badass sysadmin with benefits position than that of a programmer.

When COBOL was mainstream, to make things work, COBOLds had to do many non-canonical hacks on different pieces of really outdated equipment:

  • dot matrix printers
  • tape drives
  • hardware terminals
  • laboratory equipment
  • sensors

There's a very strong drivers are for wimps school of though in that environment.
It used to make sense. It used.

You'd better like serial port programming, know your postscript by heart, and whip the centronics interface beast at your pleasure. Some arcane operating system knowledge will benefit your profile, too:

  • AS400 (the IBM OS that just doesn't want to die no matter how hard they try)
  • The many ancient flavors of UNIX.
    (thank god most of that is being overhauled by linux,
    but you still see the occasional machine who wouldn't die)
share|improve this answer
What is the difference between "writing new code" and "maintaining while doing some integration and porting to ..." (i.e. writing new code)? – Rook Oct 8 '11 at 17:22
Writing new code from scratch helps learning. Starting with a clean slate leaves you a better understanding of design decisions. Mantaining is more a matter of coping with previous decisions and sheer luck. (Refactoring instead, for the sake of completeness, is the worst of both worlds in a single solution) :) – ZJR Oct 8 '11 at 17:34
Ah well, sorry to say but I disagree. It has been my experience that folks "starting with a clean slate" make worse decisions than those who are "thrown into a mess"; where they can use some of that to see what doesn't work and why. Those that start from scratch often make that fatal mistake to try to create "a perfect system" (again). And if maintaining=luck then you've just been doing it wrong. Maintaining is a process of upgrading based on previous measurements and problem analysis. Anyone who depends on luck either doesn't know what he is doing, or knows it very well ... – Rook Oct 8 '11 at 18:08
I don't necessarily think that writing new code does anything. Understanding why something is the way it is helps learning; once that is done writing code is simple. Writing code doesn't help much with anything if done on false prepositions. – Rook Oct 8 '11 at 18:11

No, it is not a "myth". There is a lot of COBOL code still in usage, and that code requires maintenance and updating. Naturally, there is a need for programmers who know how to do that.

Since COBOL is not really taught at universities, companies usually train their staff in-house, and keep them. If you're looking for a nice stable "quiet" job, this is not a bad way to go.

share|improve this answer

I think large companies have a strategy for phasing out COBOL systems and replacing them with other systems for many reasons, one being the cost of mainframes and the tendency of developers not to love to learn COOBL.

The great advantage of COBOL is the simplicity of the language, however, systems are usually complex. If you are the kind of person who likes to dig in tons of lines of code to extract business rules or to fix problems, then you might have a career for the next 10 years or so.

Beware of the fact that while there are COBOL jobs they may not be all in one place and some of the jobs may be on contract only basis. That could mean lots of travel. Do make searches in the job engines to know more.

A COBOL developer would need to learn COBOL II, VSAM, CICS, ISPF, DB2, JCL and possibly IMS in addition some other tools. COBOL alone won't cut it.

Edit I have removed the sentence "At the crisis of Y2K many large COBOL systems were simply thrown away" since I have no facts to back it up.

share|improve this answer
I anticipated the travel. This was just an idea, not anything I'm seriously thinking of persuing. Was the Y2K a serious issue for COBOL? – Paul T Davies Oct 8 '11 at 14:48
Very rarely are systems just "thrown away". Usually such a decision is made based on its financial and technical feasibility. Also, I've not heard of any industry where y2k bug caused problems in a systematic manner. Do you have any sources or can provide any references to verify such statements? – Rook Oct 8 '11 at 15:01
@PaulTDavies, thanks for your comment. Yes Y2K affected COBOL big time because it was just a tradition to have the year fields coded as 99 instead of 9999 in record layouts. – NoChance Oct 8 '11 at 15:05
@Rook, thanks for your comment. The Y2K began to be seriously considered around 1995 or so, at that time the ERP applications found a great opportunity in taking over non-compliant Y2K systems. The cost of converting systems like inventory, HR, etc. was not worth it compared to glorious future promised by ERP vendors. At least this is my experience with it. – NoChance Oct 8 '11 at 15:10
@Rook, thanks for your comments. I have not claimed "mass conversion", anyway, I have no data to backup the argument made, as a result I have edited the my text above. Thanks for clarifying this point. – NoChance Oct 8 '11 at 20:07

I talk to lots and lots of other COBOLers, myself included, who are out of work and just not finding it. Most of the interviews I've had over the past 10 months have NOT been COBOL gigs, and they were looking at my experience, analysis work, SQL, VBA, etc.

I have 20 years of COBOL, but only on Unisys and HP mainframes. Almost every IBM COBOL gig I find, I apply. They just are not interested if you don't have specific platform experience and several years of it.

share|improve this answer

COBOL is very much in demand. The company I work for writes a lot of it.

But strangely enough, I've never seen a C++ or C# programmer here ask to be transferred to a "lucrative" job in the COBOL department.

share|improve this answer

I really doubt that it would be very lucrative, as I don't see software maintenance as being lucrative. Even more so, that it's banking, and banking still hasn't recovered from financial meltdown, and isn't likely to recover anytime soon.

On the other hand there is very lucrative market in post-web2.0 industry. There are companies willing to pay a lot to people with skills necessary for building services from ground up, for mobile apps, web APIs, cloud backends etc. And in fact they offer much more than banks can offer.

Just compare US salaries by few keywords in indeed, and you'll see a clear trend:

  • COBOL — $92,000
  • python — $93,000
  • c++ — $94,000
  • nosql — $99,000
  • cloud computing — $103,000
  • map-reduce — $107,000
share|improve this answer

I'm coming at this from a PL/1 angle rather than COBOL, but I imagine the same applies - albeit in a smaller way.

I wrote PL/1 from about 1990-2007, and prior to 2000 there was always a huge demand for PL/1 programmers. But as part of the Y2K effort, many old PL/1 systems were retired, and many existing other bugs fixed reducing future maintenance requirements. After that point there were a lot less jobs around, which led to many older programmers retiring. There wasn't a corresponding increase in rates though - the pool of developers was still too large for the number of jobs out there. I stuck it out for another 7 years (although for much of that time I was writing SQL, JCL, DFSORT and other stuff rather than any actual PL/1) but in the end I gave up. By that time contract rates were way down, not that that mattered as the only available jobs were permanent anyway.

So I switched to iOS and haven't looked back. Those who didn't move on are looking for the scraps from the table I'm afraid, or are stuck in a permanent job writing an old language that has little relevance in the outside world.

share|improve this answer

Not the answer you're looking for? Browse other questions tagged or ask your own question.