Is Java the next COBOL?
- 11 September, 2019 20:00
In our mania for the new, it’s convenient to forget just how long the “old” stays with us. Take COBOL, for example. The venerable programming language turns 60 this month and, as Steven J. Vaughan-Nichols has written, could well “outlive us all.”
Indeed, COBOL offers a great example of the true pace of progress within our industry, while perhaps also offering some clues as to what tomorrow’s COBOLs will be. Java and SQL, anyone? Or perhaps Python?
COBOL the workhorse
Most people reading this post weren’t born in 1959, the year Mary Hawes came up with the idea for COBOL (Common Business-Oriented Language), which Grace Hopper (and others) went on to formalize and promote. Hawes’ goal, as Vaughan-Nichols reminds us, was to create “an English-like vocabulary that could be used across different computers to perform basic business tasks,” a true vendor-neutral language.
While COBOL’s heyday petered out in the 1980s, it continues to power 70 percent of global transaction processing systems, according to Micro Focus (the company that maintains COBOL), in an interview with Vaughan-Nichols. Pulled money from an ATM? You were using COBOL. Paid a mortgage? COBOL. Called a call center? Yep, that was COBOL, too. Even booking your vacation almost certainly relies on COBOL.
COBOL has allegedly been expiring for decades, yet 220 billion lines of COBOL live on in the mainframes of our lives. According to Lero, a software engineering research center, COBOL transactions dwarfed Google searches by 200x in 2014. Will Google ever catch up?
COBOL is more than some dotard living in a mainframe pensioner’s flat. In addition to being easy to read, the language has kept up-to-date with its neighbors. Today COBOL integrates with Docker containers and Java, while running in the cloud or on Linux or Windows, or on just about anywhere on anything. It’s a highly portable language that allows developers to focus on writing their applications while COBOL takes care of the intricacies of the underlying operating system.
Today, the biggest risk to COBOL is that it’s getting harder and harder to find qualified programmers. The language may have decades more to live with us, given the cost and risk of replacing COBOL-based systems with alternatives, but that doesn’t mean developers are growing up dreaming of writing their first COBOL program. It’s a problem, but not one I aim to solve here in this post. (Sorry!)
Instead, reviewing the 60-year history of COBOL got me thinking about today’s languages that could become the “COBOLs” of tomorrow. That is, what are the languages/technologies that will still be puttering around under the hood of a vast array of tomorrow’s tech?
Tomorrow’s COBOL today
It’s hard to predict the future, of course, but there are strong cases to be made for SQL, Python, and Java. Dave Kellogg has for years called SQL the new COBOL. That may be true in terms of longevity and the perception that it’s outdated, but the parallel ultimately peters out. There’s just one COBOL. For all its pretenses of standardization, SQL speaks a different dialect depending on the database provider. While that hasn’t kept SQL from sticking around (and it will assuredly remain relevant for decades to come), it doesn’t quite feel like a COBOL kindred spirit.
Certainly not in the same way Java does.
Java, like COBOL, is relatively easy to read and write. Also like COBOL, Java has maintained its modernity. Every time Java looked like it was fading, something has perked it up. According to Brian Leroux, Android is definitely partially responsible for [Java’s] continued relevance.” A bit later, big data revived Java further. As Nitin Borwankar has highlighted, “Java received [a] second wind due to Hadoop and the whole data science ecosystem including Hive, HBase, Spark, Cassandra, Kafka, and JVM languages such as Groovy and Clojure. All of that is not going away anytime soon.”
Indeed, as with COBOL, one of the primary reasons we’re likely to see Java etched on our headstones is because, as Jonathan Eunice writes, it’s “deployed deeply and widely in critical apps, making it worthy of systematic critique.” The more enterprises embed Java into their most mission-critical apps, the less likely it is to be ripped and replaced for modern alternatives. The cost and risk mitigate against doing so.
In like manner, Python may well prove its staying power. To Lauren Cooney’s mind, Python will endure because it’s a “GSD [get stuff done] language vs. a cool language.” It’s “not fancy.” It “just works.” Importantly, like Java, Python is increasingly foundational to modern data science, among other things, which may well prove to be the transactional workloads of tomorrow that undergird financial systems (which, as mentioned, is a big reason COBOL remains cool today).
Anything else? Well, there’s the not-so-tongue-in-cheek response that maybe COBOL is the future COBOL. As Andrew Oliver puts it, “Years ago I said Java is the COBOL of the future. Everyone looked at me strangely. I think it is the future.”