Skip to main content

Software as Science—Science as Software

  • Conference paper
History of Computing: Software Issues

Abstract

Software should be of great interest to historians of science. That may seem strange, given that it is of such recent origin. Software is no older than the modern electronic computer and the activity of writing programs for it. It is still experiencing growing pains. Yet, over the past fifty years, it has become the subject of its own thriving science and a ubiquitous medium for pursuing other sciences. In both instances software represents a new kind of science. It is what Herbert Simon calls a “science of the artificial.”2 There is nothing natural about software or any science of software. Programs exist only because we write them, we write them only because we have built computers on which to run them, and the programs we write ultimately reflect the structures of those computers. Computers are artifacts, programs are artifacts, and models of the world created by programs are artifacts. Hence, any science about any of these must be a science of a world of our own making rather than of a world presented to us by nature.3 What makes it both challenging and intriguing is that those two worlds meet in the physical computer, which enacts a program in the world. Their encounter has posed new and difficult epistemological questions concerning what we can know both about the workings of the models and about the relation of the models to the phenomena they purport to represent or simulate. Answers to those questions would seem to depend, at least in part, on understanding programs as dynamic systems.

I don’t really understand the title, Computer Science. I guess I don’t understand science very well; I’m an engineer. Computers are worth thinking about and talking about and doing about only because they are useful devices, which do something for somebody. If you are just interested in contemplating the abstract, I would strongly recommend the belly button, which would survive any war that man survives.

