Blog > Mainframe > Top Mainframe Programming Languages for Mainframe Admins

Top Mainframe Programming Languages for Mainframe Admins

Authors Photo Precisely Editor | November 14, 2022

If you think mainframe programming languages are all relics of the past, think again.

Contrary to popular belief, mainframes remain alive and well, as do the programmers who write code for them. And they’re not programming in archaic languages you’ve never heard of. They’re using a mix of traditional mainframe languages, like COBOL and REXX, alongside more “modern” ones, such as Java and C++.

Here’s a look at the top mainframe languages today.

Identifying top mainframe programming languages

As a disclaimer, let me make clear that the list of mainframe programming languages here shouldn’t be interpreted as a quantitatively definitive ranking of the most popular mainframe coding languages. As far as I can tell, no one has collected data about which mainframe languages have the greatest market share.

Instead, this article draws on several sources that help identify the leading mainframe languages of today, such as this guide to z/OS application programming from IBM and this discussion of mainframe languages from CA Technologies.

With that disclaimer out of the way, let’s take a look at some of the top mainframe programming languages.


COBOL, which is short for Common Business Oriented Language, is the venerable, tried-and-true application programming language of the mainframe world. Born in 1959, it is one of the oldest programming languages still used today.

COBOL has its critics, who complain about things like the use of goto statements and the highly verbose nature of COBOL code. On the other hand, some folks see the latter feature as a benefit, because it improves code readability.

Whatever you think about COBOL, and despite COBOL’s age, it remains a widely used programming language on mainframes, even today. Students may not learn it in Computer Programming 101, but it’s a language you need to know if you want to write code for mainframes.

Read our whitepaper

Getting the Most Out of Your Mainframe

See how to offload, accelerate and lower cost of your mainframe to maximize its value


One language that you are likely to learn in a generic computer programming course, and that you can also use on mainframes, is Java.

Java debuted in the mid-1990s, decades after mainframes became a thing. And Java enjoyed popularity primarily because of its support for virtually any type of operating system, as well as its object-oriented nature.

You know the original Java designers were serious about cross-platform compatibility when they built a language that could create applications for your mainframe just as well as it can for PCs and smartphones. That’s what Java can do, and it’s one of the reasons why it’s a commonly used programming language on z/OS systems.


C is a programming language originally created for use on Unix systems, not mainframes. But C supports virtually everything these days, including z/OS mainframe environments.

For mainframe programmers, that is a good thing. Writing code in C may feel like an ad hoc, seat-of-your-pants type of endeavor — which it basically is, because C was designed as a hacky sort of language for writing applications quickly, rather than elegantly — but code written in C tends to be very fast and flexible.


If you like C but wish it were more orderly, or like Java but wish its code were a little less verbose, you’ll love C++, a programming language that arguably combines the best features of C with the best features of Java.

Like C and Java, C++ is a popular programming language for z/OS today.

Assembler language

Writing assembler code is not on most programmers’ list of a good time. But on mainframes, it is sometimes necessary, which is why Assembler is another important mainframe language to know. It gives you more control over your program than you can achieve with a higher-level language, like COBOL.


Do you want to write code that you don’t have to compile before you can run it? REXX is for you. It’s the leading interpreted language on z/OS. That means you can run REXX code directly on z/OS without having to compile it first – although you can choose to compile it if you want in order to speed execution time.

Any language that runs on Linux

Before closing, it’s worth noting that if your z/OS mainframe does not support your favorite programming language, you can always add a Linux environment to your mainframe, then use that environment to write in any language that Linux supports – which is basically every type of language ever (yes, even COBOL, which you can build for Linux if you want).

So if you pine for Python, Perl or other common Linux languages, there’s a way for you to use them on your mainframe, as long as you don’t mind a little Linux.

Precisely can help you optimize the performance of your mainframe. For more information, check out our whitepaper: Getting the Most Out of Your Mainframe