Unconvincing article. PLT is a theory subject, as it says right in its name. If you're a practitioner and don't get off on theory, you're not going to be designing bleeding edge languages or compilers anyway, so you can stay pretty hip by just using the theory-adjacent stuff that comes out of the research places (example: Haskell). Just like if you're an electrical engineer, you might want to keep up with new kinds of semiconductors, but you don't need to study bleeding edge physics.
If you want to get started on PLT, Harper's PFPL is pretty accessible (https://www.cs.cmu.edu/~rwh/pfpl/). Even Martin-Löf's article on intuitionistic type theory (the one that introduced dependent types) is fairly readable for a PL geek.
I'm unfamiliar with Barendregt's article but it sounds too mathematical by comparison. I.e. by the title I'd classify it as mathematical logic rather than PL. Remeember there were no computers when Alonzo Church invented lambda calculus in the 1920's.
johnecheck · 4h ago
Here's how to justify it:
If you want to talk about something (program), you want the right language. We've got powerful languages capable of everything any computer can do, but new ideas often call for new ways to express them.
Building a language is about accepting massive up-front investment to build something that hopefully meaningfully improves user experience. Or you can build to learn about the inherent beauty of computation and formal languages, but I find that a little less compelling.
If you want to get started on PLT, Harper's PFPL is pretty accessible (https://www.cs.cmu.edu/~rwh/pfpl/). Even Martin-Löf's article on intuitionistic type theory (the one that introduced dependent types) is fairly readable for a PL geek.
I'm unfamiliar with Barendregt's article but it sounds too mathematical by comparison. I.e. by the title I'd classify it as mathematical logic rather than PL. Remeember there were no computers when Alonzo Church invented lambda calculus in the 1920's.
Building a language is about accepting massive up-front investment to build something that hopefully meaningfully improves user experience. Or you can build to learn about the inherent beauty of computation and formal languages, but I find that a little less compelling.