COBOL turns 50

World’s most pervasive computer language celebrates half a century of usage

When you find yourself standing in front of an ATM waiting for cash, spare a thought for the programming language that powers it all.

Common Business-Oriented Language — widely known as COBOL — has turned 50, but, far from being a dinosaur, it still plays a pivotal role in running most of the world’s businesses and public services.

COBOL is used to power almost all global ATM transactions and runs almost three quarters of the world’s business applications. It helps book hundreds of holidays every single day.

And, according to enterprise application management company, Micro Focus, more than 200 billion lines of COBOL code in existence, with hundreds more being created every single day. And a COBOL programming gig is considered to be one of the safest jobs in IT.

COBOL’s fate was decided during a meeting of the Short Range Committee, the organisation responsible for submitting the first version of the language in 1959. The meeting was convened after a meeting at the Pentagon first laid down the guidelines for the language.

It was based on the philosophy of Rear Admiral Grace Murray Hopper, a US computer scientist and naval officer who pioneered the idea that programs would be written in a language (like English) rather than machine code.

Half a century later, Micro Focus published research which showed people still use COBOL at least 10 times throughout the course of an average working day in Australia. Only 18 per cent of those surveyed, however, had ever actually heard of COBOL.

“COBOL can trace its origins to the very start of the computer age, yet its applications continue to deliver to businesses and the public sector every single day,” said Micro Focus CTO, Stuart McGill. “In an industry constantly driven by innovation and the ‘next big thing’, it is a real testament to the language’s resilience, flexibility and relevance to the task at hand that it is still so widely used today.

“Customers come to us to modernise their business critical applications — not rip them out — because they hold deep business intelligence and continue to deliver value every single day. The vast majority of these applications have been written in mature languages, such as COBOL. Very few languages could make the same claim fifty years on,” concludes McGill.

So happy birthday, COBOL.

Read more from Computerworld's A-Z of programming languages.

Tags a-z of programming languagesprogrammingCOBOL

More about Micro Focus




But it's so horrible to use, you have to write lots of code to do simple things, and get the spacing exact or it doesn't work.
When learning programming in college (
~1990), this was the least attractive language by far.



There is a language that has those flaws and did even less per line of code - ASSEMBLY language which is much better than binary MACHINE language.



Is 50 years of programming misery not enough? Put the language down, fer sake.



Ms. Swan, thank you for alerting us to this, but please consider reviewing English grammar rules. There are two sentences in a row beginning with the word, "and". The first sentence of the forth paragraph is particularly troublesome: "And, according to enterprise application management company, Micro Focus, more than 200 billion lines of COBOL code in existence, with hundreds more being created every single day." I have a pretty good idea of what is meant by this, but only because of the context.
In any event, thanks for the article.



COBOL is a mistake from the beginning. The worst computer language ever. A pain to write, and a huge pain to maintain or fix. Just kill this beast !



I love COBOL. COBOL is so easy to use - very close to the English language. Of course you have to learn the grammar and syntax and put the full stops in the right place. Sadly it just isn't as sexy and quick as the current languages - but obviously far more resilient and resistant to viruses.



COBOL is a wonderful language that met its developers' goals:

--It is portable from one machine platform to another.

