Lessons from PLI A Most Ambitious Programming Language – Communications of the ACM
Created: 2025-06-13
PL/I stands for Programming Language 1, and its aim was to be the Highlander of programming languages: There would be no need for version 2, 3, or 4 if everything went to plan.
See in context at Lessons from PL/I: A Most Ambitious Programming Language – Communications of the ACM
Created: 2025-06-13
IBM designed PL/I with the goal of bringing together the power of three programming languages: FORTRAN (1954), ALGOL (1958), and COBOL (1959).FORTRAN—The scientific programming language.COBOL—The business programming language.ALGOL—Primarily a research language, but with innovative paradigms and features.
See in context at Lessons from PL/I: A Most Ambitious Programming Language – Communications of the ACM
Created: 2025-06-13
There was an explicit goal for developers to start using PL/I, but also implicit goals for developers not just to stop using FORTRAN, COBOL, and ALGOL directly, but also to convert their existing solutions and codebases to PL/I. Compounding the problem was that FORTRAN, COBOL, and ALGOL were evolving in real time.
See in context at Lessons from PL/I: A Most Ambitious Programming Language – Communications of the ACM
Created: 2025-06-13
a system conversion is one of the most difficult things to do in software engineering. The existing system typically has a massive head start, and the replacing system needs to start up development, accelerate, reach feature parity, and then both systems need to be stable long enough to make the switch.
See in context at Lessons from PL/I: A Most Ambitious Programming Language – Communications of the ACM
Created: 2025-06-13
ALGOL 60—Not commercially successful, but widely used in research and hugely influential in language design. One of the first languages to implement function definitions that could also be called recursively, among other features.
See in context at Lessons from PL/I: A Most Ambitious Programming Language – Communications of the ACM
Created: 2025-06-13
That goal became impossible as both FORTRAN and COBOL kept accelerating. COBOL became the most widely used programming language in the world by 1970, and replacing an existing COBOL system with PL/I was going to be a hard sell to customers. The same could be said of existing FORTRAN systems.
See in context at Lessons from PL/I: A Most Ambitious Programming Language – Communications of the ACM
Created: 2025-06-13
A system conversion is one of the hardest things to do in software engineering, and programming languages are one of the hardest sub-cases as its users are other developers. Exclaiming “we should rebuild it!” is a siren call that is tough to resist, though, as developers love the sight of a clean sheet of paper combined with a big new idea. It’s not wrong to think big, just don’t forget to plan for the conversion of the incumbent system: for every blank sheet of paper used to design the new thing, pull out at least one more for the migration
See in context at Lessons from PL/I: A Most Ambitious Programming Language – Communications of the ACM