23
votes

Does learning COBOL still make sense?

6
  • 9
    It will be around 9990, not sure if you live that long. Commented Sep 17, 2010 at 12:18
  • 4
    @Gamecat---Only if the Y10K problem isn't solved by non-lazy companies or individuals before then, right?!
    – Mark C
    Commented Dec 6, 2010 at 6:44
  • 2
    Remember that COBOL alone would not get you far. You need to laarn the stack for the OS you want to work with. For example, on IBM machines, you'd need VSAM, MVS Or Z, CICS, ISPF, may be IMS and ISPF, Panvalet/Easytrieve, JCL in addition to COBOL.
    – NoChance
    Commented Oct 29, 2011 at 15:28
  • 2
    cobol.com looks really Web 2.0-ish and they give away a coffee machine! If that's not modern and pragmatic and insert buzzword then I don't know what.
    – Raphael R.
    Commented Oct 30, 2011 at 21:52
  • You can get a steady income if you get good at it and find a COBOL shop.
    – user1249
    Commented Jul 11, 2012 at 23:18

17 Answers 17

26
votes

I don't think so, unless you are already in the niche market where COBOL is still maintained.

14
  • 13
    70% of the existing infrastructure runs on COBOL. From swiping a debit card on an ATM, to making an online airplane reservation, to even routing a cell phone call. All those run on COBOL (or significantly depend on it.) It is hardly a niche or a legacy environment. Most of these systems have been run almost uninterrupted and well for decades (a much better track record than what we have on Java and .NET), and the number of COBOL programmers is decreasing. Want to make lots of $$$? Position yourself for tremendous COBOL shortage that is to occur in about a decade. Commented Oct 18, 2010 at 16:16
  • 14
    @luis.espinal: no, this is a common myth, and a 70% percentage is no longer true. COBOL usage is steadily decreasing, and eventually we will get rid of it. And... COBOL involved in phone call routing? I don't think so. Perhaps in phone call billing, but even there it is unlikely these days.
    – Wizard79
    Commented Oct 18, 2010 at 16:25
  • 6
    @Lorenzo - 70% a myth? Not involved in telecommunication? Can you can back up those claims? We are not even counting its involvement in shipping (tens of K of containers/year), nor in the Health Care industry. I don't know how it is where you work, but here in North America (and in many other places), COBOL exists in large numbers, and works well. Why would someone entail risk in re-writing something that works and that is mission critical? I would love to fantasize I will rewrite all in Java or C++, but there is fantasy, and there is software engineering and the economics of software. Commented Oct 18, 2010 at 18:53
  • 9
    @luis.espinal: as I have worked in the telecommunication industry, I do know fore sure that telephone exchange devices don't use COBOL... they are based on dedicated hardware and firmware. Some companies still use COBOL for billing and accounting, but new ones (like mobile operators) rely on different technologies even for that. The switch over is ongoing.
    – Wizard79
    Commented Oct 18, 2010 at 20:43
  • 8
    @luis.espinal: my bro-in-law works for a major telecomm company, writing software for new switches. I absolutely positively guarantee you he does NOT use COBOL! Commented Oct 29, 2010 at 12:16
36
votes

Nooo, of course not. COBOL is a dead language, after all. Or is it?

The problem with that view is that programmers at sites like this one usually work with high tech, fast-running (and equally fast burning-out) companies. For them COBOL is a dead language - it is nowhere to be seen. Has not been for some time now, 'tis true.

But COBOL was not meant for them. There is more to the software industry than this. Computers were not invented for people with some irrational need for upgrading and replacing old with new all the time. They were made for business purposes.

You want to see COBOL? Go to a company that processes payroll, or handles trucking of goods, or shipping (as in ships), or handles your bank account. There is a huge invisible system of code out there that's practically invisible to the users, and most of them never think about it although they encounter it in one way or another everyday (ATMs?)

No, it is not dead. But it is "legacy" for sure... or is it?

Again, depends how you look at it. Nowadays, a lot of people will use Java, C, or anything else instead of COBOL, rewriting from scratch... introducing new bugs as they go along, naturally. That is not saying COBOL doesn't have bugs, and quirks. It does, as much as the next language. Of course it does. But in "COBOL times", companies which took bugs more seriously than usual (insurance, banks) tended to produce higher quality code with special quality service groups; today, there are deadlines where time and budget always wins over quality. Also, these systems were originally developed for longer periods back then compared to the equivalent now.

