The third edition will be a while coming, though. I'm driving the third edition a lot more from computing education research that we are doing, and that research is informing a lot about the design and even the approach.
Tangentially related, but I have found the PL course [0] on Coursera taught by Dan Grossman to be really high-quality and engaging. Learned a lot from it.
Nothing online, I’m afraid. Most of the best classes I’ve taken were at my brick and mortar small liberal arts college and were not computer science. I’ve also taken plenty online courses that I would call useful, and I’m glad I took them [1]. But Grossman’s is the only online course I’ve taken where I felt like there was a deep pleasure and joy in teaching your brain new and unexpected ways to think.
[1] Sedgwick’s algorithms class (useful and clear, but dry as hell), Martin Odersky’s scala course (solid, but probably a little dated by now), several others not worth mentioning.
Any good recommendations for types, as used by programming languages? Is "Types and Programming Languages" by Pierce still the best intro, even though it's 20 years old?
TAPL remains a go-to text for inducting people into PL. I have absolutely no qualms recommending it, because we still use the techniques it teaches.
It will not teach you to implement a full-blown language with a performant runtime or anything like that. It is absolutely a book about theory. But I don't think any part of it is specifically outdated, except maybe that it does not reference any more modern languages (which is not much of an issue, in my opinion).
> PLAI is designed for upper-level courses that introduce the main ideas of programming languages. In the US, it is designed for students in their second- through fourth-years of college, as well as starting graduate students. However, PLAI has been used with students much younger, including in a few select high school classes.
Good news is the author* is working on a new version.
* https://parentheticallyspeaking.org/about/