History of Computer Science
by Philip Greenspun in September 2000
This timeline is a biased perspective giving weight to computing advances that directly aided collaboration among human beings.
- 1833: Charles Babbage (1792-1871) abandons Difference Engine No. 1, a mechanical calculator. British government losses: 17,470 pounds, enough to purchase two battleships.
- 1839: Babbage resigns his chair at Cambridge to spend full time designing Babbage's Analytical Engine, a steam-powered, general-purpose, mechanical computer. This is the world's first true computer but it was never fabricated.
- 1918: German engineer Arthur Scherbius patents the Enigma cipher machine, 30,000 of which are ultimately sold to the German military.
- 1934: Polish mathematician Marian Rejewski develops "bombe", a mechanical aid to cracking the Enigma cipher
- 1937: English mathematician Alan Turing (1911-1954) publishes "On Computable Numbers" demonstrating that not all mathematical questions are decidable. The paper introduces the idea of a what has come to be called a universal Turing machine.
- 1940: Turing's improved "bombe" (cost: 100,000 pounds) starts working in Bletchley Park, Britain's WWII cryptanalysis center.
- 1943: Mathematician Max Newman and engineer Tommy Flowers build Colossus, a 1500-vacuum tube programmable computer, in aid of the Bletchley Park codebreaking effort. (This prefigured the 1945 ENIAC, developed at University of Pennsylvania, but was kept secret for decades after WWII.)
- 1945: Vannevar Bush publishes "As We May Think" in The Atlantic Monthly, a vision of machines used to aid in information storage and retrieval and to support new systems for disseminating research results.
- 1949: EDSAC started up at Cambridge University in England. The first Von Neumann or "stored-program" machine, where the instructions are stored in the same type of memory as data. Earlier machines, such as ENIAC, relied on reconfiguring a patch panel to change the program.
- 1950: Turing test paper in the journal Mind
- 1952: Alan Turing, the man who did more to save British lives and shorten WWII than any other, prosecuted by the British government for homosexuality. He is tried, convicted, and stripped of his security clearance.
- June 7, 1954: Depressed by his criminal conviction, public humiliation and the forced hormone treatment that made him impotent and obese, Alan Turing eats an apple dipped in cyanide and dies, aged 42.
- 1957: Commercial availability of Fortran, the first high-level programming language, developed at IBM by John Backus.
- 1959: Completion of a practical interpreter for Lisp, the first modern programming language, developed at MIT by John McCarthy. AT&T reject's Paul Baran's proposal for a packet-switched network in which messages would be broken up into discrete packets and mixed during transmission with packets from other messages.
- 1961: Leonard Kleinrock publishes "Information Flow in Large Communication Nets" as an MIT Research Laboratory of Electronics Progress Report. This proposes a packet-switched network.
- 1962: J.C.R. Licklider proposes a "Galactic Network" of globally interconnected computer systems and then leaves MIT to take up a job at the Advanced Research Projects Agency (ARPA), a part of the US Defense Department.
- 1963: The first practical multi-user operating system developed at the MIT. Compatible Time-Sharing Systems (CTTS) supported 32 users at interactive terminals. This is a milestone because most of the first computer-supported collaboration systems were developed for use by simultaneous users logged into the same computer system.
- 1964: Word processor introduced by IBM.
- 1965: First wide-area network. Lawrence Roberts and Thomas Marill hook up a TX-2 at MIT to the SDC Q-32 in Santa Monica, California.
- 1966: Ivan Sutherland and Bob Sproull develop practical virtual reality system with head-mounted display and real-time tracking of user's position and orientation within a room.
- 1968: Douglas Engelbart demonstrates a system built at SRI allowing cooperative work between people in different cities, each person typing on a computer keyboard, drawing with a mouse, talking and listening, and looking at a little inset video picture of the collaborator on the screen. The system included collaboratively developed hypertext, with links being followed by clicking a mouse. Engelbart mentioned that he planned to hook it up to the inchoate ARPAnet so that files could be retrieved from across the network via the mouse.
- 1969: A good year for computer science:
- ARPAnet is established among computers at UCLA, SRI, Santa Barbara and Utah (MIT would join in 1970). Telnet, a remote log-in protocol, is the only available service.
- the collaborative open standards development process of the Request for Comment (RFC) was initiated
- English cryptographer James Ellis proves the possibility of secure key exchange over an insecure channel and the concept of public/private key cryptography. He is unable to come up with a practical implementation because he can't find a one-way mathematical function. Ellis's discoveries are kept secret within the British government's cryptography organization. Cryptography will become a cornerstone of the utility of the Internet.
- Xerox Palo Alto Research Center (PARC) develops Alto, first computer with a mouse-windows-icons interface.
- First email exchange between users of two separate computers and introduction of the @ sign in addresses, achieved by Ray Tomlinson at BBN.
- Ethernet local-area networking system developed at Xerox PARC (see "Ethernet: Distributed Packet Switching for Local Computer Networks" (Metcalfe and Boggs 1976)
- English mathematician Clifford Cocks is assigned the problem of finding a one-way function to implement James Ellis's public cryptography scheme. Within one day he presents a solution based on a secret prime factorization of a large number. The British government keeps the result a secret.
- IBM develops the first relational database management system, System R, based on E.F. Codd's "A Relational Model of Data for Large Shared Data Banks" (1970). The RDBMS would eventually become the key technology for building modern collaborative Web services.
- English mathematician Malcolm Williamson comes up with a practical means of key exchange over insecure channels, the exact system that would eventually become known as "Diffie-Hellman-Merkle" exchange. The British government keeps the result a secret.
- 1975: Stanford researchers Whitfield Diffie, Martin Hellman, and Ralph Merkle independently discover Ellis's idea and Williamson's method of key exchange and publish it.
- 1977: MIT Lab for Computer Science researchers Ronald Rivest, Adi Shamir, and Leonard Adleman independently discover Clifford Cocks's 1973 method of public key cryptography, give it the name "RSA", and patent it. RSA encryption will become the most common building block of secure Internet commerce services.
- 1979: First spreadsheet program (Visicalc) developed by Dan Bricklin (MIT EECS '73) and Bob Frankston (MIT EECS '70). This was the first widespread use of a declarative programming language and initiated the most expansion of programming ever.
- 1980: USENET (Netnews) started up, the first widespread distributed threaded discussion system.
- 1984: Apple Macintosh introduced with significant innovations in stability of user interface via pull-down menus. First consumer-priced machine with a mouse-windows interface.
- 1990: First World Wide Web browser and editor demonstrated by Tim Berners-Lee and team at CERN.
- 1991: Phil Zimmermann releases the Pretty Good Privacy (PGP) encryption system, an open-source amalgamation of the most effective modern cryptography techniques. It is now practical for Internet users to exchange confidential email.
- February 1993: NCSA Mosaic Web browser released. This is the first graphical browser that runs on multiple operating systems. By October, the number of linked Web (HTTP) servers rises to 200.
It is worth noting that the US government persecuted Phil Zimmermann for several years after he released PGP because he released PGP.
-- Paul Walker, September 23, 2000
The title should be "Cool stuff MIT guys did"
-- George Fairbanks, October 22, 2000
Another conclusion one is likely to draw from this page is this:
The British Government did more to stifle Computer Science in the 60s and 70s than Microsoft did during the 90s.
-- Rick Bischoff, December 12, 2000
"John" Baran I think should be Paul Baran. AT&T of course had a communications monopoly at that time based on analog networking and wasn't too receptive to technology requiring a digital network...
-- Paul Epps, January 17, 2001
While we are on the subject of bashing the British government, just think about this: Alan Turing could have lived to see the Internet.
-- Oren Tirosh, March 15, 2001
This list has more to do with engineering than science. The history of engineering useful machines and software may only be about 2 centuries old, but the underlying science is much older.
Nevermind the RSA algorithm, what about inventing the concept of an algorithm itself? The term algorithm is derived from a "Latinised" form of Mohammed ibn Musa al-Kwarizmi, who worked around 825A.D. Euclid's algorithm has been dated circa 300 B.C. [At least that's what my old college notes say ;-) ]
Here are just some profound developments I'd like to acknowledge:
The Hindu-Arabic number system (Why? Try building a calculator that works with Roman numerals.) Would it have been possible to build computers without an inductive number system?
The realisation that 0 is a number Try defining addition and multiplication without the number 0.
Symbolic forms of logic Work by Goedel and others has brought the same kinds of advantages to logic that an inductive number system has brought to arithmetic.
The best discoveries are difficult to appreciate because they have changed the way we think.
-- Dafydd Rees, October 9, 2001
Nothing about Stallman and GNU? GPL as well as the compiler. In a history of Computer Science that is like ignoring the Guttenburg Printing Press in a history of technology. Without GNU how effective would PGP have been for example?
-- Greg morse, May 16, 2002