HOPL: an interactive Roster of Programming Languages

Welcome to HOPL, the History of Programming Languages.

This site is concerned with the idea-historical treatment of the development of programming languages as a means of human expression and creation. In 1976, at the History of Computing Conference in Los Alamos, Richard Hamming described why we might be interested in the history of computing: "we would know what they thought when they did it".

This site is all about why they did it - why people designed and implemented languages and what influenced them when they did so (historically, philosophically, politically as well as theoretically).

This site lists 8512 languages, complete with 17837 bibliographic records featuring 11064 extracts from those references. It is in effect a family tree of languages with 5445 links, making it not only the biggest programming language family tree around, but also one of the largest idea-genealogical projects undertaken.

It has delivered more than 1,720,000 programming languages descriptions in the last 14 months, and is featured as required reading by many university programming language history and design courses. For more about why HOPL is here, there is an introduction, and the rationale for inclusion in the collection is here.

Searching and navigating

advanced search

The site is in the form of a Gernsback machine, a hypernavigable multidimensional facet tree for which the languages, systems, organisations and people are instantiations, and which permits exploration by stepping, flipping, and zooming in and out on any of the points of data. For more information on the theoretical basis of the system, you can read the "Museums and the Web" paper here.

The key to site hyperlink styles:

Information page a page that contains information about a language, machine, person or organisation

Pop-up these appear on the information pages only, and enable stored examples, text extracts, images, to pop out in a small window

Step «‹← →›» Moves you to the next or previous value for the current aspect. If in an information page it can jump to next/previous letter, or first/last record as well

Zoom↑↓↔ Zooms out to a listing page (ie generalise) for the selected value, or in to a listing page (ie constrain) for that value. Above a certain level, a summary page will be shown instead

Flip⊕ Flips you around to a nexus page with a list of peer-languages for that parameter, with a set of steps and zooms appropriate to that facet

External link Opens up the stored link in a new window, as it is outside the HOPL site. NB The material stored in these pages is not under the control of HOPL, so can't be guaranteed to be either accurate or polite


  • thanks and acknowledgements
  • references
  • links
  • Some guided tours (in alpha)
  • Recent additions
  • Analysis and reports
  • Computer language taxonomy and genealogy
  • My favourite languages
  • Dedication and copyright

    The site is dedicated to Jean Sammet, pioneer and visionary, without whose tireless efforts most of this information would have been lost forever.

    Any changes and corrections are welcome and should be addressed to (d.pigott@murdoch.edu.au).

    COPYRIGHT: ©Diarmuid Pigott 1995-2006. Do not copy, do not reproduce! why?