Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

It is still around, although far less used than it once was. Some people use it on IBM mainframes, although COBOL was always more popular. Also saw some usage for applications on OpenVMS

IBM z/OS is mainly written in PL/X, which is a systems programming dialect of PL/I (removing features which are irrelevant to systems programming and adding stuff like inline assembly). So are various other IBM mainframe products like DB2 for z/OS. PL/X was previously known as PL/S, PL/S II, PL/AS. There was also a "PL/X-86" which was a port of PL/X to x86, targeting OS/2, it was used for mainframe service processor code.

Large parts of IBM i are written in a couple of related PL/I dialects, PL/MI and PL/MP. PL/MI is used for code that runs above the virtual machine, PL/MP for code which runs below it. When they switched from CISC to RISC, a lot of the PL/MP code was rewritten in C++, although apparently some of it survives. (Parts of IBM i are also written in Modula 2)

PL.8 is yet another systems programming PL/I dialect. It was developed as part of the compiler for the IBM 801 RISC project. It was the language many of IBM's compilers were written in (not sure if that is still true?). In the earliest versions the AIX kernel was written in a mixture of PL.8 and C, although newer versions all the PL.8 code is gone. It was also used to write firmware for mainframes (and possibly AS/400 aka IBM i too). IBM even built a PL.8 frontend for GCC, but they never officially released it outside of IBM – https://dl.acm.org/doi/10.1147/rd.483.0543

Yet another IBM PL/I dialect is PL/DS which was used for the IBM 8100 and DPPX/370, although that stuff is long dead.

Then there was also Intel / Digital Research PL/M, which was used to write CP/M. (In CP/M 2.x and later, the core of the OS was moved from PL/M to assembly to improve performance, but PL/M was still used for utilities.) I've also heard claims that PL/M was used to write some of the firmware on CISC AS/400 (more specifically, the Service Processor), although not sure how true that is.

And then the defunct Honeywell CP-6 mainframe OS had its own PL/I dialect, PL/6.

PL/I is also apparently what Stratus VOS is written in

The Space Shuttle flight software was written in HAL/S. But the HAL/S compiler, which ran under MVS (later z/OS), was written in a PL/I dialect XPL – https://github.com/virtualagc/virtualagc/tree/master/yaShutt...

Prime Computer's PRIMOS was unusually written in FORTRAN, but in later versions they started using their own PL/I dialect (PL/P) as well

Several airlines used to use a PL/I dialect called SabreTalk (aka PL/TPF), but (apparently) they've since converted all that code to C – http://teampli.net/Sabretalk_Reference_Guide.pdf



Back in the 90s, Object REXX was available on OS/2. I used it to tie a mainframe application on 3270 to SQL calls to update a database for a windows application. Once Object REXX was released on Windows, we moved it off OS/2.

REXX is not PL/I, but very easy to for a PL/I programmer to pick up.

PL/I on the mainframe can be a highly effective application language, but there's a number of features that are ferociously computationally expensive that were acceptable for low volume or one off stuff that had to be avoided by production applications.

COBOL is tedious compared to PL/I. While I had occasion to fix COBOL bugs and performance issues and even taught SQL to COBOL programmers I refused to write COBOL programs.

Then there's Multics PL/I. I did a pilot project to evaluate porting from IBM VM to Multics on Honeywell and discovered a flaky environment. I saved my employer a pile of money by killing that idea. Unfortunately the HW GCOS had to be replaced by a Multics machine which gave no end of problems. Happily that was not my problem.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: