Does learning COBOL still make sense?
-
9It will be around 9990, not sure if you live that long. – Toon Krijthe Sep 17 '10 at 12:18
-
4@Gamecat---Only if the Y10K problem isn't solved by non-lazy companies or individuals before then, right?! – Mark C Dec 06 '10 at 06:44
-
2Remember 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 Oct 29 '11 at 15:28
-
2http://www.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. Oct 30 '11 at 21:52
-
You can get a steady income if you get good at it and find a COBOL shop. – Jul 11 '12 at 23:18
-
In the company I work, there is a team who does COBOL testing. So yeah, it's still used in some places. – Radu Murzea Jul 17 '12 at 06:26
17 Answers
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.

- 44,005
- 10
- 92
- 126

- 19,861
- 9
- 53
- 96
-
9Having a iPhone/desktop/Web 2.0 mindset is a good way to forget about the vastness of the computing world. – Paul Nathan Oct 14 '10 at 23:45
-
8
-
-
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. – luis.espinal Oct 18 '10 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 Oct 18 '10 at 21:16
-
2@johnc - I don't doubt your word, but I find that observation extremelly hard to believe. – Rook Oct 18 '10 at 21:39
-
I removed the paragraph about uptimes because it was seriously hurting the quality of an otherwise good answer (pending some cleanup). First of all the libraries and frameworks for newer environments are nowhere near the size being claimed, and secondly, uptimes are a function of the hardware and the operating system, neither of which are written in COBOL or have anything to do with this topic. – Aaronaught Oct 29 '11 at 16:47
I don't think so, unless you are already in the niche market where COBOL is still maintained.