--It is self documenting. (Java code can be deciphered? Don't think so.)

--By compiling the source code into an optmized executable module, it runs very efficiently; more so than modern langauges that only get interpreted each time on the fly.

In addition, it's long life has created a cadre of very experienced programmers who know its nuances. Every misktake has already been made, so mistakes are few, the learning curve is over. New languages require starting a entirely new learning curve.



Seems a shame to have an article about 50 years of COBOL and not even mention Rear Admiral Grace Hopper. COBOL's fate may have been "decided" by the Short Range Committee as the article reports, but it was Hopper's inception of the programming language that was being decided upon.

Brian Manahan


Java is portable from one machine to another. And Java not being decipherable is YOUR problem, as millions of people (including myself) have absolutely no trouble working with it, or any C-like language.



I've been a fan of COBOL since my college days in the early 70's.

First job required development of a very large COBOL-based application...and still in use.



I turned 50 3 days ago (!). Quite depressing actually. And now this. It turns out I am OLDER than COBOL. Sigh, my life is over. Goodbye cruel world...



This language lives on only through inertia. You're celebrating a dinosaur that's been on it's last leg for years but won't get killed because there's too much of it lying about generating reports.



obviously an dumb nerd who wrote probably dont even have a clue to what a bit or bite you!



obviously you havent used the language enough to understand the full relhm of Cobol. At least one thing is for sure, when you write something it works. Unlike have of the new unreliable windows crap.



(In addition to inertia,) COBOL is largely alive because it gives the correct accounting answers using decimal arithmetic as an inherent part of the language. I worked at one company where they implemented a business system in C++ and couldn't understand why it gave the wrong answers. They had even implemented a nice object-oriented API around the Oracle API that converted the decimal representation (actually, base 100 internally in Oracle) to floating-point so that could do their computations.

Fred in IT


For all of those that continue to degrade and denigrate COBOL as being verbose, over-engineered and 'replaceable' are doomed to repeat history.

Yes, Cobol is old - 50Years. But was built in an era when Assembler and Machine Code were the norm. As one of the first high-level languages (another being Fortran), it was a marvel for its time.

So, having several columns to start in (COL A, COL B, etc.), limitations on how many characters appeared on a line, line numbers and the like were artifacts introduced due to the technology present.

You didn't write code on a full screen editor. Your wrote on punch cards - one line of code per card (forget your line numbers and drop you deck? Good luck).

Hence the physical limitation to the number of characters - 80. Thank you Mr. Hollerith for that.

Different Cols for starting? Assemblers and machine code did the same to differentiate between the menomic and the address. It also made the compiler easier to develop.

It was also one of the first languages to properly handle base-10 numbers - allowing accurate results with division.

So, before you start bashing COBOL that Java, C or even Pascal - are better, you better have an understanding of what you are talking about. It isn't new or sexy and definitely not good looking. But, for what it does, there is nothing better. If you use Java, C or Pascal it is because you are resting on the shoulders of giants. Specifically, Rear Adm. Grace Hopper.

Terry R. Wagner


COBOL paved the way for many things you do today and don't give a two second thought about. Without COBOL you would not have some of the core structure in Oracle/SQL/MySQL. Without COBOL; BASIC, Visual BASIC and even PASCAL would be lacking. The big two COBOL and FORTRAN provided more to C and other languages than you will ever know. It is portable. I would say it's biggest downfall would be it was exclusively available in Mini and Mainframe computer environments. There are many PC based compilers out there now. With C becoming the dominant language COBOL may fade away. But it will be a long time coming.



A tool is a tool. COBOL will remain in use so long as people find it useful, and it *IS* useful.

It might not be what you're used to, but so much money has been invested into COBOL programs which do these everyday tasks and they work so well that none of them are going to be rewritten unless there is a very compelling reason to do so.



The place I retired from replaced their RPG shop with SAP - what a mess! Needed to hire a bunch of more people and have consultants galore that will probably be there for a long, long time. And what do the users get when they complain about lost information, slow system, and on and on? "IT is what it is!"



From a previous comment: "It isn't new or sexy and definitely not good looking. But, for what it does, there is nothing better. If you use Java, C or Pascal it is because you are resting on the shoulders of giants."

Yes, plenty of newer languages were probably based on it, but to say that COBOL is the best at what it does today?? I have a hard time believing that. All the horrible things you mentioned about COBOL are exactly why so many people hate it so much. All those restrictions about columns and characters and line numbers are leftovers from an ancient past that should have been thrown out long ago. The only excuse for continuing to use it today is that there's so much of it still around that we have no choice. That's a sad thing, not one that should be celebrated. I vowed 25 years ago to never program in it again, and hopefully that's a vow I'll never have to break.

Yes, it's an important historical note in the history of programming languages. But let's not get carried away.



> more than 200 billion lines of COBOL code in existence.

Ehem, I have 3 years experience with a mainframe and many times a program could easily be an SQL select. So it sounds impressive but for a Computer Scientist like me it's more like machine work. The advantage is that mainframes are in big companies and there are lots of things to do in many areas and in many languages, programs, databases and applications. If you are allowed, obviously. And in that sense I was lucky. Never say never again but I would be very inclined to do like the guy who said he would never program in it again. Anyway they are being upgraded thankfully. Sorry guys. The king is dead (COBOL), long live the king (C).

R Casha


Cobol still exists because the banks and other institutions spent ages to get it to work flawlessly and see no good reason to take the trouble (aka money) to replace it with more modern code that does exactly the same thing but must be re-tested and refined and so on.
Banks, hospitals, airlines and other industries which were early adopters of computer systems often adopt the policy that "if it ain't broke, don't fix it". Most airlines today still use a text-terminal based application, even if they have built a graphical interface on top of it. I've worked with some of the top names, interfacing with their products, and underneath the graphical forms and menus it's still translated into text commands and screen-scraping to get the results.



I would rather eat my own vomit than code in COBOL



The point of COBOL was that it was written to solve the relatively simple problems presented by running a business. FORTRAN was for scientific applications.

I have yet to see someone sit down and present the same solution for today. C? Haskell? Lisp? Visual anything? Write a language that even a layman can partially understand at first look and we'll talk.



There are things you can do with less lines of COBOL than lines of C++, believe it or not. This i demonstrated in a Software Engineering class recently (comparing Assembly, COBOL, C++, Java). So the generalization about it being bulky are silly.

By structuring the language into Divisions, Sections, Paragraphs and Sentences, a direct analog to the normal spoken and written languages, COBOL is far more intuitive to learn and above all, to READ. For instance, if coded properly, a non-coder producing documentation for an application can actually understand and follow a COBOL program. Try that with C++.

COBOL lends itself to maintenance and evolution. If coded properly of course. I wrote a cobol-based system for a small company in 1988 and they just called me today to ask for me to help them install it on Windows Vista. When I wrote it, Windows 3.0 wasn't out yet, and I wrote it in DOS, using Btrieve.

21 years later, the company is still using it. I've changed no business logic in 21 years. Only had to fiddle with shortcuts/batchfiles/windows properties to keep it "up to date".

Not too may languages you can say that about.

It's a fallacy btw to bemoan "getting the space right" etc. It depends on the compiler and platform. Newer compilers are far more forgiving and flexible. There's even a and has been for several years.

One more emphasis on the portability. I worked for a company for a decade that specialized in developing custom supply chain software in COBOL for giants like Hewlett-Packard and Sony and Home Depot and QVC and Greyhound-Dial Corp. We learned to code/design in such a way that we could adapt in a matter of days a new version of our base system on any platform, whether Windows, IBM mainframe, HP3000, Vax, whatever the client had at the time. And for any database.

It's those that aren't really computer scientists that have no tolerance for a language that from the very onset was designed to be stable, flexible, evolvable and persistent.



COBOL is portable, provided that you don't use system-dependant extensions, which abound in IBM's world.

I agree that COBOL is readable. With Java, "decipherable" seems apropos.

The language does have it's flaws, though. Look at the obtuse verbs like "inspect... replacing" and other verbs where the verb construct always leaves you looking for a reference book or an example from another program.

I regret that PL/1 was doomed, despite its arrival on COBOL's heels (1965). PL/1 is considerably more concise, but rife with performance issues.

Greg C


"Modern" COBOL compilers are quite flexible. In my case I am referring to the Micro Focus product.

For example, all the old line number and column/position limitations are gone if you set the appropriate compiler directives.

Dynamic memory management is also possible. We have implemented libraries for managing vectors, hashes, etc.

When coded *properly* with modern concepts COBOL "just works". There is an insane amount of bad code out there which is what gives most people such a bad taste. It doesn't really take much more code than any other language for most functions the language was designed for.

A company I work with has its entire ERP system based on COBOL (but developed with a clue). The CEO was at a CEO-level conference and was asked how often his system went down? His answer: "Our system does not go down". And it is true. The other CEO-types were shocked. They were spending big $$$ on SAP-type systems.

Is COBOL dead? Definitely not. Would I write a brand-new system in COBOL? No. But an existing system with no real tangible benefit to the business from a rewrite will continue to be in COBOL for the forseeable future.

Lance Bryant


The good thing about COBOL is that companies can pluck people off the streets, plonk them in front of a computer and they can start coding COBOL.

The bad thing about COBOL is that that is exactly what companies do.



I think you never written a cobol program.Otherwise wont say such comments.

Amanda Cox


I have written in COBOL and in RPG back in the late 1980's and early 1990's. And I miss it, programming is no longer an art form.

Oh and by the way I have a US Navy cap from the USS Hopper - DDG 70. Rear Admiral Hopper was truly an Amazing Grace.

Amanda Cox


I have written in COBOL and in RPG back in the late 1980's and early 1990's. And I miss it, programming is no longer an art form.

Oh and by the way I have a US Navy cap from the USS Hopper - DDG 70. Rear Admiral Hopper was truly an Amazing Grace.



I've been told for over 20 years that COBOL is going away. I've been holding my breath but I've made a living out of COBOL since 1974. I've been writting COBOL programs for 35 years!!! 10 more years and I can retire. My biggest fear now is my job may be outsourced overseas.
Long live COBOL.
Happy Birthday!!!

Erich Darr


I doubt that any of the folks with the negative comments are anywhere near as gifted as Grace Hopper. I had the privilege of attending one of her lectures in the mid-70s. I also doubt that they have to maintain software applications written and modified by others over several decades. I've developed in a number of languages from machine language on up and I've just dealt with the syntax of whatever language I was required to use. These complainers need to learn to become comfortable with whatever language the company they work for requires them to use.



COBOL is King !

Laurence B


There are two threads here: COBOL is so yesterday (or so @#&$!), and COBOL pretty much works.

The first group are intolerant of opinions divergent from their own, are quick to flame, and will probably never rise much above grunt level in any industry (have hoody, will sneer).

The second group revel in their achievements, are slow to change, and many are now managers or even retired (have BMW, will shake on it).

Both groups miss the point. The organisations that are surviving the GFC are incurious about the programming languages that underpin ther success. They simply depend on the best from people and ignore brands, race and religion. Only people really matter.

(And I once was a COBOL programmer...)



For a more readable account of what Grace Hopper did try



I failed in cobol subject in my college days, now its giving food and sheleter to me,

As a programming language, it very easy to use and its very effiecent in file handling technique.



That would be a "byte," oh-you-who-knows-so-much. And we won't get into "an dumb nerd."



COBOL as the name suggests Common Business Oriented Langauge, its imperative that no business can run with out this Dinosaur !



COBOL is just organized. To be force to write on specific columns is retributed when another programer read the sourde code. It is easy to trail the structure, and read the code. Remember that in that time doesnt exist automatic documental procedures to support the develop of a system. So its was important to leave clues along the program for future references.
Another important strenght is the fact that the .dat files couldnt be read if you dont know the structure of the file.
This couple of things justify its strenght and his presence in the bussiness world.

Comments are now closed

Rise of Whatsapp could require regulatory reform: ACMA