John R. Pierce1

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info
Hardcover Book
USD 54.99
Price excludes VAT (USA)
  • Durable hardcover edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Keynote Address, Conference on Academic and Related Research Programs in Computing Science, 5–8 June 1967; publ. in University Education in Computing Science, ed. Aaron Finerman (New York, 1968), 7. Renowned for his work in information theory, Pierce at the time was Executive Director of Research, Communications Sciences Division, Bell Telephone Laboratories.

    Google Scholar 

  2. Herbert Simon, The Sciences of the Artificial (Cambridge, Mass., 1969; 2nded. 1981, 3rded. 1996).

    Google Scholar 

  3. Let me leave aside for the moment questions about how much “nature” ever presents itself to us directly.

    Google Scholar 

  4. Marvin Minsky, “Form and Content in Computer Science” (1969 Turing Award), ACM Turing Award Lectures: The First Twenty Years, 1966–1985 (New York, 1987), 219–42.

    Google Scholar 

  5. Allan Newell and Herbert Simon, “Computer Science as Empirical Inquiry: Symbols and Search” (1975 Turing Award), ACM Turing Award Lectures, 287–313. Newell and Simon had earlier joined with Alan Perlis in taking a similar position in “What is Computer Science?” a Letter to the Editor of Science 157 (22 September 1967): 1373–4.

    Google Scholar 

  6. Peter Wegner, “Three Computer Cultures: Computer Technology, Computer Mathematics, and Computer Science,” Advances in Computers 10 (1970): 7–78.

    Article  Google Scholar 

  7. Forsythe, in American Mathematical Monthly 75/5 (1968): 454–62; Pierce, in Finerman, 24.

    Google Scholar 

  8. The Turing Award is considered the ACM’s highest honor. “It is given to an individual selected for contributions of a technical nature made to the computing community. The contributions should be of lasting and major technical importance to the computer field.” (http://www.acm.org/awards/taward.html). A look at the list shows that “technical” has usually (but not always) been construed as “theoretical,” indeed “mathematical.”

    Google Scholar 

  9. Michael S. Mahoney, “Computer Science: The Search for a Mathematical Theory,” in Science in the 20th Century, ed. John Krige and Dominique Pestre (Amsterdam, 1997), Chap. 31.

    Google Scholar 

  10. It is curious that to this day the community distinguishes between computer science and theoretical computer science, as if the former involves some kind of science other than theoretical science. It is not clear what that other kind of science might be nor what is scientific about it.

    Google Scholar 

  11. Michael S. Mahoney, “Computer Science,” see also “The Structures of Computation,” in The First ComputersHistories and Architectures, ed. Raul Rojas and Ulf Hashagen (Cambridge, Mass., 2000), 17–31.

    Google Scholar 

  12. For this and other examples of feedback from computer science to mathematics, see Garrett Birkhoff, “The Role of Modern Algebra in Computing,” Computers in Algebra in Number Theory (Providence, R. I., 1971), 1–47. For a discussion of the changes in the mathematics curriculum prompted by computer science

    Google Scholar 

  13. see Anthony Ralston, “Computer Science, Mathematics, and the Undergraduate Curriculum in Both,” American Mathematical Monthly 81/7 (1981): 472–85.

    Article  MathSciNet  Google Scholar 

  14. See, for example, Garrett Birkhoff and Thomas C. Bartee, Modern Applied Algebra (New York, 1970)

    MATH  Google Scholar 

  15. Rudolf Lidl and Gunter Pilz, Applied Abstract Algebra (New York, 1984)

    Book  MATH  Google Scholar 

  16. Andrea Asperti, Categories, Types, and Structures: An Introduction to Category Theory for the Working Computer Scientist (Cambridge, Mass., 1991).

    MATH  Google Scholar 

  17. See W. Fontana and Leo W. Buss, “The Barrier of Objects: From Dynamical Systems to Bounded Organizations,” in Boundaries and Barriers, ed. J. Casti and A. Karlqvist (Reading, Mass., 1996), 56–116.

    Google Scholar 

  18. The proceedings of the Conference were published in CACM 7/2 (1964): 51–136; see in particular the “Summary Remarks” by Saul Gorn and the “General Discussion” that followed, pp. 133–6.

    Google Scholar 

  19. Such differences shine through the protocols of the Software Engineering Conferences at Garmisch and Rome. People differed about what it would mean to make the subject scientific, about the extent to which one can do so, about the importance of trying to make it so, about the means for achieving that goal. They had different agendas.

    Google Scholar 

  20. Not all agendas have converged on the current configuration. For example, Ershov and other Russian computer scientists took their own approach to a science of software but did so in relative isolation from research in the West. To the historian, this independent line of development offers an opportunity for comparisons and contrasts, and holds out the possibility of linking agendas to the political, social, and economic context within which they take shape. See, for example, Andrei P. Ershov, Origins of Programming: Discourses on Methodology (New York, 1990)

    Book  MATH  Google Scholar 

  21. Ershov and M. R. Shura-Bura, “The Early Development of Programming in the USSR,” in A History of Computing in the Twentieth Century, ed. N. Metropolis et al. (New York, 1978), 137–96

    Google Scholar 

  22. R. A. Di Paola, “A Survey of Soviet Work in the Theory of Computer Programming,” Rand Memorandum RM-5424-PR (Santa Monica, 1967).

    Google Scholar 

  23. Arthur L. Norberg and Judy E. O’Neill, Transforming Computer Technology: Information Processing for the Pentagon, 1962–1986 (Baltimore, 1996).

    Google Scholar 

  24. William Aspray, Bernard O. Williams, and Andrew H. Goldstein, Computing as Servant and Science: The Impact of the National Science Foundation, unpub. draft, 1992

    Google Scholar 

  25. cf. Aspray and Williams, “Arming American Scientists: NSF and the Provision of Scientific Computing Facilities for Universities, 1950–1973,” Annals of the History of Computing 16/4 (1994): 60–74.

    Article  Google Scholar 

  26. [Hamming’s note]: G. E. Forsythe, “What to do Until the Computer Scientist Comes,” American Mathematical Monthly 75/5 (May 1968): 454–61.

    Article  MathSciNet  MATH  Google Scholar 

  27. Richard W. Hamming, “One Man’s View of Computer Science,” ACM Turing Award Lectures (n. 4 above), 207–18 at 208.

    Google Scholar 

  28. Available at http://www-formal.stanford.edu/jmc/history/dartmouth.html.

    Google Scholar 

  29. Thomas S. Kuhn, The Structure of Scientific Revolutions (Chicago, 1962; 2nd ed. 1970).

    Google Scholar 

  30. For example, ACM Curriculum Committee on Computer Science, “An Undergraduate Program in Computer Science—Preliminary Recommendations,” CACM 8 (1965): 543–8; “Curriculum 68—Recommendations for Academic Programs in Computer Science,” CACM 11 (1968): 151–97; “Curriculum 78—Recommendations for the Undergraduate Program in Computer Science,” CACM 22 (1979): 147–66; A. Ralston and M. Shaw, “Curriculum 78—Is Computer Science Really That Unmathematical?” CACM 23 (1980): 67–70.

    Google Scholar 

  31. For Purdue, see John Rice and Richard A. DeMillo, eds., Studies in Computer Science in Honor of Samuel D. Conte (New York and London, 1994)

    Google Scholar 

  32. for Cornell, David Gries, “Twenty Years of Computer Science at Cornell,” Engineering: Cornell Quarterly 20/2 (1985): 2–11.

    MathSciNet  Google Scholar 

  33. Vannevar Bush, Science, the Endless Frontier: A Report to the President on a Program for Postwar Scientific Research (Washington, D.C., 1945; reprint, 1960, 1990). For a thoughtful critique of Bush’s basic premise

    Google Scholar 

  34. see Donald E. Stokes, Pasteur’s Quadrant: Basic Science and Technological Innovation (Washington, DC, 1997).

    Google Scholar 

  35. “Towards a Mathematical Science of Computation,” Proc. IFIP Congress 62 (Amsterdam, 1963), 21–28 at 21.

    Google Scholar 

  36. “A Basis for a Mathematical Theory of Computation,” in Computer Programming and Formal Systems, ed. P. Braffort and D. Hirschberg (Amsterdam, 1963), 33–69 at 69.

    Google Scholar 

  37. Interview with M. S. Mahoney, 3 December 1990.

    Google Scholar 

  38. Peter Naur, Brian Randell, and J. N. Buxton, eds., Software Engineering: Concepts and Techniques. Proceedings of the NATO Conferences (New York, 1976), 147.

    Google Scholar 

  39. They offered for three main reasons: “(1) Computers and programs are inherently mathematical objects. They manipulate formal symbols, and their input-output behavior can be described by mathematical functions. The notations we use to represent them strongly resemble the formal notations which are used throughout mathematics and systematically studied in mathematical logic. (2) Programs often accept arbitrarily large amounts of input data; hence, they have a potentially unbounded number of possible inputs. Thus a program embraces, in finite terms, an infinite number of possible computations; and mathematics provides powerful tools for reasoning about infinite numbers of cases. (3) Solving complex information-processing problems requires mathematical analysis. While some of this analysis is highly problem-dependent and belongs to specific application areas, some constructions and proof methods are broadly applicable, and thus become the subject of theoretical computer science. What Can Be Automated? [hereafter COSERS], ed. Bruce W. Arden (Cambridge, Mass., 1980), 139. The committee consisted of Richard M. Karp (Chair; Berkeley), Zohar Manna (Stanford), Albert R. Meyer (MIT), John C. Reynolds (Syracuse), Robert W. Ritchie (Washington), Jeffrey D. Ullman (Stanford), and Shmuel Winograd (IBM Research).

    Google Scholar 

  40. C. A. R. Hoare, “The Mathematics of Programming,” in his Essays in Computing Science (Hemel Hempstead, 1989), 352.

    Google Scholar 

  41. For a discussion of some of the issues, together with case studies, see Andrew Pickering, The Mangle of Practice: Time, Agency, & Science (Chicago, 1995).

    Book  MATH  Google Scholar 

  42. COSERS, 9.

    Google Scholar 

  43. Frederick P. Brooks, “No Silver Bullet—Essence and Accidents of Software Engineering,” Information Processing 86, ed. H. J. Kugler (Amsterdam, 1986), 1069–76; reprint in Computer 20/4 (1987): 10–19

    MathSciNet  Google Scholar 

  44. and in the Anniversary Edition of Frederick P. Brooks, The Mythical Man-Month: Essays on Software Engineering (Reading, Mass., 1995), Chap. 16. Chap. 17, “’No Silver Bullet’ Retired” is a response to critics of the original article and a review of the silver bullets that have missed the mark over the intervening decade.

    Google Scholar 

  45. Since the late 1980s, this interaction has been moved to a meta-level, as researchers have sought to model the process by which the computational model is designed. See, for example, Leon Osterweil, “Software Processes are Software Too,” Proceedings: 9th International Conference on Software Engineering (Los Angeles, Calif., 1987), 2–13.

    Google Scholar 

  46. Aristide Lindenmayer, “Mathematical Models for Cellular Interactions in Development,” Journal of Theoretical Biology 18 (1968): 280–99, 300–15.

    Article  Google Scholar 

  47. For a richly detailed and critical account of this development, see Lily Kay, Who Wrote the Book of Life? A History of the Genetic Code (Stanford, 2000). Evelyn Fox Keller also explores the metaphor critically in “The Body of a New Machine: Situating the Organism Between the Telegraph and the Computer,” in Refiguring Life: Metaphors of Twentieth-Century Biology (New York, 1995).

    Google Scholar 

  48. John von Neumann, “Method in the Physical Sciences,” in The Unity of Knowledge, ed. L. Leary (Garden City, N.J., 1955); reprint in John von Neumann, Works, VI, 492.

    Google Scholar 

  49. John von Neumann to Oswald Veblen, 26 March 1945, in John von Neumann, Works, VI, 357.

    Google Scholar 

  50. H. Goldstine and John von Neumann, “On the Principles of Large-Scale Computing Machines,” ca. 1946, in John von Neumann, Works, V, 2.

    Google Scholar 

  51. John von Neumann, “On a Logical and General Theory of Automata,” in Cerebral Mechanisms in BehaviorThe Hixon Symposium, ed. L. A. Jeffries (New York, 1951), 1–31; reprint in Papers of John von Neumann on Computing and Computer Theory, ed. William Aspray and Arthur Burks (Cambridge, Mass./London/Los Angeles/San Francisco, 1987), 391–431 at 406.

    Google Scholar 

  52. John H. Holland, Hidden Order: How Adaptation Builds Complexity (Reading, Mass., 1995), 161–2.

    Google Scholar 

  53. John H. Holland, Hidden Order: How Adaptation Builds Complexity (Reading, Mass., 1995), 171–2.

    Google Scholar 

  54. In introducing the ACM to readers of the first issue of its Journal in January, 1954, S. B. Williams anticipated the coinage: “Until the engineering societies, AIEE and IRE, became sufficiently interested to struggle with ‘hardware,’ the Association provided a forum for all phases of the field. Now the Association can direct its efforts to the other phases of computing systems, such as numerical analysis, logical design, application and use, and, last but not least, to programming,” Journal of the ACM 1/1 (1954): 3.

    Google Scholar 

  55. John Tukey, “The Teaching of Concrete Mathematics,” American Mathematical Monthly 65/1(1958): 1–9 at 2: “Today the ‘software’ comprising the carefully planned interpretive routines, compilers, and other aspects of automative [sic] programming are at least as important to the modern electronic calculator as its ‘hardware’ of tubes, transistors, wires, tapes and the like.”

    Article  MathSciNet  MATH  Google Scholar 

  56. Jan van Leeuwen, ed., Handbook of Theoretical Computer Science (Amsterdam, Cambridge, Mass., 1990), vol. A, Algorithms and Complexity; vol. B, Formal Models and Semantics.

    Google Scholar 

  57. Only after writing these words did I discover that Wolfgang Coy had asked the same question, “’Informatique’: What’s in a Name?” and had reached the same conclusion in his essay “Defining Discipline”, in Ch. Freksa, M. Jantzen, R. Valk (eds.), Foundations of Computer Science: PotentialTheoryCognition (Springer: Berlin, Heidelberg, New York 1997): “But the German ‘Informatik’ made a strange twist: While it uses the French word, it sticks firmly to the American usage of computer science (with elements from computer engineering).” Together with many colleagues, Coy would like Informatik to be something quite different; but it is not yet, and it has not been so historically. See, inter alia, his “Für eine Theorie der Informatik!” in Wolfgang Coy et al. (eds.) Sichtweisen der Informatik (Braunschweig, Wiesbaden: Vieweg, 1992), 17–32.

    Google Scholar 

  58. “We certainly cannot expect that the scientific basis of software can come from physics as in the older engineering branches. It may come from mathematics or from biology. Mathematics has clearly brought some help already, be it in cryptology or in program proof automation. Biology is largely untapped.”

    Google Scholar 

  59. See Michael Mahoney, “The Mathematical Realm of Nature,” in The Cambridge History of Seventeenth-Century Philosophy, vol. 1, ed. Daniel Garber and Michael Ayers (Cambridge, 1997), 702–55.

    Google Scholar 

  60. Wigner’s article, based on the Richard Courant Lecture at New York University in 1959, appeared in Communications on Pure and Applied Mathematics 13 (1960): 1–14; cf. Mark Steiner’s recent book, The Applicability of Mathematics as a Philosophical Problem (Cambridge, Mass., 1998).

    Google Scholar 

  61. See Robert Rosen, “Effective Processes and Natural Law,” in The Universal Turing Machine: A Half-Century Survey, ed. Rolf Herken (Wien/New York, 1994/5), 485–98; cf. his earlier article, “Church’s Thesis and its Relation to the Concept of Realizability in Biology and Physics,” Bulletin of Mathematical Biophysics 24 (1962): 375–93.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2002 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Mahoney, M.S. (2002). Software as Science—Science as Software. In: Hashagen, U., Keil-Slawik, R., Norberg, A.L. (eds) History of Computing: Software Issues. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-662-04954-9_3

Download citation

  • DOI: https://doi.org/10.1007/978-3-662-04954-9_3

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-642-07653-4

  • Online ISBN: 978-3-662-04954-9

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics