Douglas McIlroy

Malcolm Douglas McIlroy (born 1932) is a mathematician, engineer, and programmer. As of 2007 he is an Adjunct Professor of Computer Science at Dartmouth College. McIlroy is best known for having originally developed Unix pipelines, software componentry and several Unix tools, such as spell, diff, sort, join, graph, speak, and tr.

Malcolm Douglas McIlroy
McIlroy (left) with former colleague Dennis Ritchie at the Japan Prize Foundation in May 2011
Born1932 (age 8687)
Alma materCornell University (B.S., Engineering Physics, 1954)
Massachusetts Institute of Technology (Ph.D., Applied Mathematics, 1959)
Occupationmathematician, engineer, programmer
Known forUnix pipelines, software componentry, spell, diff, sort, join, graph, speak, tr

His seminal work on software componentization[1] makes him a pioneer of component-based software engineering and software product line engineering.


McIlroy earned his Bachelor's degree in engineering physics from Cornell University in 1954, and a Ph.D. in applied mathematics from MIT in 1959 for his thesis On the Solution of the Differential Equations of Conical Shells. He taught at MIT from 1954 to 1958.

McIlroy joined Bell Laboratories in 1958; from 1965 to 1986 was head of its Computing Techniques Research Department (the birthplace of the Unix operating system), and thereafter was Distinguished Member of Technical Staff.

From 1967 to 1968, McIlroy also served as a visiting lecturer at Oxford University.

In the 1990s, McIlroy worked on improving sorting techniques, particularly he co-authored an optimized Quicksort algorithm with Jon Bentley.[2]

In 1997, McIlroy retired from Bell Labs, and took a position as an Adjunct Professor in the Dartmouth College Computer Science Department.


McIlroy is a member of the National Academy of Engineering, and has won both the USENIX Lifetime Achievement Award ("The Flame") and its Software Tools award. He has previously served the Association for Computing Machinery as national lecturer, Turing Award chairman, member of the publications planning committee, and associate editor for the Communications of the ACM, the Journal of the ACM, and ACM Transactions on Programming Languages and Systems. He also served on the executive committee of CSNET.

Views on computing

McIlroy is attributed the quote "The real hero of programming is the one who writes negative code,"[3] where the meaning of negative code is taken to be similar to the famous Apple developer team anecdote[4] (i.e., when a change in a program source makes the number of lines of code decrease ('negative' code), while its overall quality, readability or speed improves).


  • "Those types are not "abstract"; they are as real as int and float."[5]
  • "As a programmer, it is your job to put yourself out of business. What you do today can be automated tomorrow."[3]
  • "Keep it simple, make it general, and make it intelligible."[3]
  • "The real hero of programming is the one who writes negative code."[3]

See also


  1. McIlroy, Malcolm Douglas (January 1969). "Mass produced software components" (PDF). Software Engineering: Report of a conference sponsored by the NATO Science Committee, Garmisch, Germany, 7–11 Oct. 1968. Scientific Affairs Division, NATO. p. 79.
  2. Jon L. Bentley; M. Douglas McIlroy (November 1993). "Engineering a sort function". Software—Practice & Experience. 23 (11).
  3. These quotes were heard during a talk he gave to the DLSLUG 12/3/09
  4. "MacPaint and QuickDraw Source Code". Computer History Museum.
  5. The C++ Programming Language by Bjarne Stroustrup at the beginning of the chapter "Classes"
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.