This Article 
 Bibliographic References 
 Add to: 
What Makes the History of Software Hard
July-September 2008 (vol. 30 no. 3)
pp. 8-18
Michael S. Mahoney, Princeton University
Creating software for work in the world has meant translating into computational models the knowledge and practices of the people who have been doing that work without computers. What people know and do reflects their particular historical experience, which also shapes decisions about what can be automated and how. Software thus involves many histories and a variety of sources to be read in new ways.

1. R. Kling and W. Scacchi, "The Web of Computing," Advances in Computers, vol. 21, 1982, pp. 1-90; at p. 39 and pp. 56-60.
2. B. Stroustrup, "A History of C++," in T.M. Bergin, and R.G. Gibson eds. History of Programming Languages, ACM Press, 1996, p. 750.
3. Another version of this article addressed to the implications of the subject for the humanities appeared as "The Histories of Computing(s)," Interdisciplinary Science Reviews, vol. 30, no. 2, 2005, pp. 119-135.
4. , In England, of course, the story has a slightly different trajectory that includes Turing's ACE. Although pursuing his own ideas, Turing knew about the EDVAC report and took it into account. See Alan Turing's Automatic Computer Engine: The Master Codebreaker's Struggle to Build the Modern Computer, B. Jack Copeland ed. Oxford Univ. Press, 2005, Germany offers yet another variant trajectory, originating with Konrad Zuse's machines.
5. On the first point, see Chaps. 3 and 4 of C.J. Bashe, et al., IBM's Early Computers, MIT Press, 1986; on the second, see the recent dissertation by J.A. November, "Digitizing Life: The Introduction of Computers to Biology and Medicine," PhD dissertation, Princeton Univ., 2006.
6. For a subtle discussion of memory and history—personal, social, and scientific—see G.C. Bowker, Memory Practices in the Sciences, MIT Press, 2005.
7. For a discussion of the historical models of engineering to which software engineers have turned, see my "Finding a History for Software Engineering," IEEE Annals of the History of Computing, vol. 26, no. 1, 2004, pp. 8-19; online version at∼mike/articles/ findingfinding.html.
8. In Calculating a Natural World: Scientists, Engineers, and Computers during the Rise of U.S. Cold War Research (MIT Press, 2007), Atsushi Akera articulates the complex and evolving "ecology of knowledge" among institutions, occupations, organizations, knowledge, and artifacts and actors that constituted that community.
9. See, for example, J.W. Cortada, Information Technology as Business History: Issues in the History and Management of Computers, Greenwood Press, 1996, and The Digital Hand: How Computers Changed the Work of American Manufacturing, Transportation, and Retail Industries, Oxford Univ. Press, 2004; Thomas Haigh, "The Chromium-Plated Tabulator: Institutionalizing an Electronic Revolution, 1954–1958," IEEE Annals of the History of Computing, vol. 23, no. 4, 2001, pp. 75-104, and "Inventing Information Systems: The Systems Men and the Computer, 1950–1968," The Business History Rev., vol. 75, no. 1, 2001, pp. 15-61.
10. J. Agar, The Government Machine: A Revolutionary History of the Computer, MIT Press, 2003.
11. I am telling an American story here. For the wider context, see inter alia J.A. Merkle, Management and Ideology: The Legacy of the International Scientific Management Movement, Univ. of California Press, Berkeley, 1980.
12. The seminal account is T.P. Hughes, Networks of Power: Electrification in Western Society, 1880–1930, Johns Hopkins Univ. Press, 1983.
13. D. Mindell, Between Human and Machines: Feedback, Control, and Computing before Cybernetics, Johns Hopkins Univ. Press, 2002.
14. For an overview, see M.S. Mahoney, "The Structures of Computation," The First Computers: History and Architectures, Raul Rojas and Ulf Hashagen eds. MIT Press, 2000,, and "Software: The Self-Programming Machine," From 0 to 1: An Authoritative History of Modern Computing, A. Akera and F. Nebeker, eds., Oxford Univ. Press, 2002.
15. For a detailed study of that process in the insurance industry, see J. Yates, Structuring the Information Age: Life Insurance and Technology in the Twentieth Century, Johns Hopkins Univ. Press, 2005.
16. U. Hashagen, R. Keil-Slawik, and A. Norberg eds. History of Computing: Software Issues, Springer Verlag, 2002, In my own presentation ("Software as Science—, Science as Software", pp. 25-48) and the ensuing discussion, I missed an important question underlying critiques that I was ignoring the sciences that had contributed to computer science. I saw them—for example, psychology—as ancillary, as resources on which computer science has drawn, but not as constituents of computer science itself. In looking at them in that way, I missed seeing how their application to problems of computation brought out what was computational about them. If computer science is concerned with what can be computed, then it includes the computational aspects of the sciences, and its history includes the process by which those computational aspects were identified, elicited, and articulated.
17. The Forum was announced by Adele Goldberg in a President's Letter in the Comm. ACM, vol. 28, no. 2, 1985, pp. 131-133. The enabling resolution of the ACM Council in October 1984 opened with the statement that "Contrary to the myth that computer systems are infallible, in fact computer systems can and do fail. Consequently the reliability of computer-based systems cannot be taken for granted." (Ibid., p. 131). For a compilation and commentary on the mishaps reported over the first ten years, see P.G. Neumann's Computer-Related Risks, ACM Press, 1995.
18. J.E. Tomayko, "Software as Engineering," in History of Computing, Hashagen et al. ed. pp. 65-76, H. Petroski, To Engineer is Human: The Role of Failure in Successful Design, St. Martin's Press, 1985.
19. P. Naur, and B. Randell eds. Software Engineering, Report on a Conference Sponsored by the NATO Science Committee, Scientific Affairs Division, NATO, 1968, p. 13,, The report was republished, together with the report on the second conference the following year, in Software Engineering: Concepts and Techniques: Proc. NATO Conferences, P. Naur, B. Randell, and J.N. Buxton, eds., Petrocelli, 1976. Randell has made both reports available for download; see NATO/.
20. F.P. Brooks, "No Silver Bullet—Essence and Accidents of Software Engineering," Information Processing 1986, H.J. Kugler ed. Elsevier Science, 1986, pp. 1069-1076,, reprinted in Computer, vol. 20, no. 4, 1987, pp. 10-19; and in the Anniversary Edition of The Mythical Man-Month: Essays on Software Engineering, Addison-Wesley, 1995, Chap. 16. Chap. 17, "'No Silver Bullet' Refired" 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.
21. Symbolic algebra constitutes another example of operative representation; see M.S. Mahoney, "The Beginnings of Algebraic Thought in the Seventeenth Century," Descartes: Philosophy, Mathematics and Physics, S. Gaukroger ed. et al., The Harvester Press, 1980, Chap.5.
22. See the project site at .
23. H. Ford, My Life and Work, Doubleday, 1922, pp. 23-24, For a reading of Ford's Model T, see my web document, "Reading a Machine";∼hos/h398/ readmachmodelt.html.
24. T. Kidder, The Soul of a New Machine, Little, Brown, 1981, p. 26.
25. As originally stated, "[O]rganizations which design systems ... are constrained to produce designs which are copies of the communication structures of these organizations." M.E. Conway, "How Do Committees Invent?" Datamation, vol. 14, no. 4, 1968, pp. 28-31; online version at . For Conway's subsequent thoughts on the subject, see his webpage, www.melconway.comlaw.
26. C.G. Langton "Artificial Life" [1989], The Philosophy of Artificial Life, M.A. Boden, ed., Oxford Univ. Press, 1996, p. 47. On the philosophical implications of the distinction between program and process (and, third, semantics), see B. Cantwell Smith, On the Origin of Objects, MIT Press, 1998, pp. 32-42.
27. I thank an anonymous reviewer for directing my attention to this point.
28. G.M. Weinberg, The Psychology of Computer Programming, Van Nostrand Reinhold, 1971, B. Kernighan and P.J. Plauger, Elements of Programming Style, McGraw-Hill, 1978.
29. A.C. Kay, "The Early History of Smalltalk," History of Programming Languages—II, T.J. Bergin, and R.G. Gibson eds. ACM Press, 1996, p. 516.
30. , The languages covered were AppleScript, BETA, C++, Emerald, Erlang, Haskell, High Performance Fortran (HPF), Lua, Modula-2/Oberon, Self, Statecharts, and ZPL. See . Among those conspicuously missing were Java, ML, Perl, and Python.
31. Indeed, it is striking how many of the languages of HOPL III were initially implemented in C or C++.
32. Email to author as customer from US Airways—Dividend Miles (, 24 March 2007, Subject: Merger Update. A copy of the letter with slight different wording may be found at 03/14usair_asks_fliers_can_we_get_a_hallelujah.html .
33. See, inter alia, R.N. Britcher, The Limits of Software: People, Projects, and Perspectives, Addison-Wesley, 1999.

Index Terms:
History of software, communities of computing
Michael S. Mahoney, "What Makes the History of Software Hard," IEEE Annals of the History of Computing, vol. 30, no. 3, pp. 8-18, July-Sept. 2008, doi:10.1109/MAHC.2008.55
Usage of this product signifies your acceptance of the Terms of Use.