Every Language Fixes Something

Recent changes
Table of contents
Links to this page


In an essay Paul Graham wrote:

  • Kevin Kelleher suggested an interesting way to compare programming languages: to describe each in terms of the problem it fixes. The surprising thing is how many, and how well, languages can be described this way.

Here is a chart of the resulting dependencies.

Oh, and - added later - the original from PG is undated, but the "enhanced" version below it was on the C2 wiki in 2003/2004 and possibly earlier, so don't for one minute think it's supposed to be up-to-date, or refer to modern version of these languages.

It's not. And it doesn't.

This is not an inheritance graph!

People seem to be assuming that this shows where each language got its features from.

That's a mistake. That's not what it shows.

When a language is developed it's often because the designers were irked by some perceived problem with an existing language. This graph is showing (well, sort of) that dependency. An arrow here does not mean that the target got its features from the source, but that the source had a problem that the target was intended to fix.

There may be very little overlap in language features.

In response to some comments ...

If you don't provide your email address when you submit a suggested change, I can't respond to you. And to the person who said:
  • What about PHP, J#, J++, Turbo Pascal & Fortran? I don't see those in the graphs.
Well, Fortran is there, Turbo Pascal is really just Pascal, I don't know J# or J++, and PHP is being discussed on the Hacker News page: But this isn't intended to be complete. What about INTERCAL? Or Conway's Life? Or BCPL? Or MCPL? There are many, many languages omitted.

It will most likely stay that way.


Here's an enhanced version:




Links on this page

Site hosted by Colin and Rachel Wright:
  • Maths, Design, Juggling, Computing,
  • Embroidery, Proof-reading,
  • and other clever stuff.

Suggest a change ( <-- What does this mean?) / Send me email
Front Page / All pages by date / Site overview / Top of page

Universally Browser Friendly     Quotation from
Tim Berners-Lee
    Valid HTML 3.2!