If some software has been working for 30+ years, where is the incentive to switch? Whole companies went out of business because they ignored the old adage of "if it ain't broke, don't fix it." Many tried to rewrite the thing... then the first rewrite cost a lot, then the second one cost even more... and none of those new & improved managed to replace it. As I said, this industry is fast-burning, and it also tends to forget fast.

In the 70s COBOL was dead or dying soon, C/C++ were going to rule. Then again in the early 80s Pascal was taking over. Then in the 90s it was Java as THE Language...

Think of Unisys Mapper, dBase, Clipper, Cold fusion... do people even remember those? Each one of them was going to be the gravedigger for COBOL.

Taking that into account, and the fact that it is great for processing high volumes of transactions, batch processing or record/transaction-oriented processing, and that one can compile (without errors) a subroutine written 30 years old as managed COBOL code and call it from a managed COBOL.NET should one wish to go Windows and .NET, I'm having trouble finding a suitable replacement for it. (I'm also having trouble finding a Microsoft technology that lasted more then a decade.)

Yes, new COBOL code is being written today. One just has to know where to look.

For those laughing at COBOL, IMHO, it is like laughing at the Egyptian Pyramids, they are there from 5000 years and they still will be there in next 5000 years, while today's "hello world" housing needing 24 controls to work will be deleted, replaced, forgotten next month.

So where are all those COBOL programmers?

Ah, for here lies the rub. The thing is that a lot of them don't have any computing science background. A lot of them are not professional programmers (as in university graduates from a CS/SE program). For the most part, they are people in their late 30's-50's, from all areas of expertise, trained entirely by the company specifically for that job. So they aren't "COBOL programmers" - the training they got is specific to the company which so heavily promotes from within. And that makes them pretty much invisible.

7
  • 9
    Having a iPhone/desktop/Web 2.0 mindset is a good way to forget about the vastness of the computing world. Commented Oct 14, 2010 at 23:45
  • 8
    So where are all those COBOL programmers? Driving taxis.
    – johnc
    Commented Oct 15, 2010 at 4:28
  • 1
    @johnc - where did you get that from? 70% of the existing infrastructure runs on COBOL, and there is a shortage of COBOL programmers. It might have been hard to get a job if you only knew COBOL back in the dot-com days (we are talking a decade now). But now??? Man, COBOL is going to be in high demand in about a decade just because of the criticality of those systems and the shortage on software developers that know (or are smart enough to take the chance) to work with COBOL. Commented Oct 18, 2010 at 16:19
  • 2
    @luis.espinal I am completely (and painfully) aware of the issues we are facing with the lack of COBOL programmers, however my comment was spoken, somewhat frivolously I admit, from experience. In Australia, at least, pretty much every taxi driver I have met, in the last decade, who was not a recent immigrant (and possibly some who were), has been a former COBOL programmer. Coincidence, perhaps, and I say this making no personal judgement on taxi drivers, immigrants or COBOL developers. It is simply an observation.
    – johnc
    Commented Oct 18, 2010 at 21:16
  • 2
    @johnc - I don't doubt your word, but I find that observation extremelly hard to believe.
    – Rook
    Commented Oct 18, 2010 at 21:39
16
votes

If you can see yourself as COBOL programmer, then go for it. There are still billions of lines written in COBOL that require maintenance.

Actually, there is no such thing as unnecessary knowledge, so broaden the knowledge and wider opportunities you (will) have.

2
  • 1
    Given that there's no such thing as unnecessary knowledge, I nominate Intercal for the next language you learn! Commented Jul 17, 2012 at 5:36
  • @TikhonJelvis: Too easy, far too easy. Malbolge is what you're looking for.
    – Magus
    Commented Mar 17, 2014 at 23:16
15
votes

COBOL

Does learning it make sense?
Well, it's a niche and there's tons of working legacy code that need to be maintained and can't just be rewritten. So while it's not really an option for the vast masses of all programmers, it's a perspective for a steady income for individuals.

However, if you're interested in creating new solutions, rather than slowly improving those that have been around since decades, COBOL probably isn't the right language.

8
votes

