Charlie Harvey

Video: Guy Steele’s Growing a Language Talk

I recently chanced across a truly wonderful talk by Guy Steele, one of the creators of the Scheme programming language. He gave the talk at the 1998 ACM OOPSLA conference, but it touches on some timeless themes in communicating with computers.

The talk focusses on the need for us to build languages that can be extended easily by their users. Rather like natural language, programming languages gain utility as it becomes possible to say more things with them. And languages that are popular with users are those that start small and grow with the contributions of those users.

There is a PDF of the talk online. The video is a bit glitchy, but you’ll get a good sense of it.

Steele proposes adding generics, user implemented operator overloading and lightweight user defined types for numbers to Java. He says:

if we add just a few things — generic types, overloaded operators, and user defined types of light weight, for use as numbers and small vectors and such—that are designed to let users make and add things for their own use, I think we can go a long way, and much faster. We need to put tools for language growth in the hands of the users.

Well, Java did get generics in 2004. But you would need to use Scala or Clojure to get the rest of that stuff.

He also makes a good case for how the participatory culture of Free/Open Source software development makes building a successful language easier.

The key point is that in the bazaar style of building a program or designing a language or what you will, the plan can change in real time to meet the needs of those who work on it and use it.


  • Be respectful. You may want to read the comment guidelines before posting.
  • You can use Markdown syntax to format your comments. You can only use level 5 and 6 headings.
  • You can add class="your language" to code blocks to help highlight.js highlight them correctly.

Privacy note: This form will forward your IP address, user agent and referrer to the Akismet, StopForumSpam and Botscout spam filtering services. I don’t log these details. Those services will. I do log everything you type into the form. Full privacy statement.