Why is COBOL still the preferred language in the business world?

Asked

Viewed 18,353 times

21

As you all know COBOL is widely used by financial institutions, where only the interface is done using current languages like Java.

  • The cost to maintain mainframes is large, but the migration to a current language is greater?
  • Currently it is very used but 20 years from now, it will still be advantageous to continue using mainframes and maintaining legacy systems COBOL?
  • Is there any limitation that makes this migration of COBOL not made? (Ex: Data consistency)
  • At the time that COBOL started to be popular in the business area, there was no other similar language or she is unique that remains alive?
  • 9

    I have absolutely nothing useful to contribute, but whenever I see something related to COBOL I think of a phrase by Oswaldo Santo André: "Who says that Cobol died, watch out! For he suffers the great risk of having his death certificate and the Invoice of his coffin made by a Cobol system"

  • I believe it is because it is costly to upgrade the entire legacy system, not only in cash, but in efforts, resources, time and etc.

  • 5

    There is another saying that ensures the survival of systems made in COBOL: do not try to fix what is not broken.

  • This question does not meet the standards of this site and should be terminated.

  • Interesting discussion, but not pertinent to the philosophy of the site. And look who worked years with COBOL.

  • I see no reason to close, I left open because the question is direct, well-structured and nay has nothing to do with opinion, but with unique and objective answers (The only exception could be the second doubt).

  • 1

    @Andréfigueiredo Editei.

  • 6

    First to answer the question should be answered if the fact is true, COBOL still dominates the corporate market ? What metric ?

  • http://redmonk.com/sogrady/2014/01/22/language-rankings-1-14/ http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html http://www.computerworld.com/slideshow/detail/98085#slide9

  • 3

    Where COBOL is used in Mainframes, COBOL dominates in Mainframes. Where COBOL is not used in Mainframes, it obviously does not dominate. There are no surveys that are not able to reflect this reality is any use to measure anything to do with COBOL. "I’m going to do a survey of all the elements of planet Earth by sampling the atmosphere" Do not be surprised if something, what does not enter the atmosphere is lost.

  • 2

    I was negative on responses based on "achism," as @Billwoodger said: Pessoas que não sabem sobre COBOL, falando sobre COBOL; pessoas que não sabem sobre Mainframes, falando sobre Mainframes. . . . . Historical memory: my first stage was with COBOL, when I decided to abandon Computer Science and do Social Communication.O

Show 7 more comments

7 answers

32


Can anyone else see the problem with that question? People who don’t know about COBOL, talking about COBOL, people who don’t know about mainframes, talking about mainframes.

Let’s divide the "business" more appropriately.

The smaller the company, the less relevant the language, operating system and hardware become.

As we progress to bigger and bigger companies, choices become more important.

In the biggest companies, with a huge amount of things to do, financial transactions, recording huge and varied volume of shares, this kind of thing, with precision and speed: there you will find the existing systems in Mainframes, from IBM, with the programs within these systems running primarily on COBOL. With higher or lower level of "interoperability" with other "things" (other non-mainframe systems, web services, external databases, whatever they may be).

Why is COBOL so fast? Why the attention to this?

Due to the type of language that COBOL is. Fields of fixed length. Arithmetic decimals. Developed many years before the existence of modern theory on programming languages, there is little to protect the programmer. An alphanumeric can be treated as a number, not in the sense that an interpreted language can do, but by consideration by the programmer.

Obviously a more complete description of the language, even without comparisons, would fill at least one book.

Add to this, the IBM mainframe, with fixed or known length records (no record delimiters) and decimal machine instructions available.

Once again, at least one more book.

Add to this the accumulated experience of many years of massive systems.

Add to that... I could go on...

01  BRANCH-TOTAL COMP-3 PIC S9(9)V99.
01  ACCOUNT-TOTAL COMP-3 PIC S9(9)V99.

...

ADD ACCOUNT-TOTAL TO BRANCH-TOTAL

This ADD can (depending on the build options) generate a machine instruction. A machine instruction. Get it? One. No rounding problem. 100% decimal accuracy. On a CPU with a clock speed that anyone could wish for.

