Unsorted (for now) list of resources on the design, implementation, and theory of programming languages
- Richard Feldman - Outperforming Imperative with Pure Functional Languages: A talk about the development of a programming language (Roc) and how the creators managed to optimize it.
- Richard Feldman - Why isn't functional programming the norm?: A talk abut the history of programming languages and how we ended up where we are.
- Guy Steele - Growing a Language: A programming-languages talk with an unusual constraint.
- Beautiful Racket - A book about the Racket programming language.
- Real World Haskell - A book about Haskell.
- Learn You a Haskell for Great Good! - Another book about Haskell.
- The Rust Programming Language - An intro to programming in Rust.
- Logical Foundations - An intro to programming in Coq (a "Proof Assistant").
- Learn Prolog Now! - A fast-and-friendly introduction to Prolog (a "Logic Programming" language).
- Learn APL - A gateway into the rabbit-hole of array languages.
- Writing a C compiler in 500 lines of Python: A blog post on someone's approach to writing a simple C compiler in 500 lines of Python. The author holds your hand and walks you through the process of compiler development.
- Alexis King - How to make a Haskell program 5x faster with 16 lines of code: An enlightening journey into the internals of the Glasgow Haskell Compiler.
- Scott Wlaschin - Functional programming design patterns: An introduction and motivation to functional programming.
- Scott Wlaschin - Four Languages from Forty Years Ago: A history of programming languages, focusing on a few languages with the "galaxy-brain seal of approval" (languages that, when you learn them, will make your head explode).
- Rust won't save us, but its ideas will: A blog post that organizes some of the commentary about the Rust programming language from a security perspective.
- A friendly introduction to machine learning compilers and optimizers: A blog post that provides an overview of machine learning compilers and optimizers. Overall a very good article, but the author included a meme about writing models in JavaScript so they can run natively on the browser, which I (Rudy) am ideologically opposed to.
- Expert to Expert: Rich Hickey and Brian Beckman - Inside Clojure: A discussion about the novel ideas used by data structures Clojure.
- How I wrote my own "proper" programming language: An interesting series of blog posts going into excruciating detail about someone's journey of creating their own programming language and compiler for an Oxford senior thesis.
- Tomas Patricek - Build your own Excel 365 in an hour with F#: A live demo showing the expressive power of functional programming.
- Anthony Shaw - Why is Python so slow? (PyCon 2015)
- Why Type Hinting Sucks!: An entertaining reddit post describing why Python type hinting sucks from the perspective of evolving project requirements and code maintenance over time.
- Abstraction, intuition, and the "monad tutorial fallacy": The origin of the legendary "monads are burritos" line.
- A Unified Theory of Garbage Collection: A summary of a research paper proposing fundamental laws about garbage collection based on observations of different types of garbage collectors and trends of object allocation and object lifetimes in different programs. Understanding garbage collection can have interesting performance implications.
- Richard Feldman - Why Static Typing Came Back: A talk about the history of Static vs Dynamic languages, motivations for using both types, and a glimpse into the frontier of language design.
- David Beazley - Python India Keynote: David Beazley writes an entire WebAssembly interpreter in a live-demo.
- David Beazley - Python Concurrency from the Ground Up: A talk on Python concurrency models.
- Ben Deane - Applicative: The Forgotten C++ Functional Pattern: A C++ (!) talk motivating the practical use of functional patterns.
- How Lisp became God's own programming language: A blog post describing the origins and history of Lisp and it's lasting impact on the field of software development.
- Ben Deane - Easy to Use, Hard to Misuse: Declarative Style in C++: A compelling argument for the practicality of "functional" style.
- Ólafur Waage - Learning Rust the wrong way: A non-technical talk about various ideas surrounding learning.