A lot of european companies still rely heavily on mainframes running like z/vse and cobol programs. There is a demand for skilled cobol programmers that noone thinks the market will fill which drives up the salary, a lot.

The question should be, "will I ever develop something new using cobol?" since pretty much everything is maintenance or variations of existing mission critical stuff.

5
votes

I used to work for IBM where COBOL and PL/I code was written every day. Also from big companies relying on IBMs mainframes like many banks which require thousands of transactions per second those languages are still heavilly used.

If you don't want to work in a place like that (That's why I just worked there for 6 months) then don't even think of learning those languages.

1
  • Working on the backbone of the economy, handling that type of traffic, that would certainly be seen as a good engineering and business opportunities by many. Commented Oct 18, 2010 at 16:21
5
votes

We write new Cobol code every day, and we are on a constant lookout for new programmers. The supply is too small around here.

10
  • 5
    That is really scary but interesting. I never met a real live cobol programmer (and I am no spring chicken)
    – Tim
    Commented Oct 14, 2010 at 21:49
  • 3
    Why scary? You probably never met a Lisp programmer either...
    – user1249
    Commented Oct 14, 2010 at 22:45
  • @Tim There's a guy from MicroFocus who writes articles on Code Project - all in COBOL... for .NET! It's really weird to see COBOL updated with more modern technologies. Commented Oct 14, 2010 at 22:53
  • 2
    @Thorbjorn - I used to code in lisp and know lisp programmers. Perhaps I am just ignorant and biased but what I know of cobol does not induce me to think highly of making MORE code in that language.
    – Tim
    Commented Oct 15, 2010 at 1:51
  • 1
    Lisp is used for interesting projects, and is an interesting language in its own right. So are C++, Ruby on Rails, Smalltalk, and Haskell. Cobol is used for dull business applications, and is interesting only to people who have to create compilers and tools for it. Fundamentally, the cool kids don't use Cobol, and I'm using "cool" so loosely as to include me. You'll have to go to different places, such as a business school, to find Cobol people. Commented Oct 15, 2010 at 17:17
4
votes

If you want to have a job as a COBOL programmer, then sure, go ahead and learn it.

For any other reason, like trying to learn something useful that might help you with modern programming techniques, no, don't bother.

1
  • IMO, modern programming techniques have little to do with programming languages and more to do with software methodology. There are developers who have not seen anything but OO languages in heir lives, and yet can't describe what a good OO design is like. Good programming and software engineering principles transcend programming languages. I would imagine a young developer with decent skills will have a better software engineering learning experience dealing with a missing critical "procedural" legacy than yet another layer of procedural crust written in Java (I'm a Java developer btw.) Commented Oct 18, 2010 at 16:30
3
votes

In the year 2000 I read a statistic that there were more lines of COBOL written than all other languages combined.
Add to that the IBM guarantee that any TEXT deck (object code), compiled on any MVS system is executable on all of their MVS systems and you have a guarantee that there will be COBOL programming around as long as the sun shines.

1
  • 6
    If you think about the fact how verbose COBOL is, it's no wonder ;-). Commented Nov 27, 2010 at 12:49
3
votes

I can tell you how I "learned" it:
I was employed to work with it, having no clue what it was about, and had no difficulties learning it overnight.

So, if you need it you can learn it. No need to overload yourself with useless knowledge. There is nothing interesting in it or its engagements unless you have real practical need for it.

The generic answer: learn coding principles, not their specific implementations (like languages, etc.)

2
votes

I would not spend time over it.
Anyway, COBOL is the building blocks of many legacy application programs that are mission critical for several Big Company started 20\30 years ago.
So, if you are hired for a company that has part of its core business in COBOL, there are chances that you have to start to learn it.

2
  • Like? (15 chars)
    – TheLQ
    Commented Sep 1, 2010 at 23:18
  • @TheLQ Banks or Insurance companies started 20\30 years ago have their software foundations in COBOL. Commented Sep 2, 2010 at 5:54
2
votes

Learn it if you like, after all, knowing how things work (or used to work) cannot be a bad thing.

However I would recommend against emphasizing your COBOL skills too much in your resume.

In some places (for example, in the Silicon Valley where I live) having COBOL in your resume is going to be a liability. Oh sure, you might find a place here and there who need your expertise, and in that case go ahead and advertise it to those places only. But in general, do yourself a favor and forget to mention that you know COBOL.