Replace a system that is full of this, in a combination of hardware/OS that can run for years without the need for a re-start (IPL), without constant security improvements, and that will run unchanged (even without a re-compilation), in 20-50 years of time, is not a trivial task.

And if anyone faces that task, you better make it right.

Remember, you can’t depend only on the hardware getting faster, because at the same time the business demands more, so the excess capacity/power never really exists (or at least not for long).


COBOL was developed in a partnership between seven major computer manufacturers and the US government (including the military) to provide a standard language on different types of hardware, specifically for business programming.

There were no other languages at that time that functioned this way for commercial purposes. (Each manufacturer had programming systems specific to their often different machine lines, even between their own machines)

Mainframe ownership and operation costs today refer to the amount of processing power involved. The processing capacity is required for the huge amount of transactional processing done.

IBM has development plans for COBOL for the next 50 years (see https://www.youtube.com/watch?v=JLMqkuou2-s). This obviously means that they have development plans for mainframe computers for the same period.

Migrating from Mainframe to other hardware for "back end" processing has no limits, but the replacement system has to be: as accurate as it is; as reliable as it is; no longer costs to maintain; stable for long periods of time ("backward compatibility") - The IBM System/360 architecture, which recently celebrated its 50th anniversary, is still the basis for the current z/Architechture for IBM mainframes. The application programs written 50 years ago still have an exceptionally good chance of working today. It is routine for systems written in the 1970s to still be running today.

A common approach has been to implement new systems on new hardware with new languages, and run existing mainframe systems alongside, looking for opportunities to reduce the mainframe workload as it grows. For these, the Time Trial has not yet been completed.

RPG and its variants is another IBM "long life" language, but it has always been aimed at smaller systems (Mini-computers).

Mainframes (and the systems that run) are still important? Look at IBM’s financial reports. Important sums are still being spent on new hardware and new hardware is still being constantly developed, at a considerable cost. From that, draw the conclusions yourself.

For more information on mainframes, IBM has made all manuals available to the public, and has published a large number of redbooks on various mainframe subjects. For those interested in more research, but without knowledge of Mainframes, this is a good starting point: http://www.redbooks.ibm.com/abstracts/sg246366.html

Apologies for Google Translate


Can anyone see the problem with the Question? People who don’t know about COBOL, Talking about COBOL, people who don’t know about Mainframes, Talking about Mainframes.

Let’s split the "business" up into Something more appropriate.

The smaller a business, the Less Relevant the language, Operating system and hardware become.

As we Progress through Larger and Larger Businesses, the Choices become more Important.

At the very largest of Businesses, with Massive Amounts of Stuff to do, financial transactions, Recording enormous volume and Variety of stock, that type of Thing, accurately and Rapidly: there you’ll find existing systems on Mainframes, from IBM, with the Programs Within those systems being mainly COBOL. With a Greater or Lesser amount of "Interoperability" between other "Things" (other non-Mainframe systems, web services, External Databases, whatever).

Why is COBOL so fast? Why the Attention to that?

Because of the type of language COBOL is. Fixed-length Fields. Decimal arithmatic. Developed Many years before the Existence of Modern Theory on Programming Languages, there is little to Protect the Programmer. An alphanumeric can be treated as a number, not in the sense that an Interpreted language Might do, but by deliberation on the part of the Programmer.

Because there is Lots of Stuff to do, and to do it Within time to Meet the business needs, it has to be done fast.

Obviously a Fuller Description of the language, Let alone comparisons, would Fill at least a book.

Add to that, the IBM Mainframe, with Fixed- or known-length Records (no record delimeters) and decimal machine Instructions available.

Again, at least Another book.

Add to that the cumulative Experience of Many years of Massive systems.

Add to that... I could go on...

01  BRANCH-TOTAL COMP-3 PIC S9(9)V99.
01  ACCOUNT-TOTAL COMP-3 PIC S9(9)V99.

...

ADD ACCOUNT-TOTAL TO BRANCH-TOTAL

That ADD can (Depending on Compile options) generate one machine Instruction. One machine Instruction. Go it? One. No rounding problems at all. 100% decimal Accuracy. On a CPU with a clock speed anyone would Wish for.

To replace a system which is full of that, on a hardware/OS Combination which can run for years without requiring a re-start (IPL), without Constant "security" upgrades, and which will run unchanged (without Even a re-compile) in 20-50 years time, is a non-trivial task.

If that task is Taken on, you’d Better get it right.

Remember, you can’t just rely on hardware Getting Faster, because at the same time the business wants more, so the excess Capacity/power Never really exists (or not for long).


Original, recovered from a "recently closed tab" (Thanks Firefox) and including some minor edits. Please Feel free to Edit google’s Attempt at your language:

COBOL was developed in Partnership between the seven large computer Manufacturers and the US Government (including the Military) to provide a standard language Across Different hardware specifically for business Programming.

There Were no other Languages at the time which would operated in this way (each Manufacturer had specific Programming systems for their Own ranges of machines, often Different Even between their Own ranges) for business purposes.

Costs of Owning and Operating Mainframes Today relate to the amount of Processing power involved. Processing power is required for the Massive amount of Transactional Processing carried out.

IBM has Development plans for COBOL for the next 50 years (see https://www.youtube.com/watch?v=JLMqkuou2-s). This obviously Means they have Development plans for Mainframe Computers for the same period.

Migrating from Mainframe to other hardware for the "back end" Processing has no Limits, but the Replacement system has to be: as Accurate: as Reliable; not more Expensive to run; stable for the Coming Many years ("Backwards compatable") - IBM’s System/360 Architechture, which recently celebrated its 50th Birthday, is the Basis for Today’s z/Architechture for IBM Mainframes. Application Programs Written 50 years ago, still stand an exceptionally good chance of Working Today. It is routine for systems Written in the 1970s to still be Able to run Today.

A common approach has been to implement new systems on new hardware with new Languages, and run the existing Mainframe systems alongside, Looking for Opportunities to reduce the Mainframe Workload as they arise. For These, The Test of Time has not been completed yet.

RPG, and its variants, is Another long-lived IBM language, but that was Always aimed at smaller (Mini-computer) systems.

Are Mainframes (and the systems they run) still Important? Look at IBM’s financial Reports. Considerable Amounts of money are still being Spent on new hardware, and new hardware is still being Constantly developed, at considerable cost. Draw what conclusions you like from that.

For more information on Mainframes, IBM has made all their manuals publicly available, and have Published a large number of Redbooks on Various Mainframe subjects. For those interested in more research, but with no Mainframe background, this one is a good Starting-point: http://www.redbooks.ibm.com/abstracts/sg246366.html

  • at least post the Source from which you removed the text

  • 5

    Sorry, source is my head. You want a reference to some part?

  • I liked your Answer, you have the original? In Portuguese has errors of Agreement

  • 1

    @Brunorozendo updated with original text. A bit Lucky on that...

  • Thank you @Billwoodger

  • 3

    COBOL will outlive Most of us ou COBOL will bury most of us :D

  • A short read and a great view of Cobol and Mainframe as their differences with other platforms. Thanks.

Show 2 more comments

8

A banking institution needs to process an immense amount of data daily, cannot afford the system to be "off the air" from time to time, and needs a correct answer for complex calculations in a predetermined time. For this reason, migrating systems - mainly from one platform to another completely different - is not something that can be done routinely, given its high cost and mainly risk.

I don’t know what modern versions of COBOL look like, but from what I know there is an explicit advantage to using it in the sense that it is able to manipulate the database directly (at least the banks that were designed to interface with this language). Although SQL processing is relatively light in the most common uses, it is still a overhead which makes a difference if you’re eliminated. Not every use of COBOL avoids SQL, of course, and I wouldn’t know what percentage of current systems - if any - still use this technique, but is it known (believed?) that this platform offers a performance beyond the usual in transactional systems.

As for maintaining mainframes, it’s worth remembering that the growing virtualization of servers allowed this platform to be brought into the era of cloud computing: not only is there constant maintenance to this environment but also it has modernized to both support legacy applications, allow new applications in modern languages (not all but some) and even improve COBOL compilers to make these systems even more efficient.

Nowadays a professional who dominates COBOL is hard to find, but on the other hand he is very well paid, so there will always be a percentage of developers who will follow this path. The same goes for Fortran - a language still widely used in science.

Finally, as for the last item, I can’t tell you for sure, but a quick look at "timeline of programming languages" (Wikipedia, in English) I notice that every decade (including ours) arise several new languages, some become popular and others are being forgotten. Certainly the languages of the time were more similar to each other than between them and the languages of today, but sufficiently different as, say, Java and Python. I mean, I believe that it is the case that COBOL is "the only one still alive".

  • Disclaimer: although I have worked with people who have already used COBOL and Fotran extensively, I myself have never done so, so I do not speak from my own experience, but rather what I remember from a third party’s report.

4

It has nothing to do with being preferred or not preferred. What happens a lot is that, imagine your company that has a huge system that does a lot of things and that satisfies you and does not give any problem. Never given data inconsistency, is quick to rescue and/or view the information you need.

A businessman asks himself: What the fuck am I going to change this system for? It is cheaper to buy/develop a new and with new technologies or pay an employee/contractor who can do some small implementations "when" needed?

As much as I’m a programmer, I think this is the vision of entrepreneurs.

  • Being a programmer makes no difference. It is a business case, which should be carefully influenced by the IT department, not by emotion or preference. I got it wrong, and the costs can be enormous. On the other hand, experienced super computers tend to retire or die in the next years :-) This is a factor to take into account.

  • ^_^... So, like I said, "As much as I’m a programmer, I think this is the vision of entrepreneurs." , wanted to make me understand why there are still many systems in COBOL. Because it’s the entrepreneur who pays, not the programmer, analyst, IT manager, etc... So the person in charge of IT is who should analyze, document and present to the entrepreneur the cons and pros of still using it. But it will only depend on this vision/ motivation that the entrepreneur will have and accept the change.

  • Complementing I have this idea of still exist many systems in COBOL for lack of technical knowledge of the entrepreneur, they only understand "numbers", in the majority.

  • 1

    My Portuguese is not enough for nuance. We could be agreeing. We should not take the business into something silent that collapses after five years of development and implementation. Nor should we let such a business dedicate a path without complaining. This is not to say that there is a ready-made solution of one size for all. Do not change. Make the change. Nor does it make sense outside the specific context. That’s why I flagged the question of opinion. Rejected.

3

The cost to maintain mainframes is great, but the migration to a current language is higher?

The cost to maintain mainframes is high, however, mainframe mainframes are known to have "Nine Nines" availability at 99.9999999%. As a customer of a bank, I like to have my money always accessible!

The cost for a migration to a current language depends on enterprise to enterprise and the return on investment of that migration. Additionally, the risk of migrating a system may not compensate for this migration.

Currently it is widely used but 20 years from now, it will still be advantageous to continue using mainframes and maintaining legacy COBOL systems?

Of course it does! There are systems that have code working since 1980 and are still running today!

Are there any limitations that make this COBOL migration not done? (Ex: Data consistency)

Not technically. However, mainframe COBOL uses an encoding that most people don’t know about, which is EBCDIC. As it is a system that only dinosaurs know about (yes, because dinosaurs still exist!), it takes many dinosaurs to migrate a Cobol system!

At the time that COBOL began to be popular in the business area, there was no other similar language or it is unique that remains alive?

I think Fortran is the same height as COBOL, however only dinosaurs know COBOL!

  • IBM has announced, this Month, Version 6 of Enterprise COBOL. This Follows on from V5.2 a year ago, and V5 in 2013. New Mainframes over the last year are the z13, Linuxone, and the z13s (announced this Month). No, it is not just Dinosaurs.

  • I agree with you... I know COBOL and I’m not a dinasaur (at least I think I’m not)! I’m anxious to see Whats new with the Integration between COBOL and Java with V6.

2

COBOL, today, is one of the safest and fastest languages in the business world. I’m not saying that C or JAVA are "fragile", but COBOL, because it doesn’t have as much documentation and material available for consultation (not in the same way as other languages), has become a very interesting tool for security seekers. Contrary to what many think, COBOL is not "outdated" or "dead". Like C, it undergoes constant changes. There is still an evolution in it, even if its syntax is old. Thus, its development, in a way, slow. It did not stop in time. And surely to migrate a whole system, mainly banking, to another language, even when the current one is fulfilling its role, is loss of money and a huge rework without big returns.

At the time that COBOL began to be popular in the business area, there was no other similar language, or it is unique that remains "alive"?

It was created for this purpose, to be a language of banks, commerce, etc.

  • In the long term migration would not be interesting?

  • 1

    I see no need, since it is not stagnant and has been proving every day that passes be safe. If a more efficient language does not emerge I believe they will keep COBOL or use a variation of it for new challenges

  • 3

    -1 because security through obfuscation (in this case, for lack of documentation and material) is not real security. A person with the will to attack a system made in COBOL would not have more difficulties than in the case of systems made in other technologies. In fact, due to precisely the lack of documentation, it is even easier, as it also becomes more expensive for the developers themselves COBOL do something really safe.

  • @Renan I agree, I cited the lack of documentation as a factor that can modify the level of security because the vast majority of "hackers" are tutorial hackers and who do not have the ability to discover something alone. Your comment becomes valid for the 1% that are real hackers.

  • 1

    @brhvitor6 But these tutorial hackers don’t exist, they’re just Script Kiddies.

  • @NULL haha as well, but as I have long attended Heats development forums for games I saw that there are many "developers" who take advantage of dupados (dump) classes/files from other developers more "skilleds" and develop their own programs, for the most part has a reasonable knowledge of C/JAVA/LUA, but does not have a nohall in reverse engineering for example.

  • 2

    @Renan, if you don’t know mainframe security, then please don’t talk about it. If you don’t know mainframe security, you know it’s nonsense. All IBM manuals are available online from IBM. This includes control blocks, security, languages, utilities, databases, communications, everything. All you can think about, and much, much more. Over many releases.

  • 2

    It doesn’t hurt to remember the BOL is language oriented (to) business ...

  • So language is safe because it has little documentation? Hopefully that’s not the reason!

  • "but COBOL, by not having so much documentation and material available for consultation (not in the same way as other languages), has become a very interesting tool for those looking for security." I’m sorry, but you said some really big nonsense. IBM provides a lot of material about the language and the whole mainframe environment. Here at stackoverflow people only talk about what they know and are sure of it. That was a very frivolous statement from someone who doesn’t work with COBOL.

Show 5 more comments

0

Some recent statistics to strengthen the use of COBOL and the Mainframe environment in enterprises:

92 of the 100 largest banks in the world use Cobol/mainframe; 23 of the 25 largest dealers in the world use Cobol/mainframe; All 10 most secure companies in the world use Cobol/mainframe; Cobol/mainframe support 90% of all credit card transactions Cobol/mainframe run 30 billion transactions per day

Before we think about what the ideal technology is, we have to think as consultants, as entrepreneurs. Cost/benefit assessment beyond information security dictates the rule on implementing systems in enterprises.

Another relevant point is that it does not matter the language if the solution is not successful, well applied.

-1

All right, here we go: Initially COBOL is not the preferred language in the business world, because it is an old language, it is widely used in Banks and Financial Institutions. In addition to these segments, the State Infrastructure also using many mainframe languages. Namely: Due to the large volume of data processing, Cobol and other mainframe languages such as Natural, Adabas (both from Softwareag), Cobol, Easytrieve and others have become extremely popular languages. Today it is believed that more than 70% of existing codes in the world are still in some mainframe language. In addition, the "difficulty" in invading a Mainframe environment has also always been too great, giving a "q" of security to bank data. Another factor that makes Cobol and other languages still widely used is the aforementioned fact that there is still a lot of code in this language and the rewriting of these codes would be extremely expensive, and if it is working well, there is no reason to invest in rewriting. Today, through various tools, it is possible to integrate several languages with Mainframe, making this language even more "immortal".

  • 1

    Hello @Andre. Try to structure your answer better, you are very confused for reading.

Browser other questions tagged

You are not signed in. Login or sign up in order to post.