Programming languages

February, 2026

Specification; communication; computation

no, programming isn't dead

Setting the stage

It’s 2026. The LLM hype continues, and amid rounds of layoffs we’re told once again that the end is nigh: programming is dead! Programmers are obsolete! Now, in this golden age of vibe coding, the old dream has been realized: anybody can start programming just by writing plain old English (or, better, Polish) with no need to learn these finicky programming languages or fiddle about with ‘tooling’ or ‘infrastructure’ or ‘type systems’. Twitter is ablaze with tech influencers excitedly showing off the latest PhotoShop clone their agent built while they were in the bath. Conscientious developers are having existential crises over how they aren’t effectively producing software in their sleep like the Internet is telling them that they can.

February, 2023

λ-calculus for programmers

programming language fundamentals

Introduction

If you’ve done much functional programming, you’ve probably heard of the λ-calculus, invented by Alonzo Church in the 1930s. If you haven’t, the term might be quite new to you; but don’t worry, despite the intimidating name the λ-calculus is actually very simple.

January, 2023

Linear types for programmers

reasoning about resources

Introduction

Linear types are an application to type theory of the discipline of linear logic, first described by Jean-Yves Girard (Girard, 1987). Since its inception it has led to many fruitful discoveries in computer science. In this article I hope to explain why it is so interesting, as well as relate it to concrete tools and practices available to programmers today.