The History of Unix in the History of Software Haigh Thomas
Total Page:16
File Type:pdf, Size:1020Kb
The History of Unix in the History of Software Haigh Thomas To cite this version: Haigh Thomas. The History of Unix in the History of Software. Cahiers d’histoire du Cnam, Cnam, 2017, La recherche sur les systèmes : des pivots dans l’histoire de l’informatique – II/II, 7-8 (7-8), pp77-90. hal-03027081 HAL Id: hal-03027081 https://hal.archives-ouvertes.fr/hal-03027081 Submitted on 9 Dec 2020 HAL is a multi-disciplinary open access L’archive ouverte pluridisciplinaire HAL, est archive for the deposit and dissemination of sci- destinée au dépôt et à la diffusion de documents entific research documents, whether they are pub- scientifiques de niveau recherche, publiés ou non, lished or not. The documents may come from émanant des établissements d’enseignement et de teaching and research institutions in France or recherche français ou étrangers, des laboratoires abroad, or from public or private research centers. publics ou privés. 77 The History of Unix in the History of Software Thomas Haigh University of Wisconsin - Milwaukee & Siegen University. You might wonder what I am doing The “software crisis” and here, at an event on this history of Unix. the 1968 NATO Conference As I have not researched or written about on Software Engineering the history of Unix I had the same question myself. But I have looked at many other The topic of the “software crisis” things around the history of software and has been written about a lot by profes- this morning will be talking about how sional historians, more than anything some of those topics, including the 1968 else in the entire history of software2. It NATO Conference on Software Enginee- is usually connected the to 1968 NATO ring, Algol, IBM SHARE and mathema- Conference on Software Engineering, tical software in the 1970s, connect to which is sometimes claimed to be this the origins of Unix. As I worked to pull kind of very broadly based conference in this presentation together I realized that which industrial managers, programmers, some of those connections are clearer and and academics came together. It is also more interesting than I had previously sometimes suggested that this had enor- assumed, to the extent that they challenge mous ramifications for our actual typical us to reinterpret some of what we think programming practice was conducted we know about software history during during the 1970s and later. this era1. 1 This text is the transcript of a keynote talk given at the International symposium “Unix in France and in 2 The software crisis and the NATO conference appear the United States: innovation, diffusion and prominently in Mahoney (1988), Campbell-Kelly & appropriation” organized at Conservatoire national des Aspray (1996), MacKenzie, (2001) and several of the arts et métiers, Paris, France, on October 19th, 2017. contributions to Hashagen & al. (2002). I have a more specific sense of why the product is often larger in size and those things were important. Suggesting slower in execution than need be. The experience with this technique has led that there is a connection of the Software some people to opine that any software engineering conference to the mainstream system that cannot be completed by programming in corporations producing some four or five people within a year packages, accounting, is, according to can never be completed. me, an exaggeration. I believe that the perceived crisis at the end of the 1960s As Fred Brooks, who was overseeing was very specifically in the development the OS/360 development eventually, and of systems software, primarily opera- famously, concluded: “Adding manpower ting systems, which is a category, in that to a late software project makes it later” period, that is still tightly bonded with (1975). To put his argument in economic compilers and computer languages. terms, the marginal benefit that you get from having an extra-programmer is more So what was the software crisis than offset by the increase transaction then? Looking back at the proceedings, costs in coordinating the work of a larger we see that there were indeed, at the group of people. The high profile pro- NATO conference, many people expres- blems of such projects increased interest in sing concern about what was going on finding better ways, which was to be called within the development of operating “software engineering”, although nobody systems. Two systems in particular were at conference knew what that might be. of concern: IBM OS/360 (although none of the thousand people developing it were I have a tangential argument that actually at the conference) and Multics. I would like to share, from my paper Several people developing Multics were “Dijkstra’s Crisis: The End of Algol and at the conference, as well as the three the Beginning of Software Engineering.”3 partners of the project, MIT, General This was written back in 2010 as part of Electrics (GE), and Bell Labs, including the Software for Europe project, for inclu- Edward E. David who was one of the sion in a since abandoned book project. three managers with overall responsibi- I noted that the specific phrase “software lity for the project. He represented Bell crisis” doesn’t actually appear in any of Labs and he wrote in his position paper the quoted dialog or position papers for the for the conference: conference, though it does appear in the in- troduction to the proceedings. My sense is Among the many possible strategies for that it spread and took its modern associa- producing large software systems, only tion with Dijkstra’s Turing award Lecture one has been widely used. It might be labeled “the human wave” approach, for typically hundreds of people become 3 See the draft version [URL: http://www.tomandmaria. involved over a several years period… com/Tom/Writing/DijkstrasCrisis_LeidenDRAFT. It is expensive, slow, inefficient, and pdf]. 78 79 “The humble programmer” (1972), a title my argument is that the NATO conference which can be read as a rebuke to the preten- was to a large extent an attempt by those tiousness of the idea of being a “software Algol “refugees” – who quit or wrote mi- engineer”. In a way, this cements retroacti- nority reports – in order to create a new vely the idea that the most important thing community that would preserve that col- that happened at the conference was the laboration but take on a broader focus. declaration of a “software crisis” to which Dijkstra wrote a minority report, signed Dijkstra proposed some solutions. by seven members. The interesting thing about that is that there were many specific You might wonder what Algol criticisms circulating of Algol 68 as a lan- was doing in the title of my paper. The guage, but Dijkstra’s dissent did not really Algol effort launched in 1958, conti- address those at all. Instead it called for a nuing through the 1960s, and was for- philosophical kind of shift from traditional malized in 1962 by IFIP Working Group ideas about the purpose of a programming 2.1. My view is that the Algol effort did language towards the design of systems more than any other project in the history that would enforce good practice in the of computing to create an internatio- development of complex programs. There nal computer science research commu- is a significant kind of overlap between the nity. If you look at how the early Turing participants in the Algol efforts, particular- awards were given, then you see seven of ly ones who were dissatisfied with Algol them awarded to members of the original 68, and the group that were most active groups that defined Algol (in 1958 and in the discussions of the 1968 conference 1960). But in the second half of the 1960s, and in editing the proceedings, which were things took a less happy turn. The group enormously important in shaping how the decided to go with a proposal (adopting a conference was remembered4. draft from Adriaan van Wijngaarden) for what became Algol 68, which was deeply In “Dijkstra’s Crisis...” I argued controversial as it rejected a proposal from that, looking at the trajectories of some Wirth for what became Pascal. Tensions of those individuals, including Dijsktra, only get worse over the next few years and Hoare, Randell, Perlis, Naur, Wirth, etc., when in 1968 the new language (Algol an interesting kind of shared career tra- 68) was approved, the group essentially jectory emerges. Trained in science or fell apart. Eleven working group members mathematics, they worked in early 1960s either resigned or signed minority reports, developing systems software in small expressing differences with the direction teams either in marginal manufacturers that the work took. 4 13 of the 28 members of IFIP WG 2.1 active in design If you look at the chronology there, of Algol 68 attended the 1968 or 1969 conference. Naur and Randell edited the proceedings. Naur resigned from 1968 is the same year as the NATO WG 2.1. Randell drafted a minority report opposing Software Engineering conference. Thus Algol 68 and signed Dijkstra's report. (not IBM) or in research settings. They It was with little surprise to any of the were very small groups, and they pro- participants in the Rome conference that no attempt was made to continue duced groundbreaking compilers and the NATO conference series, but the operating systems. By the time of the software engineering bandwagon began NATO conference, they were in a transi- to roll as many people started to use the tion from writing the systems to working term to describe their work, to my mind in corporate research labs or universities. often with very little justification.