The devutils library

Figures

From ancient philosophers to AI: people, contributions and sources in the history of computing.

119 profiles exploring logic, calculation, machines and software, from antiquity to contemporary computing.

Periods overlap and provide reading signposts. Traditions and teams have their own histories; this directory remains open to additions.

Antiquity — argument and proof

5th century BCE–6th century CE

Aristotle

Aristotle systematized deductive reasoning by studying relations between terms and the forms of syllogisms.

Boethius

Boethius’s Latin logical writings helped transmit ancient logic into medieval intellectual traditions.

Chrysippus of Soli

Chrysippus developed Stoic reasoning about whole propositions joined by connectives. This differs from studying only relations between category terms.

Dignāga

Dignāga developed accounts of inference and argument in Indian Buddhist philosophy, including the wheel of reasons.

Euclid of Alexandria

Euclid organized mathematical propositions and proofs in the Elements. The work became a durable model of systematic mathematical exposition.

Mozi

Mozi’s teachings initiated the Mohist tradition of explicit argument, standards of judgment and debate in ancient China.

Plato

Plato founded the Academy in Athens, where philosophy and mathematics formed part of a shared intellectual setting.

Medieval traditions — logic and calculation

7th–14th centuries

Ibn Sina (Avicenna)

Avicenna revised syllogistic reasoning, including the treatment of modal propositions and their logical relations.

Brahmagupta

Brahmagupta wrote on mathematics and astronomy, including number systems, square-root procedures and quadratic equations.

John Buridan

Buridan developed medieval logic through work on terms, arguments and their use, including his Summulae de dialectica.

Peter Abelard

Abelard wrote commentaries and independent works on dialectic, logic and the philosophy of language.

Ramon Llull

Llull combined symbolic notation with combinatorial diagrams in a project to organize knowledge and support argument.

William of Ockham

Ockham’s Summa of Logic treats terms, propositions and arguments, including modal syllogisms.

Mechanical calculation and recorded data

17th–19th centuries

Ada Lovelace

Lovelace translated an account of Babbage’s Analytical Engine and expanded it with notes explaining its programming possibilities.

Blaise Pascal

Pascal developed the Pascaline, a mechanical calculator associated with his father’s tax-accounting work.

Charles Babbage

Babbage’s calculating engines connect mechanical engineering with the design of programmable calculation.

Gottfried Wilhelm Leibniz

Leibniz worked on mechanical calculation and binary arithmetic, alongside mathematics and philosophy.

Herman Hollerith

Hollerith developed the electric punched-card tabulating system used for the United States census.

Joseph Marie Jacquard

Jacquard developed a loom mechanism in which linked punched cards controlled weaving patterns.

Mathematical logic and computability

19th–20th centuries

Alan Turing

Turing used an abstract machine model to examine computable numbers and the limits of effective procedures.

Alonzo Church

Church developed the lambda calculus and proved an undecidability result for first-order logic.

Claude Shannon

Two connections in Shannon’s work — logic with switching circuits, and probability with communication.

David Hilbert

Hilbert investigated the foundations of geometry through explicit axioms and their relationships. His research ranged across mathematics and physics.

Georg Cantor

Cantor developed set theory and the study of different infinite cardinalities.

George Boole

Boole brought algebraic methods into the study of logic. His mathematical work also included probability and differential equations.

Gottlob Frege

Frege’s Begriffsschrift introduced a formal logical language with implication, negation and universal quantification.

Kurt Gödel

Gödel proved completeness for first-order logic and incompleteness results for formal arithmetic.

Electronic machines, information and components

1930s–1970s

An Wang

Wang patented a pulse-transfer controlling device that contributed to practical magnetic-core memory.

Betty Holberton

Holberton, then Betty Snyder, was one of the six ENIAC programmers.

Clifford Berry

Berry collaborated with John Atanasoff to design and build the Atanasoff-Berry Computer at Iowa State.

Dorothy Vaughan

Vaughan led the segregated West Area Computing unit at NACA and later became an expert FORTRAN programmer.

Federico Faggin

Faggin developed silicon-gate technology and led implementation work on Intel’s MCS-4 chips, working with Masatoshi Shima.

Frances Spence

Spence, then Frances Bilas, was one of the six ENIAC programmers.

Gordon Moore

Moore helped found Fairchild Semiconductor and Intel and described a trend in component integration that became known as Moore’s law.

Howard Aiken

Aiken proposed the automatic calculator that became the Harvard Mark I, designed and built with IBM.

Jack Kilby

Kilby demonstrated circuits whose active and passive elements were formed from semiconductor material at Texas Instruments.

Jay W. Forrester

Forrester developed coincident-current magnetic-core memory while leading the MIT Whirlwind project.

John Vincent Atanasoff

