Irrational Exuberance!

The Subtle Joys of Generic Methods

December 11, 2008 The object system in Common Lisp has something that almost no one else does: generic methods. Also called multi-methods, these allow a flexible and safe approach to dynamically adding functionality to a class at runtime. It's monkey patching without the monkey. When I write my programming language in a few decades, these are going to be there.

Spoken Languages, Blub, and Convenience

May 25, 2008 A brief essay considering the link between spoken languages and programming languages and Paul Graham's theory of Blub.

Opinionated Programming Languages, The Huddled Masses, and Elitism

January 19, 2008 The Language For Smart People and Language For Masses dichotomy is one that leaves a queasy feeling in my stomach. Just because a distinction has become accepted by the community doesn't mean it is a valid one.

Failure of Implicit Conventions: Determining Function Destructiveness

July 18, 2007 The distinction between destructive and non-destructive methods is important, but most languages rely on unwritten convention to differentiate one from the other. We need to do better than this.