openchronology01
Download
Offline browser HTML Desktop · Linux (.deb) Desktop · Linux (.AppImage) Desktop · Rocky / RHEL 10 (.rpm) Desktop · macOS Apple silicon (.dmg) Desktop · macOS Intel (.dmg) Desktop · Windows (.exe) Release notes & all downloads
Browser draft

Timeline controls

New here? The tour shows the main controls one at a time.

CADR Lisp machine, late-1970s design, photographed at the MIT Museum by Daderot; CC0. Historical environment illustration.

A history of untyped foundations and dynamically typed functional programming, centered on Lisp, Scheme, Common Lisp, Racket and Clojure, with a separate teaching track and neighboring Erlang/Elixir and hosted Lisp designs. Gregorian calendar, UTC. Sources checked 3 November 2026.

What “untyped” means here

Untyped lambda calculus does not assign static types to its terms. Lisp-family languages still have distinct runtime values and rules about their use. Dynamically typed is consequently the more precise description for most of these programming languages. They can support functional programming without forbidding mutation, I/O, objects or other effects. Dynamic typing does not require interpretation: Lisp implementations have a long compilation history.

The companion Type theory timeline covers typed foundations more broadly; Haskell history follows a different functional-language branch; Tacit programming explores composition and variable elimination. This timeline keeps those connections without placing every functional language in one implementation family.

Compare the histories

Use Separate by tags for origins, Lisp, MACLISP, Interlisp, Common Lisp, Scheme, Racket, Clojure, ClojureScript, Emacs Lisp, Guile, compilers, standards, closures, continuations, libraries, host platforms and adjacent traditions. Teaching entries are gold; standard/report entries are blue; the Scheme/Racket strand and Clojure strand have distinct colors.

Early Lisp’s symbolic expressions, lists, recursive functions, evaluator and compiler grow into multiple dialects and environments. Common Lisp consolidates selected traditions into a community specification and later an ANSI standard. Scheme develops a compact semantic core and an evolving report series. PLT Scheme grows through an education project and is renamed Racket as its language-building platform expands. Clojure is a newly designed hosted Lisp dialect, not a direct implementation fork of an earlier Lisp. Erlang and Elixir are included as related dynamically typed functional traditions, not mislabeled Scheme or Clojure descendants.

The concept notes explain lexical scope versus static typing, dynamic binding versus dynamic typing, closures, proper tail recursion, continuations, macro hygiene, persistent data, compilation, host integration, concurrency and the limits of treating specs/type hints as mandatory static checking. Racket’s typed and untyped language variants remain distinct. Common Lisp’s optional declarations do not turn the whole family into one statically typed language.

Public teaching material is part of the history

Separate by teaching resources for books, manuals, lectures and public materials, or by coursework for course offerings, workshop records and resource snapshots. Individual tags include SICP, textbooks, lectures, recursion, interpreters, program design and online education.

Resource or teaching traditionWhat is publicly linkedHistorical distinction
SICPMIT-hosted text, lecture recordings, course archive and official video uploadCourse development, textbook editions, 1986 recording and 2009 YouTube upload have separate dates
The Little LISPer / Little Schemer / Seasoned SchemerBibliographic and publisher recordsThese are book milestones; a free full-text copy is not promised
Simply SchemeAuthor-hosted text and teaching contextA gentler Scheme introduction, distinct from the full SICP course
How to Design ProgramsAuthor-maintained complete text and archived editionsDesign recipes and deliberately staged teaching languages
Essentials of Programming LanguagesAuthor-maintained preface, interpreter code, errata and teaching linksThe host language and the languages modeled by the exercises can differ
PLAIAuthor-hosted editions, revisions and associated course materialEdition dates, revision dates and university term dates are distinguished
Berkeley CS 61AOlder Scheme-based course archive and current public Scheme practice resourcesThe main-language transition to Python in 2011 does not erase the older teaching history
Helsinki Clojure MOOCPublic lessons and programming exercisesThe 2014 course identifies earlier university offerings in 2011–2013
ClojureBridgePublic workshop curriculum and project historyThe first workshop is dated separately from the current availability snapshot
UW Programming Languages materialAuthor-hosted notes and exercises for a university/MOOC curriculumThe mixed ML/Racket/Ruby approach is not represented as wholly untyped

MIT’s first-edition SICP preface dates development from 1978 and teaching in its then-present form from fall 1980. The lecture page summarizes the subject as dating from 1981; that discrepancy is retained. The professionally produced HP lectures were recorded in July 1986 and follow the first edition, while the second edition revises many programs and adds material. MIT OCW’s Spring 2005 course label and the official 2009 YouTube upload do not imply that the lectures were recorded in those years.

University course dates identify offerings, not proven first days of web publication. Some old university project URLs now require institutional login; the timeline links openly readable materials and clearly labeled public resource snapshots instead of presenting a login page as a public assignment. Archived text and exercises are separate from active enrollment, grading or account-based services.

Standards, releases and dates

