COBOL's youth culture
COBOL isn’t something new. It’s not thought of as something emerging or disruptive. Yet slowly, almost out of necessity, it’s building a youth culture. A new generation is taking hold of the language and starting to chart a path forward.
People often think of COBOL only as part of a distant past, when people drank martinis at lunch and imagined landing on the moon. They focus on the fact that the language was born in 1959, in the middle of the Cold War, when the race to conquer space was just beginning. Back then, the only computers were big mainframes that needed their own rooms. COBOL was built to make it easier for programmers to tell these big, hulking piles of iron what to do.
That was more than six decades ago. While many other languages have come along since then, COBOL continues to live on. It may not find itself in the limelight very often, but the language continues to be an essential part of some of the software running at the core of the biggest banks and corporations. Government agencies, which value long-term stability, also depend heavily on COBOL.
A 2022 report sponsored by Micro Focus (a company that maintains and supports plenty of new COBOL) estimated that there are between 775 billion and 850 billion lines of COBOL code in daily use. For comparison, in 1997, Gartner put that number at just north of 200 billion. COBOL is not shrinking away.
Who’s writing all of those new lines? There are plenty of old and wise developers with decades of experience doing some of the work—but alongside them are some young developers, fresh out of school.
John Stuart is one example. Just 28, he thinks of himself as more of a .NET developer. But lately he’s found himself maintaining a large COBOL application that needs to be connected to modern applications such as business reporting tools, data science systems, and other services. He writes both .NET and COBOL code to add features that work with many of the browsers and operating systems common today.
“I had no experience with COBOL before [my current] job, and I was surprised at how quickly I was able to get in and make my first commit,” said Stuart. “Ultimately, it was just learning a little bit of syntax. I could write sharp code with just a little bit of a different dialect.”
Stuart works with Visual COBOL, a tool from Micro Focus that integrates a COBOL compiler with Microsoft’s .NET. It compiles COBOL code that may be decades old into byte code for modern Java virtual machines (JVMs) or Microsoft’s intermediate language for .NET.
Stuart praises the simplicity of COBOL. After writing some code, he’s begun to understand its historical role as a transaction processor for many companies that were keeping ledgers or tracking assets. It wasn’t built to create multithreaded applications that juggle multiple inputs—and this often makes it more accessible.
“It does exactly what you tell it to do on a line [of code],” explains Stuart. ”Sometimes you get files that are 2,000 lines long, but they’re easy to understand because they simply do what they say they’re doing at that line.”
Dylan Parrish came to work on COBOL software via a similar indirect path. He learned more modern programming languages in college, from which he graduated in 2017. Over the past four years, however, Parrish's job has had him working with an existing COBOL application.
“[COBOL] was totally new to me coming out of college, where I hardly even knew that it existed,” explained Parrish. “I'm sure the word came up in computer history courses, but I didn't really have any exposure to it until I had a job interview where they said, ‘Hey, you're gonna be working with COBOL.’”
Parrish said he grew to enjoy working with different generations of developers. The older ones would teach him the style of coding that was dominant when the language was written. In return, he and some of his younger colleagues would teach them about the best way to connect the aging code to modern clients such as mobile phones or web services.
Newer versions of the language added some modern features such as object-oriented structures, while ensuring that older code could still compile and run without changes. The ISO standard released in 2002, for instance, added the ability to bundle data and code in objects. The standard released in 2014 added more features, such as method overloading.
“My object-oriented experience from college did actually come into play, which lent to an interesting relationship,” said Parrish. “We would get COBOL tips from the more veteran programmers who wrote the original software ... and we were able to teach them about better ways to incorporate objects into that COBOL structure.”
This kind of collaboration may continue long into the future. Many COBOL applications are large; rewriting them isn’t cost-effective—or even necessary.
“Logic doesn't deteriorate,” said Bob England, a COBOL developer and president of England Technical Services. “Until the business rules change, that code is as good as the day it was born.”
That means the companies supporting COBOL stacks will need to continue to bring in young developers—replacing the older generations that are retiring or just moving on. When they do, they’ll follow developers such as Parrish and Stuart in finding ways to bring modern sensibilities to the maintenance of older code.
When asked for advice to give other programmers considering the jump to COBOL, Stuart said, “It's a little bloated—and that's just the nature of any software program that runs for 30 years—but at its core, it's extremely simple. You can follow it. You can debug it just straight down the line and know exactly what it's doing.”
In other words, it’s a modern option for the next generation.