More than 70 years into computing, Moore’s Law keeps on doubling performance of the basic engine of the post-industrial information age. Looking back at this incredible progress makes me wonder, “Who has had the biggest influence on computing since electronic digital computers were designed and built for the first time in the 1940s?” Because I was born about the same time Konrad Zuse and others were building the first digital computers based on Boolean logic (Claude Shannon’s master’s thesis), I am fortunate to have a front-row seat. My first computer ran on vacuum tubes and barely understood ALGOL. But, like many computer scientists, I am myopic, often seeing every advance as something entirely new—the next big thing. In reality, most of it has been done before or is an extension of earlier pioneering work. We should never forget the roots of our profession, and humble programmers should remember who made modern computing.
It is a rare privilege to live through the beginning of a tectonic shift as large as the rise of the computer and the corresponding information age. What was it like to live next to Isaac Newton as he created Newtonian physics from whole cloth, or observe the emergence of the Big Bang Theory over a period of a lifetime? Computing is just as profound, and it emerged as a discipline in my lifetime. My vantage point should make it possible to identify who and what made computing possible.
In part one on the history of computing, I present the evidence and suggest how one might approach the question of “who is big in computing?” Part two will apply a deeper analysis of the social network containing people, places, and things with the greatest influence on modern computing. The results may surprise you.
Who Made Computing?
To answer this question, I constructed the influence network shown in Figure 1 from five impressive sources spanning the past 30 years. Susan Lammers’ Programmers at Work details the rise of personal computing as seen through the lens of the late 1980s. In sharp contrast are the works of Steve Lohr as well as David Shasha and Cathy Lazere, who all expand on and extend the 1980s historical record. Edgar Daylight introduces a controversial idea and European point-of-view of early computing. He argues early pioneers like Edsger Dijkstra, Peter Naur, Niklaus Wirth, and others were largely ignorant of Turing’s work and were more focused on making software easier to build and use. Their pragmatism built computing from the bottom up without the benefit of a theory. Instead, theory had to wait until programmers pushed the envelope. Finally, the most-up-to-date record can be found in Peter Denning and Craig Martel’s Great Principles of Computing—a contemporary work focusing on principles more than people, but with links to the people who invented and innovated their way to modern computing.
The influence network of Figure 1 contains 224 nodes—names, places, and things— and 334 links—ideas and products—partially ordered by year of invention or innovation and arranged from left to right by year. It is a directed network with node A pointing to node B, if A had an influence on B. Directed links represent an upstream influence on a downstream node. In most cases the influence of person A on person B was implied by noting A and B worked together, or in some cases explicitly declared an influence through a product or personal connection. For example, Ken Thompson describes how he was motivated by professor Elwin Berlekamp as a UC Berkeley student, while Bjarne Stroustrup simply declared his “dream language” to be a combination of ALGOL and Simula.
In a handful of cases, I assumed person A was influenced by person B, if A was the teacher and B the student. For example, Butler Lampson taught Charles Simonyi at UC Berkeley in 1967. In one or two instances, funding established an influence link, e.g. ARPA funding. Figure 1 is the culmination of piecing together the people, places, things, and ideas described in the five books referenced above. Clearly, the five books used to build the social network is biased in favor of software, although it contains references to hardware interrupts and bit-mapped displays. [It is entirely possible that someone else could produce a different network from reading the same books, but I claim the differences will be minimal].
The first thing one observes is the network is scale-free. That is, the distribution of node connectivity as measured by node degree—number of links—obeys a long-tailed power law of the form Pr(d) ~ d-q, where d is degree and q is the fractal dimension of the power law. The fractal dimension of the influence network is q = 1.61, and the most-connected (hub) node is “Languages.” Not surprising, since programming languages are fundamental to computing. Scale-free indicates an extreme connection among a few rare nodes—a handful of highly connected nodes hold together the network containing many lesser-connected nodes. John Backus is a hub, for example, because he headed the FORTRAN team of nine, most of whom continued to contribute beyond the FORTRAN development project. Does this mean the highly connected nodes are more important?
If we assume the biggest names in computing are the nodes with the most connections, then the top-10 list follows. Let d be the number of connections:
|Degree, d||Person, place, or thing|
What Makes You Important?
Does having the most links mean a person, place, or thing is the most important? What makes you big in terms of influence? This age old question posed by social scientists remains unanswered and attempts to answer it are controversial. Nonetheless, I will provide an answer—starting with the betweeness analysis shown in Figure 2, and ending with deeper analysis in my next blog. (Stay tuned!)
Betweeness is a social network analysis metric that measures the centrality of a node (and link) due to how many shortest paths run from all nodes to all other nodes and pass through each node/link in turn. An O(n2) algorithm can laboriously count the number of paths from A to B passing through node C, over all pairs of nodes A, B, and then normalize the count to obtain an estimate of betweeness centrality. In Figure 2, links are directional, so only the shortest paths from A to B that obey directionality are counted. I chose to randomly sample 10,000 node pairs and use Dijkstra’s shortest path algorithm to count the number of shortest paths through each node along each directed link. Each node/link count is then normalized by dividing by the largest count.
Why might betweeness centrality tell us who or what is the most influential node/link in Figure 1? One can speculate that influence is measured by how many paths reach, and therefore influence, node A, say, from all other nodes. More paths must mean more influence. If this assumption holds, then the ranking of who or what is the biggest influencer is as follows:
|Normalized betweeness||Person, place, or thing|
Most of this list isn’t surprising, but a few names may be unfamiliar to the reader. Google them! Obviously, there is a first-mover advantage bias in this result. People like Backus, McCarthy, Dijkstra, and Knuth built the foundations that others used and extended. Similarly, FORTRAN and BNF were created early and their influences extended through the decades.
Next time I will dive deeper into this social network in my quest for finding out, “Who is big in computing?” Meanwhile, your comments are welcome.
Who or what do you think has had the greatest impact on computing?
Daylight, E. G., The dawn of software engineering from Turing to Dijkstra. Lonely Scholar bvba,.Belgium, 2012, 239pp.
Denning, P., and Martel, C. H. Great principles of computing. MIT Press, Cambridge, 2015, 302pp.
Lammers, S., Programmers at Work: Interviews with 19 programmers who shaped the computer industry. Microsoft Press, 1986, 1989, 394pp.
Lohr, S. GO TO: The story of math majors, bridge players, engineers, chess wizards, maverick scientists and iconoclasts–the programmers who created the software revolution. Basic Books, 2001, 250pp.
Shasha, D., and Cathy Lazere, Out of their minds: The lives and discoveries of 15 great computer scientist. Copernicus-Springer-Verlag, New York, 1998, 291pp.