Common Lisp’s 1984 book, 1990 second edition, ANSI standard and HyperSpec are different artifacts. R6RS and R7RS-small are distinct modern Scheme targets; a larger report number does not imply source compatibility with every earlier implementation. The currently hosted R7RS PDF has a 2021 revision date, while the standards site dates the report’s standardization milestone to 2013. The timeline preserves that distinction. SRFI 0’s receipt in November 1998, draft work and final status in May 1999 are also distinct.

Clojure’s creator reproduces an initial availability announcement dated 17 October 2007. The contemporaneous 4 May 2009 Clojure 1.0 announcement is preferred to a later downloads table that labels the release July 2009. The HOPL paper is published in June 2020 and presented at the rescheduled June 2021 conference. At the research cutoff, the official release page distinguishes stable 1.12.6 from the 1.13 development alpha line.

Year-only and month-only evidence uses January 1 or the first day solely as a plotting anchor. Midnight UTC does not assert a historical time of day. Coarse dates have presumptive outlines. Every event identifies its kind: design period, paper, language report, implementation release, textbook, recorded lecture, course offering, upload, workshop or present-day snapshot. Coverage bands are editorial reading guides rather than language lifetimes or support/enrollment windows. This is an extensive selection, not an inventory of every Lisp dialect, runtime release or university class.

Sources and relationships

Sources prioritize original papers and reports, creator histories, standards, release announcements, author-maintained books, university course archives and institutional preservation records. Original publisher/library bibliographic metadata supplies selected book dates. Preserved copies retain the original authorship and publication identity. Author-hosted originals may have later web transcription dates, which are not silently substituted for original publication dates.

Relationship explanations and evidence distinguish documented development or use from conceptual/pedagogic comparisons. An arc between courses is not a claim that one author copied another curriculum. A family comparison does not establish a source-code fork. Concept cards are undated explanations attached to real milestones, not fictitious historical events.

Media credits

The museum photograph of the CADR Lisp machine illustrates the historical computing environment. It does not identify the machine used for every language or course. Later portraits identify McCarthy, Sussman, Steele and Hickey; their capture dates are distinct from the dated events. The five Commons files use individually checked public-domain/Creative Commons terms. Course video availability and book records are kept separate from these image rights. Images are unchanged apart from thumbnail scaling.

Duration correction: Ongoing subjects previously drawn through a present/research cutoff are represented at their original starts, with no end asserted. Existing moments at those coordinates are reused; their attached cards retain the former duration’s notes, sources, tags and media. Bounded historical and coverage intervals remain durations.

88 moments·A local draft, ready to explore
TimelineAll moments
→

Moment details

Separate by tags

Events with any chosen tag move into a track above the rest of the timeline. Nothing is changed or saved.

Shift or scale times

Each time becomes (time − around) × scale + around + offset, exactly, as comparisons align timelines. A duration’s start or end that follows a moment moves with that moment.

Apply to

Search this timeline

    Durations in this view

      Choose a moment

        Pull requests

        Discussion

        Recommend timeline changes

        Your draft becomes a pull request. The upstream timeline stays unchanged until someone with write access merges it.

        Timeline plugins

        Plugin suites

        A suite adds several plugins at once. Plugins this timeline already has stay as they are.

        Create a suite

        Package this timeline's plugins to add them to other timelines at once. The suite carries each plugin's definition, custom plugins included.

        Plugins

        Plugin editor

        Define metadata fields and a restricted render script. No DOM, network, imports, loops or arbitrary calls. Later plugins override earlier effects. Installing takes effect immediately; publishing makes this version public in the server library.

        Plugin library

        Popularity counts public timelines with the plugin enabled.

        Compare timelines

        Select two to eight timelines visible to your account, or add a JSON file.

        Choose a shared time display

        These timelines use different printers or parsers. Choose the display for this comparison. Original times stay unchanged; use scale and offset to align different coordinate conventions.

        Timeline time display

        These settings belong to this timeline and are included in saved files and server copies. Times stay exact.

        Numeric labels are rounded. SI prefixes work best with unit symbols such as s. A Julian year is exactly 365.25 days.

        Displayed value = (stored time − origin) / scale. For Gregorian display, the displayed unit is one second from 1970-01-01T00:00:00Z.

        Preview uses the current window span and viewport width. Custom helpers: hasView(), viewLeft(), viewRight(), viewSpan(), viewWidth(), unitsPerPixel(), labelResolution(), purpose(). Existing printers and parsers can ignore this context.

        New timeline from files

        A moment for each file, dated as you choose. Its source is the file itself: open it from the moment in the file's own app. Nothing is copied, and file paths are never saved to a server.

        Folders and files
          Which files
          Date each moment by
          Metadata

          Servers

          The official server is https://timescale.info. You can connect to your own HTTPS servers too, and sign in to several at once: your timelines from each are listed together. Local .och files work without a connection.

          Your OpenChronology account

          Private timelines, collaborators, and public sharing.

          Registration and account security settings are available on the website.

          Share this timeline.

          Collaborators

          Edits saved meanwhile

          Keep your versions to replace what was saved, or use the saved versions to drop your edits to these. Your other edits are saved either way.

          Delete moment?

          Choose date and time

          Uses this timeline’s time display. Leaving the text unchanged preserves the exact coordinate, even when the display rounds it.