1. 1843

    The first algorithm — and the first vision of software

    Ada Lovelace

    In her notes on Charles Babbage's Analytical Engine, Lovelace writes what is often called the first published algorithm, and — more remarkably — grasps that such an engine could manipulate not just numbers but any symbols, including music. The machine, she wrote, "weaves algebraic patterns just as the Jacquard loom weaves flowers and leaves."

    History of Programming
  2. 1936

    The universal machine

    Alan Turing

    "On Computable Numbers" defines computation precisely and proves that one universal machine can imitate any other given its description. Software, and the dissolving line between machine and data, begin here — before any electronic computer exists.

    History of Programming
  3. 1945

    As We May Think — the memex

    Vannevar Bush

    In The Atlantic, Bush imagines the memex: a desk that stores all your books and records and links them by associative trails. It is the headwaters of hypertext and of computing as a tool for thought.

    Computing as a Tool for Thinking
  4. 1958

    Lisp and code as data

    John McCarthy

    McCarthy designs Lisp; his 1960 paper introduces the metacircular evaluator — Lisp defined in Lisp. Programs are lists; lists are data; code can write code. Alan Kay would later call eval "the Maxwell's equations of software."

    Languages & Paradigms
  5. 1960

    Man–Computer Symbiosis

    J.C.R. Licklider

    Licklider argues humans and computers should be coupled so tightly they think together, the machine handling the clerical work that merely prepares us to think. As head of ARPA's IPTO, he then funds the future he described.

    Computing as a Tool for Thinking
  6. 1962

    Augmenting Human Intellect

    Douglas Engelbart

    Engelbart lays out a conceptual framework for using computers to raise humanity's collective ability to solve complex problems — intelligence augmentation, not artificial intelligence — and begins building the system to prove it.

    Computing as a Tool for Thinking
  7. 1963

    Sketchpad — direct manipulation is born

    Ivan Sutherland

    Sutherland's MIT thesis lets a user draw with a light pen while the system maintains geometric constraints live. It is the ancestor of the GUI, of direct manipulation, of CAD, and of object-oriented graphics.

    Future of Programming
  8. 1965

    Hypertext gets its name

    Ted Nelson

    Nelson coins "hypertext" and "hypermedia" for non-linear, linked writing, and begins Project Xanadu. His 1974 Computer Lib / Dream Machines becomes a manifesto for the personal, liberating computer.

    Computing as a Tool for Thinking
  9. 1967

    Logo and the turtle

    Papert, Feurzeig & Solomon

    At BBN, Logo is created as a programming language for children. Its turtle turns geometry into something you can do with your body, and quietly introduces children to recursion and procedure.

    Papert & Constructionism
  10. 1968

    The Mother of All Demos

    Douglas Engelbart

    On December 9, Engelbart demonstrates NLS to 1,000 people: the mouse, hypertext, screen editing, windows, version control, and live video collaboration — most of interactive computing, in 90 minutes, in 1968.

    Computing as a Tool for Thinking
  11. 1972

    The Dynabook

    Alan Kay

    Kay describes "A Personal Computer for Children of All Ages" — a notebook-sized dynamic medium for creating, not just consuming. The vision drives the work at Xerox PARC and still indicts the tablets we actually carry.

    Alan Kay & Smalltalk
  12. 1972

    Smalltalk and the big idea of messaging

    Kay, Ingalls & Goldberg

    At PARC, the first Smalltalk runs. Everything is an object; objects communicate only by sending messages; the system is live and malleable to its core. It is object-oriented programming in its original, radical sense.

    Alan Kay & Smalltalk
  13. 1973

    The Xerox Alto

    Xerox PARC

    The Alto brings the bitmapped display, the mouse, the desktop metaphor, and overlapping windows together in one machine running Smalltalk — a working sketch of personal computing a decade before the Macintosh.

    Alan Kay & Smalltalk
  14. 1979

    Notation as a Tool of Thought

    Kenneth Iverson

    In his Turing Award lecture, the inventor of APL argues that good notation doesn't just record thought but amplifies and shapes it — that the right symbols make new thoughts easy to have.

    Computing as a Tool for Thinking
  15. 1979

    The spreadsheet — end-user programming arrives

    Bricklin & Frankston

    VisiCalc turns millions of non-programmers into programmers who never use the word. The most successful end-user programming environment ever built ships as a "killer app" for the personal computer.

    Future of Programming
  16. 1980

    Mindstorms is published

    Seymour Papert

    Papert's Mindstorms: Children, Computers, and Powerful Ideas argues that children can use computers to think about thinking, learn powerful ideas by building, and own a piece of modern technology. The book this site is named for.

    Papert & Constructionism
  17. 1980

    Smalltalk-80 goes out into the world

    Adele Goldberg & the PARC team

    Smalltalk-80 is the version released beyond PARC, spreading the ideas of the live object environment, the class browser, and the integrated development environment to the wider industry.

    Alan Kay & Smalltalk
  18. 1983

    Direct manipulation, named

    Ben Shneiderman

    Shneiderman names and analyses "direct manipulation": continuously visible objects, physical-feeling actions, immediate and reversible effects. It explains why the GUI felt so different — and why programming still mostly doesn't work this way.

    Future of Programming
  19. 1989

    Worse is Better

    Richard Gabriel

    Gabriel names the uncomfortable dynamic by which simpler, uglier designs (C, Unix) outcompete more correct ones by spreading faster — and spends years arguing with himself about whether that's a tragedy.

    Languages & Paradigms
  20. 1991

    The World Wide Web

    Tim Berners-Lee

    Berners-Lee's Web makes hypertext global and ordinary — keeping one-way links and dropping much of Nelson's Xanadu vision, but bootstrapping the largest tool-for-thought, and tool-for-distraction, ever built.

    History of Programming
  21. 2003

    "The computer revolution hasn't happened yet"

    Alan Kay

    Kay receives the Turing Award. In talks around this time he insists the real revolution — the computer as a literacy-grade medium for thought — is still ahead of us, and that the industry mistook the pop-culture version for the thing itself.

    Alan Kay & Smalltalk
  22. 2007

    Scratch

    Mitchel Resnick & MIT Media Lab

    Scratch carries Papert's constructionism to a new generation: a block-based language where children make and share interactive stories, games, and animations. Logo's grandchild, with millions of young authors.

    Papert & Constructionism
  23. 2012

    Inventing on Principle

    Bret Victor

    Victor argues that creators need an immediate connection to what they create, and demos editors where changing the code instantly changes the running result. Live programming finds its sharpest modern voice.

    Future of Programming
  24. 2013

    The Future of Programming

    Bret Victor

    Performing as an engineer in 1973, Victor surveys the radical ideas of early computing and warns that the greatest danger is to forget they were ever open questions — to believe "this is how programming is."

    Future of Programming
  25. 2014

    Dynamicland and the room as computer

    Bret Victor & collaborators

    Victor's research turns toward computing you inhabit physically and socially — programs as paper objects on a table, shared in a room — pushing the tools-for-thought tradition past the glass rectangle.

    Future of Programming