So yes, learn it if you're curious, just don't tell anyone.

1
vote

Maybe not worth from a work market perspective, but you might want to have a look at it just to get a feel of how stuff was done "in the good ol' day". ^^

1
  • The only time (I think) where the market was bad for COBOL was during the dot-com apocalypse with e-hype and all. Commented Oct 18, 2010 at 16:36
1
vote

From a personal perspective I would say that there are better things to learn first. However, many large companies have very large investments in their COBOL code base which they'll probably never really be able to leave behind, creating an industry for COBOL programmers to maintain the code base as well as write new code. The company I work for is a large financial company and our technology split for developers is roughly 30% COBOL, 40% Java and 30%C#.

1
  • 2
    able, yes, but why - working code is working code.
    – user1249
    Commented Oct 14, 2010 at 23:08
0
votes

I just did a search for "cobol" on Australia's largest job website. It returned 87 results, and (from a quick skim) they mostly seem to be legacy maintenance positions in banks and financial institutions. Mostly distinctly better paid than more "modern" language based jobs - presumably due to the rarity of Cobol experience.

So yeah, it seems like Cobol would be worth learning if you 1) don't mind doing legacy maintenance and 2) you want to get into a niche which is well paid and probably not very competitive since it's something few people are learning anymore.

(I'm assuming the Cobol market would be similar in most First World economies, but could be wrong?)

6
  • Even banking/insurance/PA are slowly evolving to more modern technologies. So now entering this niche may be good, but what will happen when eventually all the legacy code and its niche market will disappear?
    – Wizard79
    Commented Oct 15, 2010 at 18:15
  • @Lorenzo: Well, this can be said about any specialty in our field (even all fields in general). Re-training. eg. Steam locomotive drivers had to retrain and become diesel or electric locomotive drivers, etc etc. :) Commented Oct 15, 2010 at 20:45
  • But COBOL is already a niche... the idea is that, if you embrace COBOL now, you would probably need to re-train sooner than other technologies.
    – Wizard79
    Commented Oct 15, 2010 at 21:32
  • 1
    @Lorenzo - No, not really. The fact that they're not mainstream in cs univ.'s doesn't automatically make them niche. It just means you don't move in circles where you encounter them. How many workers that work on automobile line production do you know? Naval architects? Plane pilots? Do you think they're niche as well? (and also, for both of these example categories you'll have trouble finding job ads). One has to know where to look.
    – Rook
    Commented Oct 15, 2010 at 23:16
  • 1
    @Lorenzo - do you actually believe all that COBOL and FORTRAN code and knowledge base will eventually be rewritten? I mean, seriously. I've never met anyone in the industry and academia who believes such a thing is possible, much less desirable. As ugly as COBOL looks like (a subjective reaction), those systems work well, much better than the e-crap we have been building since the dot-com days. That's a testament of industrial quality. It is better engineering and economics to maintain those systems as opposed to rewrite them (assuming zero risk and infinite economic resources.) Commented Oct 18, 2010 at 16:35
0
votes

Think about the kinds of problem domains you want to work in. Typically those domains have a set of languages that are generally used for the purpose. If COBOL matches that then go ahead.

There is no way I would touch either cobol or the problem domain(s) that use it heavily with a 10 foot pole. I'd rather flip burgers.

Also consider if the language offers some bonus/improvment to your programming ability/concepts. I can't think of anything COBOL can do/implements/features that isn't done better or can be demonstrated better in another language.

You and others may feel differently.

0
votes

There are still plenty of legacy system out there written in COBOL. Whether you want to maintain them or port them to other programming languages, it is still worth learning COBOL.

No matter what it is, some knowledge in multiple programming languages will be a plus because the knowledge you have allows you to choose a programming language or approach for different project needs. You can use your knowledge in programming languages to construct better, cleaner and more efficient codes and to avoid pitfalls.

1
  • Within 2004 to 2005, I involved in a Navy modernization project in my country porting some 200KSLOC of Ada83 to Ada95 and some 25KSLOC of COBOL68 and COBOL74 to Ada95. I learned COBOL in 1987 and it is definitely worth the time and effort to learn COBOL. I could not imagine if I did not have prior knowledge of COBOL.
    – Adrian Hoe
    Commented Oct 31, 2011 at 15:32

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