1643 |
Blaise Pascal creates a machine that can add and subtract (in other words, a basic calculator) |
1820 |
Charles Babbage invents the Difference Engine, a machine which solves polynomial equations of the form ax2+bx+c to an accuracy of six places. Babbage later develops a specification of the Analytical Engine, a stored program machine to perform any type of arithmetic calculation. |
1830 |
Joseph Jacquard invents the Jacquard loom, which weaves intricately patterned cloth based on instructions contained on punched cards. This is the first stored instruction machine actually built. |
1854 |
George Boole publishes Laws of Thought, which establishes a link between logic and algebra. |
1890 |
Herman Hollerith develops machines for sorting punched cards based on patterns formed by the holes, and for counting or tabulating data from these cards. A company that became IBM buys his patents. |
1930 |
Vannevar Bush completes a prototype of the Differential Analyzer, an analog computer made entirely of mechanical parts. |
1936 |
Alonzo Church suggests “[defining] the notion … of an effectively calculable function of positive integers by identifying it with the notion of a recursive function of positive integers…”, suggesting a precise meaning for the notion of computable functions. Develops the lambda calculus. |
1937 |
Alan Turing publishes the paper “On Computable Numbers, with an Application to the Entsheidungsproblem“, in which he defines computability |
1937 |
Claude Shannon writes “A Symbolic Analysis of Relay and Switching Circuits”, in which he shows that networks of switches can carry out the operations of symbolic logic. |
1940 |
John Atanasoff and Clifford Berry, one of his graduate students at Iowa State University, complete development of an electromechanical computer. |
1945 |
John von Neumann writes a design document for the EDVAC, the first stored-program computer. |
1946 |
ENIAC, the first electronic computer, is demonstrated at the University of Pennsylvania. (specifications) (press release) |
1949 |
Grace Hopper, while a Navy officer working at the Eckart-Mauchley Computer Corporation, leads a group that develops the first compiler. |
1950 |
Under Jay Forrester‘s direction, William Papian built the first magnetic core memory for the Whirlwind computer. |
1953 |
IBM develops the magnetic disk drive. |
1956 |
John Backus leads the team that develops FORTRAN (FORmula TRANslator): the first high level programming language. |
1956 |
John McCarthy hosts a summer workshop on artificial intelligence. |
1958 |
Digital Equipment Corporation introduces the first minicomputer (PDP-8). |
1960 |
J.C.R. Licklider publishes “Man-Computer Symbiosis,” describing that computers should interact and serve humans. This work sets the tone for time-sharing, personal computers, and graphical user interfaces. |
1960 |
John McCarthy develops the LISP language. |
1961 |
Fernando Corbato demonstrates CTSS, the first time-sharing system. |
1962-67 |
Kristen Nygaard and Ole-Johan Dahl develop Simula, the first object-oriented language. |
1964 |
Thomas Kurtz and John Kemeny (Dartmouth) develop BASIC (Beginner’s All-purpose Symbolic Instruction Code) introduced as an easy-to-learn programming language. |
1965 |
Gordon Moore, then at Fairchild Semiconductor, pens an article in Electronics that expresses “Moore’s Law.” |
1965 |
Ted Nelson publishes a paper that coins the word “hypertext” in working on a editor project to link various documents together nonlinearly. |
1967 |
Alan Kay predicts not only personal computers, but that they would be laptop-sized because of Moore’s Law predictions. |
1968 |
Donald Knuth publishes The Art of Computer Programming |
1968 |
J.C.R. Licklider and Robert Taylor publish “The Computer as a Communications Device“, heralding computer networks and the Web. |
1968 |
Douglas Englebart demonstrates the first GUI at the Fall Joint Computer Conference. |
1968 |
Edsger Dijkstra pens his famous letter entitled “GO TO Statement Considered Harmful”, launching the battle against spaghetti code, and introducing the idea of structured programming. |
1969 |
James Ellis proves the possibility of secure key exchange over an insecure channel and the concept of public/private key cryptography. |
1969 |
The ARPAnet comes to life, inspired by Robert Taylor and directed by Larry Roberts. |
1970 |
Ted Codd publishes “A Relational Model of Data for Large Shared Data Banks.” This paper defines relational databases. |
1971 |
Introduction of the first microprocessor, the Intel 4004, containing an entire CPU on a chip. |
1971 |
Niklaus Wirth introduces Pascal, the first strongly typed programming language. Pascal eventually forms the basis for many subsequent languages such as Borland Pascal, Modula-2, and Modula-3. The work of Wirth, Dijkstra, and others forms the foundation of the modern discipline of software engineering. |
1972 |
Xerox Palo Alto Research Center (PARC) develops the Alto, the first computer with a mouse-windows-icons (GUI) interface, Ethernet, and laser printing. Xerox realizes too late what it has. |
1972 |
Ray Tomlinson develops the first networked-based e-mail program and introduces the @ sign in addresses. |
1972 |
Alan Kay, Adele Goldberg, and David Robson (PARC) develop SmallTalk-72, the first truly object-oriented language and operating system. |
1973 |
Bob Metcalfe develops the ideas behind Ethernet, the first non-trivial local area network. |
1973 |
English mathematician Clifford Cocks finds a one-way function to implement James Ellis’s 1969 public cryptography scheme, but does not patent the result because it is a British government secret. |
1974 |
Ken Thompson and Dennis Ritchie produce UNIX and develop the C programming language. The source code to UNIX is part of AT&T’s essentially free distribution. |
1974 |
Vint Cerf and Bob Kahn publish “A Protocol for Packet Network Interconnection”, which describes what is now known as TCP/IP. |
1974 |
Don Chamberlin and Ray Boyce publish “SEQUEL: A Structured English Query Language.” |
1974 |
Charles Simonyi and Butler Lampson (PARC) develop Bravo, a mouse-driven program editor. |
1975 |
Ed Roberts sells the Altair kit computer, the first personal computer. |
1975 |
Frederick P. Brooks, Jr. writes The Mythical Man-Month: Essays on Software Engineering, which exposes the fact that software engineering productivity often deteriorates when more people are added to a project. |
1977 |
Ronald Rivest, Adi Shamir, and Leonard Adleman independently discover and patent Clifford Cocks‘s 1973 method of public key cryptography, which subsequently becomes known as RSA. |
1978 |
Steve Jobs and Steve Wozniak develop the Apple II, the first personal computer with secondary storage capability (floppy disk drive). |
1979 |
Dan Bricklin and Bob Frankston develop VisiCalc, the first spreadsheet package. |
1979 |
Donald Knuth publishes TeX and METAFONT: New Directions in Typesetting, the TeX computer typesetting system. |
1979 |
Carver Mead and Lynn Conway publish Introduction to VLSI Systems, where they propose that CAD be used in the design of computer chips. |
1981 |
IBM debuts the IBM PC, with BASIC and the operating system written by Microsoft. |
1983 |
Bjarne Soustrop introduces C++, bringing objects to C. |
1984 |
Apple introduces the Macintosh, the first personal computer with a graphical user interface. The GUI concept was developed by the Xerox PARC group led by Robert Taylor and Alan Kay. |
1984 |
Richard Stallman founds the GNU Project, dedicated to free software. |
1986 |
X Windows, a platform independent language for expressing graphics over a network, becomes available. |
1991 |
Phil Zimmermann releases the Pretty Good Privacy (PGP) encryption system, an open-source amalgamation of the most effective modern cryptography techniques. |
1991 |
Linus Torvalds completes the first release of Linux, the first open-source operating system. |
1992 |
Tim Berners-Lee interconnects several sites to form the World Wide Web. |
1993 |
Marc Andreessen develops Mosaic, the first web browser with a graphical user interface. He and James Clark soon thereafter found Netscape. |
1995 |
James Gosling leads the effort that produces Java, an interpreted object-oriented language intended to provide a portable software for networked systems. |