In April 2020, when New Jersey Governor Phil Murphy announced that the state desperately needed volunteers with COBOL skills, the announcement raised a lot of eyebrows. The state's unemployment insurance system got overwhelmed by a surge of COVID-19-related unemployment claims, creating a backlog in processing cases. It ran 40-year-old COBOL applications, and there weren't enough people familiar with what most assumed was an antiquated programming language.
The fact that the system was running apps written in COBOL eclipsed the late unemployment payments in news accounts. IT workers saw it as yet another sign of America's deteriorating infrastructure. To people unfamiliar with the ins and outs of mainframe computing, COBOL was something from the age of the dinosaurs.
The press echoed the sentiment, reporting that not only was COBOL pretty much a dead programming language, but that COBOL programmers were a scarcity because there weren't many still alive who had experience with it.
But COBOL is far from being dead, and not just because it runs some old state-government system. If not today, chances are you've used a COBOL-powered system at least in the last few days.
Even though IBM and the mainframe community pointed out that nearly every credit card purchase or ATM transaction depends on mainframes running applications written in COBOL, the perception was that any COBOL programs still in use are ancient legacy applications that need replacing yesterday.
Not so, says Cameron Seay, who teaches COBOL at East Carolina University in North Carolina and co-chairs the Open Mainframe Project's COBOL Working Group.
"It looks like there's about a billion lines a year of new COBOL code being written," he told DCK. "So yeah, while they are maintaining existing programs, there's still a lot of COBOL development underway. Quite a bit of it."
As for the shortage of programmers that were part of the story, that's not exactly true either. According to Seay, Governor Murphy's problem wasn't a lack of people with COBOL skills, but a lack of COBOL programmers in New Jersey where they were needed.
"There's this myth of a shortage of COBOL programmers -- there really isn't," he said. "There's a lot of people that know COBOL, it's just that there's a geographical issue. But COVID has forced us to address that, so people can now work remotely.
"We will have a shortage of COBOL programers within the next 10 to 15 years, because nobody's teaching it," he added, "but right now we've got plenty. It's just a question of the employers knowing where they are and allowing them to work remotely."
'It Just Works'
While news accounts fed the perception that New Jersey's system fell down because it's antiquated, Seay said that the main problem was that the system wasn't being properly maintained.
"These legacy programs are in constant need of updating and refreshing and extending," he said. "IBM comes out with a new mainframe every two years, and that new mainframe always has added functionality and added features, so the COBOL compiler has to be updated to take advantage of those innovations and the existing code needs to be modified accordingly."
He added that because of COBOL's famous fault tolerance, the software probably didn't show any signs of underlying issues until the onslaught of COVID-related claims led to rapid scaling.
"It's so stable that it just runs in the background and you don't know there's a problem," he said. "Other [programming languages] are problematic. You update the hardware, something breaks, you look at the code, and you've got to either replace it, renew it, rewrite it, or whatever. COBOL just runs, it just works. Very little care and feeding."
"You gotta understand, this stuff has a 60-year longevity, and that 60 years is not like we did it 60 years ago and then left it alone," he added. "It's continually being reviewed, updated, and improved. So you have 60 years of refining both the hardware and the software pieces of these applications. They run pretty well now. They're pretty solid."
Easy to Read, Easy to Learn
COBOL, an acronym for Common Business-Oriented Language, is primarily used in business, finance, and administrative systems for companies and governments. First released in 1959, it's designed to be easy to read by a human, which Seay says makes the language easy for students to grasp.
"COBOL is not a very difficult language to learn," he said. "It's very linear; it's very self-describing. The verbosity that people criticize it for, I think, is one of its strengths. It tells you what it does."
Since the brouhaha in New Jersey last April, there has been a concerted effort to train more COBOL programmers. The Open Mainframe Project now offers a free online training course in addition to having created the new COBOL Working Group that Seay co-chairs, whose mission is "to promote the language by changing its perception and making materials more accessible to help more developers and students learn it on their mainframe journey."
Those wanting to learn COBOL can also take advantage of free courses at IBM, which has skin in the game as the sole remaining mainframe manufacturer. IBM even holds a free annual competition, Master the Mainframe, that Seay recommends to those seeking to learn the language (partly because everyone who signs up gets an account for free access to a mainframe).
"The working group is basically right now providing data and information," Seay said. "Gathering data about how much COBOL is being used, where is it deployed, etc. One of my goals is to get COBOL back in the academic curriculum, because it belongs in academic curriculum. My argument is not that it needs to be everywhere that Java is -- I'm not trying to make that case -- but because COBOL is essential to the global economy. It belongs somewhere in the college curriculum ongoing. So that's one of our goals."
He said that COBOL is hardly taught at all in university computer science programs. The University of North Carolina system, for example, offers COBOL training at only one of its 17 campuses, he said. Because 95 percent of all COBOL runs on mainframes (another thing young students know little about), COBOL is best taught side-by-side with mainframe computing.
"The problem is not a lack of interest among students, it's a lack of knowledge of the platform," he said. "Younger people don't even know what the mainframe is or what it does, so one of my missions is to expose newcomers to mainframe technology and COBOL."
Seay added that learning COBOL can give a career boost to budding programmers. He pointed out that banks and other institutions that rely on the language will move employment applications to the top of the stack when COBOL skills are indicated.
"People need to understand that this stuff is in use," he said. "COBOL is a very important language. It's not dead. It's not dying. It's going to be with us for a while. It's a great way to start your career. You certainly need to learn Python and Java and other languages, but it gives you a something that other folks don't have."