Fernando J. Corbató
American computer scientist (1926–2019)
Fernando José "Corby" Corbató (July 1, 1926 – July 12, 2019) was an American computer scientist and winner of the 1990 Turing Award "for his pioneering work organizing the concepts and leading the development of the general-purpose, large-scale, time-sharing and resource-sharing computer systems, CTSS and Multics."
Quotes
edit- Clearly, one can obfuscate one's ideas with a compiler language but it's harder. To some extent one is talking about what one wants rather than how one wants to do it. The trouble with machine code, of course, is that when you look at a random section of machine code you don't know what properties of the instructions the programmer really wanted to exploit.
- "PL/I as a Tool for System Programming", Datamation, 15 (5), 6 May 1969, pp. 68–76
- Regardless of whether one is dealing with assembly language or compiler language, the number of debugged lines of source code per day is about the same!
- "PL/I as a Tool for System Programming", Datamation, 15 (5), 6 May 1969, pp. 68–76. This has been paraphrased variously by others as Corbató's Law:
- Productivity and reliability depend on the length of a program’s text, independent of language level used.
- Albert Endres, H. Dieter Rombach, A Handbook of Software and Systems Engineering: Empirical Observations, Laws and Theories (2003), ISBN 0321154207, p. 72
- The number of lines of code a programmer can write in a fixed period of time is the same independent of the language used.
- Productivity and reliability depend on the length of a program’s text, independent of language level used.
- "PL/I as a Tool for System Programming", Datamation, 15 (5), 6 May 1969, pp. 68–76. This has been paraphrased variously by others as Corbató's Law:
- Systems with unknown behavioral properties require the implementation of iterations which are intrinsic to the design process but which are normally hidden from view. Certainly when a solution to a well-understood problem is synthesized, weak designs are mentally rejected by a competent designer in a matter of moments. On larger or more complicated efforts, alternative designs must be explicitly and iteratively implemented. The designers perhaps out of vanity, often are at pains to hide the many versions which were abandoned and if absolute failure occurs, of course one hears nothing. Thus the topic of design iteration is rarely discussed. Perhaps we should not be surprised to see this phenomenon with software, for it is a rare author indeed who publicizes the amount of editing or the number of drafts he took to produce a manuscript.
- "A Managerial View of the Multics System Development", Conference on Research Directions in Software Technology, Providence, Rhode Island, October 10-12, 1977 published in Research Directions in Software Technology (1978), P. Wegner (ed.), MIT Press, ISBN 0262230968, pp. 139-158. Also reprinted in Tutorial: Software Management, Donald J. Reifer (ed.), IEEE Computer Society Press, (1979, 1981, 1986)
- The use of the high level language made each programmer a factor of 5 to 10 more productive in a coding sense and more concerned with the semantics than the syntax of modules.
- "A Managerial View of the Multics System Development" (1978)
On Building Systems That Will Fail (1991)
edit1990 Turing Award lecture [1], Communications of the ACM 34 (9), September 1991, pp. 72–81
- Because one has to be an optimist to begin an ambitious project, it is not surprising that underestimation of completion time is the norm.
- p. 75
- The computer field is intoxicated with change. We have seen galloping growth over a period of four decades and it still does not seem to be slowing down. The field is not mature yet and already it accounts for a significant percentage of the Gross National Product.
- p. 75
- To our dismay, users who had been enduring several hour waits between jobs run under batch processing were suddenly restless when response times were more than a second.
- p. 77
- Design bugs are often subtle and occur by evolution with early assumptions being forgotten as new features or uses are added to systems.
- p. 78
- One is faced with a dilemma: If one places total trust in all other users, one is vulnerable to the antisocial behavior of any malicious user—consider the case of viruses. But if one tries to be totally reclusive and isolated, one is not only bored, but one's information universe will cease to grow and be enhanced by interaction with others. The result is that most of us operate in a complicated trade-off zone with various arrangements of trust and security mechanisms.
- p. 79
- It is important to emphasize the value of simplicity and elegance, for complexity has a way of compounding difficulties and as we have seen, creating mistakes. My definition of elegance is the achievement of a given functionality with a minimum of mechanism and a maximum of clarity.
- p. 80
- The value of metaphors should not be underestimated. Metaphors have the virtue of an expected behavior that is understood by all. Unnecessary communication and misunderstandings are reduced. Learning and education are quicker. In effect metaphors are a way of internalizing and abstracting concepts allowing one's thinking to be on a higher plane and low-level mistakes to be avoided.
- p. 81