Could Java really be the next COBOL?
In our obsession with the new, it’s comfortable to forget just how long the “old” stay with us. Take COBOL, for instance. 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 growth within our industry, while possibly 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 even 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 improve. 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 youth petered out in the 1980s, it proceeds to power 70 percent of global transaction processing operations, according to Micro Focus (the company that maintains COBOL), in a conversation with Vaughan-Nichols. Drawn 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 most absolutely relies on COBOL.
COBOL has supposedly been terminating 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 proceedings dwarfed Google searches by 200x in 2014.
Will Google ever catch up?
COBOL is more than some dotard breathing in a mainframe pensioner’s flat. In addition to being easy to read, the language has kept up-to-date with its bystanders. Today COBOL combines 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 manageable language that allows programmers to concentrate on writing their applications while COBOL takes care of the complexities of the underlying operating system.
Today, the greatest risk of COBOL is that it’s getting more difficult to find qualified programmers. The language may have decades more to live with us, given the cost and risk of substituting COBOL-based systems with choices, but that doesn’t mean developers are growing up dreaming of writing their first COBOL program. It’s a puzzle, but not one I aim to solve here in this post. (Sorry!)
Alternatively, examining the 60-year history of COBOL got me imagining today’s languages that could become the “COBOLs” of tomorrow. That is, what are the languages/technologies that will still be poking around under the hood of a vast array of tomorrow’s tech?
Tomorrow’s COBOL today
It’s hard to foretell the future, of course, but there are great cases to be made for SQL, Python, and Java. Dave Kellogg has for years declared SQL the new COBOL. That may be true in terms of durability and the knowledge that it’s outdated, but the parallel ultimately peters out. There’s just one COBOL. For all its claims of regularity, SQL speaks various dialects depending on the database provider. While that hasn’t kept SQL from holding around (and it will assuredly remain relevant for decades to come), it doesn’t quite feel like a COBOL kindred spirit.
Surely not in the same way Java does.
Java, like COBOL, is moderately easy to read and write. Also like COBOL, Java has persevered its modernity. Every time Java looked like it was disappearing, 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 principal reasons we’re likely to see Java etched on our headstones is because, as Jonathan Eunice writes, it’s “deployed profoundly and generally in critical apps, making it worthy of a systematic critique.” The more companies embed Java into their most mission-critical apps, the less likely it is to be split and substituted for modern options. The cost and risk decrease against doing so.
In like manner, Python may well determine its staying power. To Lauren Cooney’s mind, Python will continue 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 economic systems (which, as mentioned, is a big reason COBOL remains cool today).
Anything else? Well, there’s the not-so-tongue-in-cheek answer 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.”