Beginners Guide to PL/I Programming Language

PL/I is a legacy programming language invented by IBM in the early 1960s. The intention was to create a language which would have the scientific computing capabilities of Fortran, and the business data-processing power of COBOL.

A Quick Note on the Name

Many people prefer to call this programming language PL/1. They argue that early typewriters did not have a "1" character and that the capital "I" character was used instead. It is certainly true that whether PL/I or PL/1, the full name of it is Programming Language One. We have used PL/I because it is the more commonly used. Whichever version is used, it should not confuse anyone.

A Brief History of PL/I

PL/I began life as part of an attempt to unify business and scientific computing. In the early 1960s, business computing was being done mostly in COBOL, while developers in science, math, and academia were mostly using Fortran. Even the hardware used by the two communities was different. IBM wanted move everyone onto a common hardware platform (the System/360 ), and wanted a common programming language to go along with it.

The team tasked with creating this common language initially attempted to begin with Fortran and extend it to add the required features from COBOL. This proved unsuccessful, and they began work on a new language altogether, based loosely on ALGOL. The new language was briefly named NPL ("new programming language"), and then MPPL ("Multi-purpose programming language"), and then finally PL/I.

The first description of the language (still called NPL) was released in 1964. The first compiler came out in 1966. In 1967 work began writing a complete specification of the language.

Online Resources

PL/I was a relatively uncommon language even in its heyday. So tracking down good resources for learning and using the language is a little tough. Lucky for you, we've done the hard work and have gathered up the best PL/I resources available.

Tutorials

Video Tutorials

Reference

Historical Materials

If you are working on a legacy PL/I system, it is probable that you won't be working with the latest version of the language. Here some resources detailing several historic versions of the language.

Tools

Books

Should I learn PL/I?

PL/I is a legacy language. Virtually no new development is being done in it. This means that working with PL/I is mostly going to be maintaining old systems, converting old systems to run on new hardware, re-building old systems in modern languages, or building tools to connect old systems with new ones.

Many developers consider working on legacy software systems to be kind of boring. But it can be very rewarding. The companies that still have these systems in place are established companies that usually pay well and provide relatively stable employment. The competition for these jobs is a lot lower, too — there aren't any Coding Bootcamps teaching people how to become mainframe developers in six weeks.

But PL/I, by itself, isn't enough. You'll need to know about the whole ecosystem of legacy and mainframe systems.

  • Other legacy software languages, especially Fortran and COBOL, both of which were used much more extensively than PL/I;
  • Mainframe computing;
  • Contemporary enterprise-level frameworks, especially .NET and Java;
  • System-level languages like C and C++.

PL/I is relatively uncommon compared to either Fortran or COBOL. Therefore, if you are interested in working on legacy mainframe systems, you would probably do well to start with one or both of those languages, and then move on to PL/I if a particular job requires it.


Further Reading and Resources

We have more programming guides, tutorials, and infographics related to coding and software development:

  • Assembly Language Introduction: whether you are using it directly and learning it just to understand what is really going on at the hardware level, assembly language is a great thing to know.
  • Fortran Resources: learn all about arguably the first high level computer language that is still in use today.
  • COBOL Introduction and Resources: more strictly a legacy language, there is still huge amounts of COBOL code in use.

What Code Should You Learn?

Confused about what programming language you should learn to code in? Check out our infographic, What Code Should You Learn? It not only discusses different aspects of the languages, it answers important questions such as, "How much money will I make programming Java for a living?"