“How the heck did we get here that we literally need COBOL programmers?” asked New Jersey Governor Phil Murphy at a recent press conference.
Faced with an unprecedented number of unemployment applications, the state had to expand its 40-year-old unemployment claims platform immediately — an overhaul that instantly kicked off a frantic search for programmers familiar with the decades-old coding language COBOL.
It’s not just New Jersey that has this problem, though. A lot of the world’s banking, defense, and artificial intelligence systems chug along on programming languages that were in vogue back when Apple was run out of a garage.
The tech industry has an affinity for things that are new and cutting-edge, but if it weren’t for ancient coding languages like COBOL, Ada, Pascal and Fortran, the credit industry, scientific research organizations, and numerous defense systems would come to a screeching halt. In other words, without all this old code, we’d be screwed.
Fifty year-old programming languages are still calculating millions of transactions and stats, and serving as the backbone for systems that the modern world relies on. For example, over 95 percent of ATMs and 40 percent of banks use COBOL code, according to a 2017 Reuters report.
Several of these ancient tabulators still do specific functions very well. There are also a lot of business executives that don’t want to pick apart the time-tested software that’s vital to their company’s business, so instead of overhauling and modernizing, they simply patch old code and hope for the best.
Wrestling with ancient technology isn’t a new phenomenon. For example, California has blown hundreds of millions of dollars trying to update its DMV and payroll technology. Yet the current pandemic and resulting wave of unemployment have illuminated how much of America’s software infrastructure is crumbling like its physical one.
Here are five “vintage” languages our world depends on more than you realize, and why that might make you a little nervous.
If it weren’t for Fortran, many of the supercomputers and models that we use for things like weather prediction, astrophysics, and high-level statistical analysis simply wouldn’t work.
Built by IBM in the 1950s, Fortran (short for Formula Translation) was one of the first high-level languages that used words instead of numbers and made it possible for coders to write programs 500% faster than when using machine code. Not nearly as many developers learn the language today.
“I use Fortran all the time — I just never think about it,” says James Howard, a data scientist at Johns Hopkins Applied Physics Laboratory. While Howard hasn’t programmed in the language for years, his applications regularly access Fortran’s core libraries. Built in the early 70s, they are well-maintained and “blindingly fast.”
The last time Howard had to write a Fortran program was about 10 years ago. He was working at the Federal Reserve and needed to move data between two apps; one that was written in C and the other in Fortran. The programs stopped communicating because the vendor stopped providing the Fortran library.
The 40-something programmer remembered something he’d read as a kid, that the data calling structure for the C programming language is opposite of Fortran’s. He wrote a simple script to flip the order and, voila, the Federal Reserve was back in business.
Government programmers rely on the relatively obscure Ada codebase when developing systems that demand reliability, such as defense and safety systems. What exactly is programmed in it? Well, that’s a bit of a government secret, but NASA and Boeing have both employed Ada-based code in recent years to program satellites and airplanes.
The Department of Defense (DOD) oversaw the development of Ada in the 1970s to reduce the number of programming languages used by the military, which at the time was over 400. Ada was built to be unquestionably reliable in life-or-death situations and fortified against programmer error. Though the language was delivered in 1980, Congress didn’t mandate its use in all government systems until 1995. Two years later, the DOD abandoned the mandate, figuring that it will be cheaper and more flexible to use widely available, up-to-date systems. But it’s still in use today.
Many programmers consider Pascal an almost-dead programming language, but it lives on in several ways. “Believe it or not, it’s still a very popular language in many parts of the world, but in the U.S., you might as well be speaking Latin,” says Dave Hatter, who spent three years at a large insurance company helping to update a million lines of code that estimated what policies cost and how much they paid.
A lot of these older programs were written long before today’s concerns about security breaches and have sensitive proprietary information. Hatter, who now works as a cybersecurity tech, figures the programs may be relatively safe just because of “security by obscurity” — young coders don’t know what to do with decades-old code. “A 15-year-old hacker is going to have no idea how to work with some sort of IBM 390 mainframe with COBOL,” he says. “Now I’m not saying they couldn’t learn. But they’re not going to know.”
Pascal was the basis for an early Apple operating system, and the language’s descendant, Delphi, still has strong proponents. In fact, Skype — one of the first video calling applications to gain widespread popularity and use — was originally written in Delphi.
BASIC isn’t exactly at the top of the list when it comes to languages that people use in 2020, but many of the modern applications we rely on simply wouldn’t exist without it. For example, if you’ve ever programmed an Excel macro, you’ve used a form of BASIC.
Short for Beginner’s All-Purpose Symbolic Instruction Code, BASIC was launched in 1963 at Dartmouth College as a way to teach a general audience the theories and capabilities of programming — a dip in the water before getting into more robust languages like Fortran. The popularity of BASIC rose along with the personal computer — Apple, IBM, and Atari computers all had their versions.
By the mid-1980s, self-taught computer nerds were less jazzed about BASIC and more interested in third-party programs. Then Microsoft launched Visual Basic in 1991, which wasn’t exactly an update of BASIC, but used some the same commands and structure and had a better graphic interface. Then the language was utilized by numerous businesses to write programs big and small. Even though Microsoft has said it stopped support for Visual Basic 6 (the most recent version) in 2008, but the language still has plenty of users. Check the Tiobe Index (which charts the most popular programming languages): VB is still in the top 10!
“I would say over 90% of the people we see have COBOL as a core part of what they’ve written,” estimates Brandon Edenfield, who updates and transitions legacy apps for Modern Systems and has helped revise code for the New York and Singapore stock exchanges. “Any major company that you can think of probably has an unhealthy amount of this stuff.”
COBOL, an acronym for Common Business-Oriented Language, was launched in 1959 geared at data processing tasks like budget tracking, banking transactions, and payroll accounting. The Department of Defense (DOD) originally designed the language as a stopgap project. Then the DOD required computer manufacturers to include COBOL on machines they sold and the language quickly spread over the next few decades. Over 95% of ATMs and 40% of banks still use COBOL code, according to a 2017 Reuters report.
Much of this programming was deployed through mainframe computers and modern systems have moved to the cloud. As New Jersey’s predicament illustrated, the developers who knew how to maintain COBOL code are aging out of the workforce or have already retired.
Companies who modernize these programs typically do so in a few different ways.
“A big systems integrator will throw a bunch of bodies at the code; they’ll sit down, look at it, and rewrite it,” says Edenfield. That approach is often the riskiest, time-consuming and costly. On average, hand-coded, big replatforming jobs can take from 3 to 10 years and can cost hundreds of millions of dollars.
Edenfield recommends automated solutions and says that the first logical step may be just moving the code from an out-of-date version of COBOL to a current one, which would enable many systems to transition to modern servers. He likens a machine update to translating French to English: “The basis of what’s being said is translated perfectly. You just have to fix the syntax of how it’s phrased.” That approach can also bring the time and cost of an update down, he says, somewhere between six and 24 months.
Will it be cheap? Well, it will be cheaper. Modern Systems projects typically range in price from $200,000 to $10 million. A large part of the project, explains Edenfield, isn’t translating the code, but testing to make sure it does everything right.
The reason these updates don’t happen?
“Nobody heard about this before because it’s not a sexy topic, and people don’t usually try to talk about the dirty laundry that they have,” he explains. IT execs also have a habit of kicking the can down the road.
“I will bet you that the state of New Jersey is going to pay attention to this issue now, but I will also bet you that half of their colleagues will think it won’t happen to them, ‘Not me.’”