Why are 90% of financial transactions written in Mainframe COBOL?

blureach

Head
Jun 1, 2011
753
9
0
Louisiana
I just read this stat
Amazingly, 75% of the world’s business data, and 90% of financial transactions, are processed in COBOL. There are nearly 200 billion lines of COBOL code in live operation, and around 5 billion lines of new COBOL code are developed each year.
and was curious why this is the case?

Is COBOL the best language for their purposes? What are the better alternatives?

Just trying to understand the macro programming trends
 


I just read this stat

and was curious why this is the case?

Is COBOL the best language for their purposes? What are the better alternatives?

Just trying to understand the macro programming trends

Finance hasn't changed much for hundreds of years. Double-entry accounting, for example, was invented in the 1400's. As such, the computer programs that were written in the 60's and 70's, haven't had much need for change. They were written in the most popular language in the time that met finance requirements, COBOL.

In particular, COBOL, as opposed to other languages available at the time (Pascal, Fortran, etc), supported:

- A specific data type that was good for currency, avoiding the typical trap of trying to use a floating point number (which leads to rounding errors)

- A built in sort of "report formatter" that lined up figures in columns that worked well for printing financial reports.

And, unlike other things that have changed over the years (manufacturing, etc), accounting hasn't...so there's been no need to rewrite the systems in something more modern.
 
Finance hasn't changed much for hundreds of years. Double-entry accounting, for example, was invented in the 1400's. As such, the computer programs that were written in the 60's and 70's, haven't had much need for change. They were written in the most popular language in the time that met finance requirements, COBOL.

In particular, COBOL, as opposed to other languages available at the time (Pascal, Fortran, etc), supported:

- A specific data type that was good for currency, avoiding the typical trap of trying to use a floating point number (which leads to rounding errors)

- A built in sort of "report formatter" that lined up figures in columns that worked well for printing financial reports.

And, unlike other things that have changed over the years (manufacturing, etc), accounting hasn't...so there's been no need to rewrite the systems in something more modern.
Is there any advantage to updating to modern system? If they did update, what would be a suitable upgrade?
 
Is there any advantage to updating to modern system? If they did update, what would be a suitable upgrade?

That's called an ROI (return on investment) study, and would be highly specific to the existing system, and the proposed new system.

Basically someone maps out the 5 year cost of the current system (maintenance contracts, cost of implementing yearly changes to accommodate financial rule changes, etc).

Then if they can show that:

a) the new system, amortized over 5 years, can deliver reduced costs, either through lower operating costs or opportunities to drive revenue (like more accurate client billing, for example)

b) there aren't more lucrative uses for the capital required to deliver it

Then they will typically move ahead. Usually, this is not the case, hence all the old mainframes still running COBOL.
 
It's not just entrenched, legacy systems that are so tightly coupled to other legacy systems making it cheaper to hire expensive, rare COBOL-specialized programmers than rewrite the systems.

Even greenfield multi-million dollar transaction stacks in the financial sector will compile to some COBOL target to maintain talent/mindshare interoperability with the rest of the sector.

It's a systemic thing.
 
Damn I took COBOL 12 years ago in school...shoulda stuck with it.

They got rid of the AS/400 curriculum right after my class. We also had to take a class on websphere from IBM for e-commerce but I never saw anything else about websphere after getting out of school.
 
Because it's safe. Because the existing code works. Because it has millions of hours of testing and execution behind it.

No new code or platform can come close to the reliability of an older system like that.