Dennis Ritchie was an American computer scientist. He was known as a creator of C programming language, and, together with Ken Thompson, the Unix operating system. Dennis was instrumental in the creation of such programming languages, as BCPL, B and ALTRAN. Also, Ritchie contributed to the development of Multics, Plan 9 and Inferno operating systems.
Moreover, he was a co-author of "The C Programming Language" book.
Background
Dennis Ritchie was born on September 9, 1941, in Bronxville, New York, United States. He was a son of Alistair E. Ritchie, a switching systems engineer, and Jean (McGee) Ritchie, a homemaker. Dennis grew up in Summit, New Jersey, where his father worked as a switching systems engineer for Bell Laboratories.
Education
In his early years, Dennis attended Summit High School. Then, Ritchie went to Harvard University, where he received a Bachelor of Science degree in Physics in 1963. Later, he continued his education at Harvard University and in 1968, he defended his Doctor of Philosophy degree thesis on "Program Structure and Computational Complexity" under the supervision of Patrick C. Fischer. However, Ritchie never officially received his Doctor of Philosophy degree.
Career
In 1967, Ritchie began working for Bell Laboratories (known as Bell Labs). His job at the company increased his association with the programming world, and in the late 1960's, he began working at the Computer Science Research Department at Bell Labs. It was there, that he met his future colleague Kenneth Thompson.
Ritchie’s lifestyle at Bell Labs was that of a typical computer guru: he was devoted to his work. He showed up to his cluttered office in Murray Hill, New Jersey, around noon every day, worked until seven in the evening, and then went home to work some more. His computer system at home was connected on a dedicated private line to a system at Bell Labs, and he often worked at home until three in the morning. Even in the early 1990's, after he became a head of the Computing Techniques Research Department at Bell Labs, his work habits didn't change substantially.
When Ritchie and Thompson began working for Bell Labs, the company was involved in a major initiative with General Electric and Massachusetts Institute of Technology to develop a multi-user, time-sharing operating system, called Multics. This system would replace the old one, which was based on batch programming. In a system, based on batch programming, the programmers had no opportunity to interact with the computer system directly. Instead, they would write the program on a deck or batch of cards, which were then input into a mainframe computer by an operator. In other words, since the system was centered around a mainframe, and cards were manually fed into machines to relate instructions or generate responses, the programmers had no contact with the program once it had been activated. Multics, or the multiplexed information and computing service, would enable several programmers to work on a system simultaneously, while the computer itself would be capable of processing multiple sets of information.
Although programmers from three institutions were working on Multics, Bell Labs decided, that the development costs were too high and the possibility of launching a usable system in the near future too low. Therefore, the company pulled out of the project. Ritchie and Thompson, who had been working on the Multics project, were suddenly thrown back into the batch programming environment. In light of the advanced techniques and expertise they had acquired while working on the Multics project, this was a major setback for them and they found it difficult to adapt.
Thus, it was in 1969, that Thompson began working on what would become the Unix operating system. Ritchie soon joined the project and together they set out to find a useful alternative to Multics. However, working with a more advanced system was not the only motivation in developing Unix. A major factor in their efforts to develop a multi-user, multi-tasking system, was the communication and information-sharing between programmers.
Also, in 1969, Thompson found a little-used PDP-7, an old computer, manufactured by the Digital Equipment Corporation (DEC). To make the PDP-7 efficiently run the computer programs, that they created, Ritchie, Thompson and others began to develop an operating system. Among other things, an operating system enables a user to copy, delete, edit and print data files; to move data from a disk to the screen or to a printer; to manage the movement of data from disk storage to memory storage and so on. Without operating systems, computers are very difficult and time-consuming for experts to run.
It was clear, however, that the PDP-7 was too primitive for what Ritchie and Thompson wanted to do, so they persuaded Bell Labs to purchase a PDP-11, a far more advanced computer at the time. To justify their acquisition of the PDP-11 to the management of Bell Labs, Ritchie and Thompson said, that they would use the PDP-11 to develop a word-processing system for the secretaries in the patent department. With the new PDP-11, Ritchie and Thompson could refine their operating system even more. Soon, other departments in Bell Labs began to find Unix useful. The system was used and refined within the company for some time before it was announced to the outside world in 1973 during a symposium on Operating Systems Principles, hosted by International Business Machines (IBM).
One of the most important characteristics of Unix was its portability. Making Unix portable, meant, that it could be run with relatively few modifications on different computer systems. Most operating systems are developed around specific hardware configurations, that is, specific microprocessor chips, memory sizes and input and output devices (e.g., printers, keyboards, screens, etc.). To transfer an operating system from one hardware environment to another — for example, from a microcomputer to a mainframe computer — required so many internal changes to the programming that, in effect, the whole operating system had to be rewritten. Ritchie circumvented this problem by rewriting Unix in such a way, that it was largely machine independent. The resulting portability made Unix easier to use in a variety of computer and organizational environments, saving time, money and energy for its users.
To help make Unix portable, Ritchie created a new programming language, called C, in 1972. C used features of low-level languages or machine languages (i.e., languages, that allow programmers to move bits of data between the components inside microprocessor chips) and features of high-level languages (i.e., languages, that have more complex data manipulating functions, such as looping, branching and subroutines). High-level languages are easier to learn than low-level languages because they are closer to everyday English. However, because C combined functions of both high- and low-level languages and was very flexible, it was not for beginners. C was very portable because, while it used a relatively small syntax and instruction set, it was also highly structured and modular. Therefore, it was easy to adapt it to different computers, and programmers could copy preexisting blocks of C functions into their programs. These blocks, which were stored on disks in various libraries and could be accessed by using C programs, allowed programmers to create their own programs without having to reinvent the wheel. Because C had features of low-level programming languages, it ran very quickly and efficiently, compared to other high-level languages, and it took up relatively little computer time.
Interestingly, because of federal antitrust regulations, Bell Labs, which was owned by American Telephone & Telegraph (AT&T), could not copyright C or Unix after AT&T was broken up into smaller corporations. Thus, C was used at many college and university computing centers, and each year, thousands of new college graduates arrived in the marketplace with a lot of experience in C.
In the mid and late 1980's, C became one of the most popular programming languages in the world. The speed, at which C worked, made it a valuable tool for companies, that developed software commercially. C was also popular because it was written for Unix, which, by the early 1990's, was shipped out on over $20 billion of new computer systems a year, making it one of the most commonly used operating systems in the world.
At the end of 1990, Ritchie became the head of the Computing Techniques Research Department at Bell Labs, contributing to applications and managing the development of distributed operating systems. Later, Dennis was transferred to Lucent Technologies, where he retired in 2007 as a head of System Software Research Department.
Views
Quotations:
"It's not the actual programming that's interesting. But it's what you can accomplish with the end results that are important."
"Unix is basically a simple operating system, but you have to be a genius to understand the simplicity."
"The only way to learn a new programming language is by writing programs in it."
"Unix has retarded OS research by 10 years and linux has retarded it by 20."
"C is quirky, flawed and an enormous success."
"C++ and Java, say, are presumably growing faster than plain C, but I bet C will still be around."
"I'm still uncertain about the language declaration syntax."
"I'm not a person who particularly had heros when growing up."
"Obviously, the person who had most influence on my career was Ken Thompson. Unix was basically his, likewise C's predecessor, likewise much of the basis of Plan 9 (though Rob Pike was the real force in getting it together). And in the meantime Ken created the first computer chess master and pretty much rewrote the book on chess endgames. He is quite a phenomenon."
Membership
Dennis was a member of the National Academy of Engineering.
Personality
Quotes from others about the person
"Ritchie was under the radar. His name was not a household name at all, but...if you had a microscope and could look in a computer, you'd see his work everywhere inside." — Paul E. Ceruzzi, a computer historian
"He was truly an inspiration to all of us, not just for his many accomplishments, but because of who he was as a friend, an inventor and a humble and gracious man." — Jeong Kim, an ex-president of Bell Labs