Atanasoff designed and built the Atanasoff-Berry Computer with graduate student Clifford Berry at Iowa State.

John Bardeen

Bardeen investigated semiconductor surface states and developed the point-contact transistor with Walter Brattain at Bell Labs.

John Mauchly

Mauchly co-designed ENIAC with J. Presper Eckert.

John von Neumann

Von Neumann contributed to the logical design of computers and to automata theory, alongside extensive mathematical research.

Katherine Johnson

Johnson performed mathematical analysis and calculations for the United States space program after joining NACA.

Konrad Zuse

Zuse built program-controlled electromechanical computers and developed the early programming language Plankalkül.

Marlyn Meltzer

Meltzer, then Marlyn Wescoff, was one of the six ENIAC programmers.

Mary W. Jackson

Jackson worked in NACA’s West Area Computing section before moving into wind-tunnel research and aeronautical engineering.

Norbert Wiener

Wiener brought together questions of control and communication in cybernetics, alongside mathematical work in probability and related areas.

Richard Hamming

Hamming is associated with error-correcting codes that bear his name.

Robert Noyce

Noyce proposed a monolithic integrated-circuit structure using metal interconnections above an oxide layer, building on Jean Hoerni’s planar process.

Ruth Teitelbaum

Teitelbaum, then Ruth Lichterman, was one of the six ENIAC programmers.

Sergei Lebedev

Lebedev led the team that developed the MESM electronic computer at the Institute of Electrical Engineering in Kyiv.

Walter Brattain

Brattain worked with John Bardeen on the germanium point-contact transistor at Bell Labs.

William Shockley

Shockley organized Bell Labs’ solid-state group and pursued semiconductor amplifier concepts. Bardeen and Brattain achieved the point-contact device within that research setting.

Languages, algorithms and software engineering

1950s onward

Alan Kay

Kay contributed to object-oriented programming, personal computing and graphical interfaces, and led the team that developed Smalltalk.

Barbara Liskov

Liskov developed ideas about data abstraction and modularity and led the team that created CLU.

Bjarne Stroustrup

Stroustrup designed and implemented C++ at Bell Labs, drawing on C and ideas from Simula.

Charles W. Bachman

Bachman developed the Integrated Data Store, a database system using network-oriented data structures.

Dennis Ritchie

Ritchie created the C programming language and co-developed Unix with Ken Thompson at Bell Labs.

Donald E. Knuth

Knuth contributed to the systematic study of algorithms and created the TeX typesetting system.

M. Douglas McIlroy

McIlroy developed the idea of Unix pipes and promoted composing programs from small tools that exchange streams.

Edgar F. Codd

Codd proposed the relational model, organizing data by values and relations rather than navigational storage paths.

Edsger W. Dijkstra

Dijkstra developed a shortest-path algorithm for graphs, a central contribution to algorithm design.

Frederick P. Brooks Jr.

Brooks contributed to computer architecture, operating systems and software engineering, including management of IBM System/360 work and The Mythical Man-Month.

Gary Kildall

Kildall developed CP/M and established Digital Research to develop and market personal-computer software.

Grace Hopper

Hopper worked on early computers and compiler development, including participation in the team behind FLOW-MATIC.

John Backus

Backus led work on FORTRAN and contributed to notation for specifying programming-language syntax.

Ken Thompson

Thompson co-created Unix with Dennis Ritchie at Bell Labs and worked on languages and operating systems including B and Plan 9.

Kristen Nygaard

Nygaard co-designed Simula with Ole-Johan Dahl, helping establish object-oriented programming.

Margaret Hamilton

Hamilton led work on Apollo flight software and contributed to software engineering, with earlier experience on weather and SAGE software.

Niklaus Wirth

Wirth developed programming languages including Pascal, Modula-2 and Oberon, alongside work on programming environments.

Ole-Johan Dahl

Dahl co-designed Simula with Kristen Nygaard, helping establish object-oriented programming.

Peter Naur

Naur contributed to ALGOL 60’s definition, programming-language design and compiler design.

C. A. R. Hoare

Hoare developed Quicksort and contributed to the theory of programming languages.

Interaction, networks, the Web and cryptography

1940s onward

Adi Shamir

Shamir collaborated with Ronald Rivest and Leonard Adleman on practical public-key cryptography.

Robert Kahn

Kahn worked on ARPANET system design and packet switching at BBN and helped initiate open-architecture internetworking.

Butler Lampson

Lampson contributed to networked personal workstations, operating systems, security and document systems, including work on the Alto at Xerox PARC.

Charles P. Thacker

Thacker led hardware development of the Xerox Alto and contributed to networked personal computing.

Douglas Engelbart

Engelbart and his laboratory developed interactive tools including the mouse and NLS, combining text, hypertext and collaboration.

Eric Bina

