Before servers ran Java, mainframes ran COBOL.
Many mainframes today still run COBOL. Developers simply can't refactor a COBOL app and translate it into Java and run it on a server. Instead, this type of project requires developers to think through the entire business processes that older applications support and understand the complex chain of relationships that connect legacy systems to modern technologies.
The COVID-19 pandemic has accentuated the disconnect between computer history and modern app development. Many government programs, such as unemployment or emergency loan services, require interactions with legacy COBOL systems, and those interactions are often initiated by server-side Java based programs.
Java developers can keep pace with new demands to interact with old environments if they know some COBOL basics. "The increasing demand for COBOL programmers stems from the fact that many of those who have the skills to maintain the applications are retiring," said Mike Duensing, CTO and executive vice president of engineering at Skuid. "New developers want to use the latest coding languages so there is not an interest in learning one that is 60 years old."
Easy but not fun
COBOL was designed to be intelligible for business users when it was first created in 1959. It was one of the first development languages that could run on computers from different vendors. "It's easy to learn COBOL but it is certainly not fun," said Monte Zweben, CEO of Splice Machine.
COBOL was created to be used by businesses, not engineers. As a result, COBOL basic syntax contains English-like instructions. However, the difficult part is understanding how mainframes work and learning to work with a different file system.
Gustavo Pezzi recently left a job lecturing at BPP University in London to start Pikuma, an online education platform. He had firsthand experience of the challenges young programmers encountered as they entered the workforce. Some of his students use COBOL in their daily job at companies like the Royal Bank of Scotland, which heavily relies on COBOL for banking applications.
"Mainframes are not as forgiving as current file systems, and most younger Java programmers are used to taking these details for granted in modern machines," Pezzi said.
While COBOL basics are easy, the real challenge lies in unravelling code that may not have been touched for many years or decades and uses undocumented logic and features. As such, a migration to a new technical program can be a daunting prospect.
That said, there's been an emergence of tools to help automate these migrations. For example, Heirloom Computing has developed cloud-native tooling that can help automatically recompile COBOL apps to Java, but enterprises would still need to provision their legacy Oracle, DB2, IMC databases or VSAM files to something newer. While there are still hurdles to jump over, the migrations are indeed possible.
Each enterprise must balance the need to keep legacy apps running through the crisis with the opportunities to move these to the cloud. There are indeed challenges associated with modernizing COBOL applications, but they are not insurmountable. One day in the future, COBOL will be a thing of the past. But for now, it's not a bad idea for Java programmers to learn some COBOL basics to code around the language.