Start here

The legacy modernization guide

A short overview of the whole landscape this site covers: the languages, the people who still run them, the vendors who modernize them, and the terms you'll run into along the way. Everything here links to somewhere deeper.

The eight languages, at a glance

All eight are still in production somewhere. What differs is the buyer: mainframe banking and government for most of them, mid-market IT for a couple, and scientific computing for one that doesn't belong in the same modernization conversation at all.

LanguageRuns onReference entries
COBOLThe batch-processing backbone of global banking and insurance. Still compiling, still running the overnight run.73
RPG (IBM i / AS/400)IBM i shops running RPG II through RPG IV and ILE, with a distinct dialect history under one green-screen roof.72
PL/IIBM's systems-and-business hybrid language, still quietly load-bearing today.70
Assembly / HLASMThe layer everything else on the mainframe ultimately compiles down to.47
PowerBuilderClient/server-era 4GL still running mid-market line-of-business apps.37
Delphi / Object PascalObject Pascal's most durable home, with a small and loyal audience still shipping products on it.75
ColdFusionA platform-decline story rather than a workforce-shortage one. Worth evaluating on its own terms.38
FortranStill the workhorse of HPC and scientific codebases, serving a different buyer entirely.54

Why this is a market, not nostalgia

The global mainframe modernization market alone is estimated at roughly 9 billion dollars in 2026, projected to reach 13.34 billion by 2030. That number exists because two things are true at once: the systems still run the transactions (COBOL alone handles a large share of banking and card processing worldwide), and the people who can safely maintain them are retiring faster than anyone is replacing them. Neither problem is solved by pretending the other one doesn't exist, which is why “just rewrite it” and “just hire more people” are both, individually, incomplete answers.

The four modernization approaches

Rewrite / convert

Translate or rebuild the application in a new language, automated tooling plus review, or a full manual rewrite. Highest cost and risk, but ends the dependency on the old language entirely.

Wrap / expose

Leave the existing code alone; build APIs or interfaces around it so new applications can call into it. Fastest, lowest-risk, but the old code (and its risks) stays exactly where it was.

Managed support

Keep the current platform current: stay on the latest compiler or IDE release, patch security issues, don't otherwise touch it. The right call when the system isn't the problem, the surrounding tooling is.

Staffing

The system and the plan for it are both fine; you just don't have enough people who can safely touch it. Solved with people, not a project.

We track 26 vendors across these four approaches. Find which ones cover your language →

Terms worth knowing

Legacy language
Not a slur, a fact: a language still running production systems that stopped being anyone's default choice for new projects decades ago.
Mainframe
A large, high-throughput computer built for reliable batch and transaction processing, typically IBM Z hardware running z/OS. COBOL, PL/I, RPG, and HLASM code overwhelmingly runs here.
JCL
Job Control Language: the scripting layer that tells the mainframe what programs to run, in what order, against which files. Not itself a general-purpose language.
VSAM
Virtual Storage Access Method: IBM's mainframe file storage system. Most COBOL file status errors trace back to a VSAM state problem, not the COBOL code itself.
CICS
Customer Information Control System: the transaction processing engine most interactive (as opposed to batch) COBOL and PL/I programs run inside on a mainframe.
Abend
Short for abnormal end: a program terminating due to an error, identified by a code like S0C7 or ASRA that names roughly what went wrong.
Modernization
An umbrella term covering four genuinely different approaches: rewrite, wrapper, managed support, and staffing. They are not interchangeable, see below.

Where to go from here