Bina co-created the Mosaic browser with Marc Andreessen at NCSA.

Ivan Sutherland

Sutherland developed Sketchpad, an interactive graphical system described in his MIT doctoral dissertation.

J. C. R. Licklider

Licklider articulated a vision of globally networked computers and supported interactive computing through his work at ARPA.

Karen Spärck Jones

Spärck Jones researched automatic language processing, document retrieval, summarization and the evaluation of information systems.

Leonard Adleman

Adleman collaborated with Ronald Rivest and Adi Shamir on practical public-key cryptography.

Leslie Lamport

Lamport contributed to the theory and design of distributed and concurrent systems and created the initial LaTeX document preparation system.

Marc Andreessen

Andreessen co-created the Mosaic browser with Eric Bina at NCSA.

Martin Hellman

Hellman co-authored New Directions in Cryptography with Whitfield Diffie and contributed to public-key cryptography alongside Diffie and Ralph Merkle.

Philip Zimmermann

Zimmermann created Pretty Good Privacy (PGP) and made email encryption software available for public use.

Robert Metcalfe

Metcalfe developed Ethernet at Xerox PARC in collaboration with David Boggs.

Robert W. Taylor

Taylor supported research in interactive computing and networking through leadership and funding, including support for Engelbart’s work.

Ronald Rivest

Rivest collaborated with Adi Shamir and Leonard Adleman on practical public-key cryptography.

Shafi Goldwasser

Goldwasser helped establish complexity-based cryptography and methods for efficient proof verification with Silvio Micali.

Silvio Micali

Micali helped establish complexity-based cryptography and methods for efficient proof verification with Shafi Goldwasser.

Ted Nelson

Nelson developed ideas about hypertext and a multimedia publishing system called Xanadu.

Tim Berners-Lee

Berners-Lee developed the World Wide Web at CERN by combining hypertext with Internet communication and resource identifiers.

Vannevar Bush

Bush described the Memex, an imagined microfilm-based system for linking and retrieving documents through associative trails.

Vint Cerf

Cerf co-developed the TCP/IP protocol suite with Robert Kahn and helped guide the development of internetworking.

Whitfield Diffie

Diffie worked with Martin Hellman and Ralph Merkle on public-key cryptography and co-authored New Directions in Cryptography with Hellman.

Personal computing, shared software and AI

1970s onward

Bill Gates

Gates co-founded Microsoft with Paul Allen and led its growth as a software company.

Bob Frankston

Frankston founded Software Arts with Dan Bricklin to develop and sell the VisiCalc spreadsheet for personal computers.

Brendan Gregg

Gregg developed performance-analysis methods and tools, including work on flame graphs and contributions to BPF tracing tools.

Dan Bricklin

Bricklin helped develop the VisiCalc spreadsheet, which gave business users a compelling application for personal computers.

Geoffrey Hinton

Hinton contributed conceptual and engineering advances in deep neural networks, recognized jointly with Bengio and LeCun.

Guido van Rossum

Van Rossum created Python and guided the development of its language and community.

John McCarthy

McCarthy helped establish artificial intelligence as a research field, developed Lisp and proposed ideas for time-sharing.

Larry Page

Page co-authored the paper describing the Google search prototype with Sergey Brin, using hyperlink structure in Web search.

Linus Torvalds

Torvalds created the Linux kernel and coordinated its open-source development with a growing community of contributors.

Paul Allen

Allen co-founded Microsoft with Bill Gates and served as its chief technologist during its early years.

Richard Stallman

Stallman announced the GNU project to build a free operating system and helped establish the free-software movement.

Satoshi Nakamoto

The name Satoshi Nakamoto appears on the Bitcoin paper proposing peer-to-peer electronic cash with proof-of-work transaction ordering.

Sergey Brin

Brin co-authored the paper describing the Google search prototype with Larry Page, using hyperlink structure in Web search.

Sophie Wilson

Wilson worked with Steve Furber on the BBC Micro and ARM architecture, and wrote the BBC BASIC interpreter.

Steve Furber

Furber was a principal designer of the BBC Micro and co-designed the ARM processor with Sophie Wilson at Acorn.

Steve Jobs

Jobs co-founded Apple with Steve Wozniak and later founded NeXT, contributing leadership in personal computing and interface design.

Steve Wozniak

Wozniak designed the Apple I and Apple II and co-founded Apple with Steve Jobs.

Yann LeCun

LeCun contributed conceptual and engineering advances in deep neural networks, recognized jointly with Hinton and Bengio.

Yoshua Bengio

Bengio contributed conceptual and engineering advances in deep neural networks, recognized jointly with Hinton and LeCun.

How to read a profile

Each profile introduces a contribution, its context and sources. Follow the history chapters to explore the ideas and machines further.