- 7,327
- 2
- 41
- 76
-
1370% 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. – luis.espinal Oct 18 '10 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 Oct 18 '10 at 16:25
-
1@Lorenzo - I think I've heard something along the same lines in the 80s, for Fortran, COBOL, some other less known languages as well. Sorry, all still here :-) On what basis do you make these conclusions? – Rook Oct 18 '10 at 17:59
-
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. – luis.espinal Oct 18 '10 at 18:53
-
2@Lorenzo - I forgot to mention that I also know for a fact that there is a large body of COBOL systems in Japan and South America (in addition to North America.) These systems are not just legacy, they are live systems with active development. I don't do COBOL, btw. I'm a Java/C/C++/Pascal developer, **and I much prefer to work on the "next new thing"**. But, as an engineer, I cannot live in the myth that COBOL is dead or that it is a niche. From where I sit, it is not reality in terms of engineering and economics. – luis.espinal Oct 18 '10 at 18:58
-
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 Oct 18 '10 at 20:43
-
@Lorenzo - I don't know the details, since we usually have better things to waste talking time on, but in Central Europe (Austria, to be exact) a lot of shipping (large trucks) companies and at least (that I know of, of course) one large mobile operator (Europe-wise large) is hiring COBOL programmers. – Rook Oct 18 '10 at 21:45
-
I say hiring, because an old coleague who's now in charge of ..., has been for some time (20 years?) now, is having trouble finding relatively experienced new guys off college's. The problem with cobol programmers/language is that it's not exactly mainstream ... making them a different "circle" than i don't know, java programmers, therefore creating an effect of it being not used. – Rook Oct 18 '10 at 21:47
-
But what are we really working ourselves out over here? If you don't want to believe, hell, I'll be the last person to try to make you. – Rook Oct 18 '10 at 21:51
-
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! – Bob Jarvis - Слава Україні Oct 29 '10 at 12:16
-
4Chiming in with the "actual" telecom guys and coming from the telecom industry in Northern Europe, I have never seen or heard of any telecom related system running on COBOL. On a less serious note; any company that are hiring COBOL programmers are probably doing so to update their billing systems (or else they won't get paid). – Spoike Oct 07 '11 at 06:35
-
1For programmer programming must be enjoyable and subjectively programming on COBOL doesn't bring fun and enjoyable mood so for me its better to leave it aside and have more fun learning Groovy/Scala/Clojure – artjom Oct 07 '11 at 07:54
-
3-1 for an answer that does nothing but assert an unsubstantiated opinion. I wouldn't learn COBOL either, but answers like this are not helpful to anyone, and I doubt that any of the people who upvoted even know the first thing about the subject. – Aaronaught Oct 29 '11 at 16:48
-
3@luis.espinal: Logic dictates that whomever makes a claim must substantiate it. Can you provide any evidence that "70% of the existing infrastructure runs on COBOL"? It's funny that you ask others to back up their claims when you haven't backed yours! – CesarGon Oct 29 '11 at 16:52
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.

- 257
- 1
- 3
-
1Given that there's no such thing as unnecessary knowledge, I nominate Intercal for the next language you learn! – Tikhon Jelvis Jul 17 '12 at 05:36
-
@TikhonJelvis: Too easy, far too easy. Malbolge is what you're looking for. – Magus Mar 17 '14 at 23:16
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.

- 29,980
- 3
- 73
- 114
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.

- 13,345
- 2
- 38
- 57

- 507
- 2
- 10
We write new Cobol code every day, and we are on a constant lookout for new programmers. The supply is too small around here.
-
5That is really scary but interesting. I never met a real live cobol programmer (and I am no spring chicken) – Tim Oct 14 '10 at 21:49
-
3
-
@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. – MetalMikester Oct 14 '10 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 Oct 15 '10 at 01:51
-
Also scary in the sense that most people I know who go into programming or computer science want to solve interesting problems and work on new technologies... Cobol does not seem to fit that bill. (but my ignorance may be blinding me) – Tim Oct 15 '10 at 01:57
-
1Lisp 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. – David Thornley Oct 15 '10 at 17:17
-
@Tim, it is always fun to learn new stuff. The question was if it was worthwhile - the original poster might be interested in knowing that it can land him a job. – Oct 17 '10 at 09:37
-
@David, if you've actually _used_ C++, Ruby on Rails, SmallTalk and Haskell and Lisp _that_ would be cool... – Oct 17 '10 at 09:42
-
@Thorbjorn - Yes, you are right - if the OP would like to get a job programming in-house apps to do record-keeping and forecasting for insurance companies then it could make sense to learn cobol. – Tim Oct 17 '10 at 14:46
-
@Tim, tastes differ. The same amount of craftsmanship is necessary to good record-keeping and forecasting for insurance companies as doing some fancy web-page stuff well. Have you read about how the Space Shuttle software is written? Do you think that would be a job for you? – Feb 05 '11 at 07:31
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.

- 429
- 3
- 12
-
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. – luis.espinal Oct 18 '10 at 16:21
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.

- 4,810
- 2
- 16
- 23
-
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.) – luis.espinal Oct 18 '10 at 16:30
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.)

- 507
- 2
- 11

- 206
- 1
- 4
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.

- 427
- 3
- 7
-
6If you think about the fact how verbose COBOL is, it's no wonder ;-). – Oliver Weiler Nov 27 '10 at 12:49
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.

- 3,545
- 3
- 29
- 33
-
-
@TheLQ Banks or Insurance companies started 20\30 years ago have their software foundations in COBOL. – systempuntoout Sep 02 '10 at 05:54
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,854
- 13
- 10
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". ^^

- 17,377
- 22
- 89
- 138
-
The only time (I think) where the market was bad for COBOL was during the dot-com apocalypse with e-hype and all. – luis.espinal Oct 18 '10 at 16:36
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#.

- 702
- 5
- 12
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.

- 241
- 2
- 7
-
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 Oct 31 '11 at 15:32
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?)

- 20,516
- 7
- 54
- 79
-
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 Oct 15 '10 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. :) – Bobby Tables Oct 15 '10 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 Oct 15 '10 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 Oct 15 '10 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.) – luis.espinal Oct 18 '10 at 16:35
-
I am from Australia as well and we just hired COBOL developers last year but for senior or lead positions, not entry level. But a lot of COBOL development is actually done through outsourcing in India. – softveda May 02 '11 at 08:54
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.

- 946
- 7
- 9