Hacker News new | ask | show | jobs
by Ovid 4787 days ago
As an ex-COBOL programmer, I did some research in this area and I uncovered the following (from a 2009 blog post of mine).

--

Do a little research into COBOL and a few interesting things jump out at you. Some of this information is from Gartner Group and the rest can easily be verified by doing even a brief survey of the field. Taking the following bits of information:

* 75% of the world's business data passes through COBOL (Gartner Group estimate)

* There is possibly up to a fifth of a trillion lines of COBOL code out there (Gartner again)

* People are still writing COBOL constantly, but usually on existing systems.

* The industry is struggling to find new COBOL programmers because few young programmers love the thought of maintaining decades-old enterprise systems where all data is global and GOTO is often the first choice in flow control.

* Many companies want to move from COBOL, but can't do so easily because too much code is written in COBOL (and the source is often lost).

People really, really underestimate these problems. For example, I've seen several companies express a desire to move away from Perl but find out they can't because they don't realize quite how reliant on the language they are.

Now imagine a multi-national corporation with several million lines of COBOL code. What are they going to do?

COBOL salaries, from what I've seen, are trending upwards. Older programmers are sometimes being enticed out of retirement to maintain legacy systems (this is rather hit or miss as there appears to still be some age discrimination here). There are companies out there offering software to allow COBOL programmers to write NetBeans, integrate with .NET code or simply translate the COBOL into other languages (the latter appears to have mostly been a disaster, but I don't have enough hard data on this).

So let's summarize the above:

* Trillions of dollars flow through COBOL. * Trillions of dollars flow through systems that businesses want to replace. * Current mitigation strategies involve supplementing COBOL, not replacing it.

You come up with a strategy to allow COBOL systems to naturally migrate to a new language and you stand to make millions of dollars. By the way, I said "naturally". There are things like COBOL to Java translators (e.g., http://opencobol2java.sourceforge.net/), but COBOL is procedural and all variables are global. It doesn't even come close to mapping to an object-oriented paradigm (and any experienced OO programmer will understand why).

I actually have what I think is a decent migration strategy for COBOL, but that's a story for another day.

4 comments

>Older programmers are sometimes being enticed out of retirement to maintain legacy systems (this is rather hit or miss as there appears to still be some age discrimination here).

Dear Lord. The one area where age discrimination should rationally favor older programmers and they still get the shaft. How does that conversation go in HR?

"Here's a candidate who knows COBOL... but wait, he's over 60. Ewww, it's so depressing looking at old people [i.e., those over 30] who aren't management track. And we'd have to pay him good money to do something that isn't focused on giving orders to underlings. How yucky. Welp, guess that mission critical piece of software can wait."

Perhaps I've been channeling Michael O. Church a bit too much for my own good, but sometimes it looks as though he's nailed it.

> The one area where age discrimination should rationally favor older programmers and they still get the shaft.

The reason older workers are employed only grudgingly for vacant Cobol jobs is most of those jobs require after-hours standby support that older people generally don't want to do. Not wanting to be woken up at 3:00am anymore was why I left my last job doing such stuff. Younger workers are less likely to get a doctor's certificate saying they're no longer able to do standby work, soon after they're employed.

> but wait, he's over 60.

But he didn't say which way the age discrimination works. Are they only taking ancient programmers because "young people can't possibly have any experience on COBOL/Fortran-loving mainframes" or is it the more familiar form of age discrimination?

Perhaps I've been channeling Michael O. Church a bit too much for my own good, but sometimes it looks as though he's nailed it.

I'm a big fan of MOC's stuff as well, but just to give you one different datapoint... I'm pushing 40 (will be 40 in July) and I haven't seen any evidence of age discrimination yet. I did get laid off from a programming job about 2 years ago, but, to be quite honest, I had mentally "checked out" a good year or so before along with about half of the other stuff, most of whom left voluntarily or also got laid off. It was a shit job with shit management, and we all groused about it and start making it clear to management that we felt that way, so no big surprise there. OTOH, I had a new job lined up within < 8 hours of the layoff announcement. That goes mostly to the fact that I network a lot and knew exactly who to call, but still...

Now, working in a slightly different role as a traveling consultant type, as opposed to a "sit in the same office day after day after day working on the same product" I find that my age sometimes actually helps. I've been sent to help some of the younger consultants because, as my boss put it, the customer "wants to see somebody with some grey in their beard". And, unfortunately, a little bit of grey is starting to show in my beard. :-(

Anyway, it's just one bit of anecdotal evidence, and I don't mean to claim that age discrimination doesn't happen. But it's definitely not universal. At least in the Raleigh / Durham, NC area.

"The industry is struggling to find new COBOL programmers because few young programmers love the thought of maintaining decades-old enterprise systems where all data is global and GOTO is often the first choice in flow control."

A significant percentage of Freshers joining Indian it services companies like Infosys,tcs etc (who maintain such legacy systems) are trained in COBOL.

You come up with a strategy to allow COBOL systems to naturally migrate to a new language and you stand to make millions of dollars.

I'd say that's an underestimate. You can make huge sums simply by knowing COBOL + having financial expertise. If you can actually migrate COBOL systems in a natural way that's likely a multi-billion dollar problem at this point.

> * People are still writing COBOL constantly, but usually on existing systems.

From what I've seen (somewhat limited honestly) it's less "writing" and more like "patching". Minimal maintenance features like adjusting tax rates, accepting 4 digit years, updating country names etc. I wouldn't even call them minor features enhancements, more like routine maintenance.

> COBOL with over 200 billion lines of code in existence and with an estimated 5 billion lines of new code annually

Yeah, almost all of those 5 billion new lines are first copied from those existing 200 billion, then patched.

My last job had a big system where they wanted to enable a new country to be processed. The IT staff started to analyze how to modify it, but an executive for the user department gave the order: "Copy the entire codebase of the existing system, add XYZ- to all the program names, then make the changes". No-one dared disobey. Happily the existing codebase wasn't impacted, but there was now twice as much maintenance, operations, and standby support to do. I'm guessing that executive's gone now, and maybe the systems are now being supported overseas.