The British computer scientist Christopher Strachey (1916–1975) is frequently cited as having called for an end to an “artificial and injurious” separation of practical and theoretical work in programming. In a widely circulating undated quotation that is taken to encapsulate his philosophy, he condemned the status quo in practice and theory alike: “Much of the practical work done in computing, both in software and in hardware design, is unsound and clumsy because the people who do it have not any clear understanding of the fundamental design principles of their work. Most of the abstract mathematical and theoretical work is sterile because it has no point of contact with real computing.”
Strachey envisioned a science of computing that would transcend this separation, developing rigorous foundations while remaining intimately acquainted with the real computational needs of working scientists. At his celebrated Programming Research Group (PRG) in Oxford he sought to “set up an atmosphere in which this separation cannot happen .” The practice and theory of programming were to be united and mutually strengthening.
Christopher Strachey was a major early advocate of the scientific and mathematical study of programming as object of inquiry in its own right. He belonged to a prominent family situated at the heart of the Bloomsbury group of early twentieth-century intellectuals; the famously irreverent biographer Lytton Strachey (1880–1932) was his uncle. Christopher studied at King’s College Cambridge, worked in radar during the war, and then taught as a schoolmaster. He moved into computing in the early 1950s, working first at the National Research and Development Corporation, then in private consulting, then briefly at Cambridge, and finally at Oxford where he established the Programming Research Group in 1965, with work beginning in earnest the following year. Sadly he died quite suddenly of hepatitis in 1975 at the age of only 58.
Strachey’s papers, held at the Bodleian Library in Oxford, offer a valuable window on his efforts to balance the search for abstract foundations with the day-to-day computational needs of working scientists, and to prevent these potentially divergent orientations from falling out of touch. The tension he identified here is a recurrent one in the history of science and mathematics. In his efforts to end that separation in computing, we see a concrete enactment of the uneasy relationship between ideals of theoretical rigor and practicality, with their disparate activities and competing priorities.
One insight his archives have yielded is the context for that famous condemnation quoted above, which casts it in an interesting new light, namely the light of pedagogy. The quotation tends to be cited in secondhand accounts, reliably traced back to Strachey but with the specific details of time, setting, and purpose lost along the way. In the archives the passage appears in the middle of a longer paragraph in a note dated 6 June 1974, which Strachey sent to prospective graduate students. Viewing Strachey’s programmatic statements in their original context highlights the degree to which his denunciation of the schism between practice and theory was less a question of intellectual commitments than of concrete teaching arrangements.
The discussion of practice and theory is immediately preceded by Strachey’s proud description of the Programming Research Group as “a relatively small, somewhat overcrowded group, physically self-contained and with our own computer. I am convinced that much of the success of the PRG springs from its rather unusual intellectual atmosphere and the high morale which this engenders . Contact between theory and real computing was fundamentally social contact, and ultimately it was social contact between differently-focused individuals within the research group, rather than with researchers outside it, that Strachey deemed most valuable. Practical work, on this view, should not mean sitting side by side with working scientists, collaborating with them on their computer. It meant having a computer dedicated to the science of programming, on which to do practical research, in conversation with more abstractly inclined theorists of computing.
Following the programmatic statements about practice and theory, Strachey segued immediately into describing the activity of the Programming Research Group’s actual graduate students:
Most of our research students have a first degree in mathematics (and generally a very good one); about half of them choose the more practical side to work on, but all use the computer extensively for at least their first year. All the students on the practical side know about the formal semantics and keep up to date with developments on the theoretical side .
Ultimately, what it meant to keep theory in contact with real computing was to keep graduate students in both areas in close contact with one another. Creating the pedagogical environment that made the Programming Research Group what it was required carving it off from the larger university community, keeping everyone together on the same machine and in the same conversations.
Practice without theory, Strachey cautioned, was unsound and clumsy. Theory without practice was sterile. Only by bringing practice and theory, teaching and research, together in an overcrowded and self-contained space with its own computer, could the mathematical study of real computing, as he envisioned it, thrive.
David Dunning is a Postdoctoral Research Associate at the Mathematical Institute in Oxford.