Book contents
- Frontmatter
- Contents
- Preface
- A quick tour through the book
- Acknowledgments
- Prologue: Blog entry from Jonathan Hey
- 1 Beginnings of a revolution
- 2 The hardware
- 3 The software is in the holes
- 4 Programming languages and software engineering
- 5 Algorithmics
- 6 Mr. Turing’s amazing machines
- 7 Moore’s law and the silicon revolution
- 8 Computing gets personal
- 9 Computer games
- 10 Licklider’s Intergalactic Computer Network
- 11 Weaving the World Wide Web
- 12 The dark side of the web
- 13 Artificial intelligence and neural networks
- 14 Machine learning and natural language processing
- 15 The end of Moore’s law
- 16 The third age of computing
- 17 Computers and science fiction – an essay
- Epilogue: From Turing’s padlocked mug to the present day
- Appendix 1 Length scales
- Appendix 2 Computer science research and the information technology industry
- How to read this book
- Notes
- Suggested reading
- Figure credits
- Name index
- General index
4 - Programming languages and software engineering
Published online by Cambridge University Press: 05 December 2014
- Frontmatter
- Contents
- Preface
- A quick tour through the book
- Acknowledgments
- Prologue: Blog entry from Jonathan Hey
- 1 Beginnings of a revolution
- 2 The hardware
- 3 The software is in the holes
- 4 Programming languages and software engineering
- 5 Algorithmics
- 6 Mr. Turing’s amazing machines
- 7 Moore’s law and the silicon revolution
- 8 Computing gets personal
- 9 Computer games
- 10 Licklider’s Intergalactic Computer Network
- 11 Weaving the World Wide Web
- 12 The dark side of the web
- 13 Artificial intelligence and neural networks
- 14 Machine learning and natural language processing
- 15 The end of Moore’s law
- 16 The third age of computing
- 17 Computers and science fiction – an essay
- Epilogue: From Turing’s padlocked mug to the present day
- Appendix 1 Length scales
- Appendix 2 Computer science research and the information technology industry
- How to read this book
- Notes
- Suggested reading
- Figure credits
- Name index
- General index
Summary
The major cause of the software crisis is that the machines have become several orders of magnitude more powerful! To put it quite bluntly: as long as there were no machines, programming was no problem at all; when we had a few weak computers, programming became a mild problem, and now we have gigantic computers, programming has become an equally gigantic problem.
Edsger DijkstraThe software crisis
The term software engineering originated in the early 1960s, and the North Atlantic Treaty Organization sponsored the first conference on the “software crisis” in 1968 in Garmisch-Partenkirchen, West Germany. It was at this conference that the term software engineering first appeared. The conference reflected on the sad fact that many large software projects ran over budget or came in late, if at all. Tony Hoare, a recipient of the Turing Award for his contributions to computing, ruefully remembers his experience of a failed software project:
There was no escape: The entire Elliott 503 Mark II software project had to be abandoned, and with it, over thirty man-years of programming effort, equivalent to nearly one man’s active working life, and I was responsible, both as designer and as manager, for wasting it.
In his classic book The Mythical Man-Month, Fred Brooks (B.4.1) of IBM draws on his experience developing the operating system for IBM’s massive System/360 project. Brooks makes some sobering reflections on software engineering, saying, “It is a very humbling experience to make a multimillion-dollar mistake, but it is also very memorable.”
- Type
- Chapter
- Information
- The Computing UniverseA Journey through a Revolution, pp. 58 - 83Publisher: Cambridge University PressPrint publication year: 2014