Dennis Ritchie the father of everything

Since Dennis Ritchie passed away, I have been thinking to write something about this guy, not just because to me he is the most important computer scientist since early days of modern computer systems, but just because he was the father of everything we are running today.

The C programming language (Book cover)
The C programming language (Book cover)

Unfortunately the world did not give to him, what is in my opinion, the deserved attention in the moment of his death, because 7 days before another great entrepreneur had passed away, so the world media and market was more affected by his death. I’m talking about Steve Jobs, that is known as a great entrepreneur and business man, but without the work of Dennis Ritchie helping him indirectly, maybe his progression would have been more difficult than it was.

This is because all basic software of Apple, like MacOS X and IOS was written using the C language, created by Dennis Ritchie several years before at Bell Labs, and considering that both operating systems are UNIX-Like, the importance of Dennis Ritchie for Apple’s present day success increases, because he was the creator of UNIX too.

The Bell Labs.

It is impressive the influence of Dennis Ritchie in all modern languages, like, C#, Java, Shell scripting, and a lot of others that have their dialect based on C language, but when he created the C language I think that has was just thinking about reusing his works in new models of computers that were been born in the mid seventies.

In those days computer use was restricted to universities and big companies. Considering the corporate world I can say that this environment was a controlled place and it’s growth was maintained by other big companies like Hewlett Packard and IBM, but in university and the world of research this growth was more open and with no boundaries, I think that was almost chaotic.

At this time a well known research lab was the source of the biggest researches of the sixties and seventies, considering the computer science scene. This lab sponsored the development of a computer digital language whose main goal was to create a generic and abstract language capable to access the low level resources of any machine using a lightweight set of reserved commands, making it easier to learn than machine language.

I’m talking about the Bell Laboratories, a well known research institute at that time, created by another great genius and the father of all modern communication found today, Alexander Graham Bell. I remember in the early nineties I thought Bell Labs to be the most important place of technology since the sixties until those days and I was really fascinated by their creations, since C, UNIX and C++, all related to computer science, but if we consider the big legacy of Bell Laboratories, I must cite the transistor invention and the telephone, this one being the big start-up of Bell labs.

Dennis Ritchie and Ken Thompson at Bell Labs
Dennis Ritchie and Ken Thompson at Bell Labs

Maybe you know Bell Labs as AT&T, a big american telecommunication company from the eighties and nineties, but in fact AT&T is older than we know and the relationship with Bell labs came from the twenties and in my point of view, AT&T was a company behind the Institute Bell Labs, giving it financial support to develop the base of the current digital technology in the world.

Today Bell Labs is part of a French telecommunications company, known as Alcatel-Lucent and the good news about this is that the new company is keeping focus on technologies based on networking, software and other digital technologies. On the other hand other basic technologies like semiconductor research was taken apart.

The creation of the C language

 In the early nineties, I was very interested to learn about computer languages because I had started to study computer science in university and I was living a special moment where my colleagues and teachers were exchanging a lot of information about computer languages, mathematics, physics and other basic concepts.

In this motivating scenario where all seemed to be new, I was presented to the C language by several colleagues and specifically by a teacher, that was a student of the author of the well known best selling book Turbo C – The complete reference, Herbert Schildt.

The new edition of a classic - by Herbert Schildt.
C – The complete reference (Herbert Schildt)

Herbert Schildt was my first gate to the C language and after I started to learn just reading his books I wanted to learn about the creator of C language and why it was created, then the big question is why Dennis Ritchie created the C language ?

There are a lot of theories and tales about the motivation of the creation of the C language but in fact the real reason why Dennis Ritchie created the C language was because he was involved in UNIX development in conjunction with his big friend and colleague Ken Thompson, in the early seventies.

In those days, the UNIX operating system was barely beginning and it was completely written in assembly language for the DEC PDP-7 and it was known that PDP-7 was almost obsolete, then when the new DEC PDP-11 was released, the UNIX system would be dead too fast, because the compatibility between those machines was not so simple and natural as in modern computers.

UNIX (Thompson/Ritchie creation)
UNIX (Thompson/Ritchie creation)

The best choice was to look for a new, powerful and abstract language to use in his port of the UNIX operating system and the first choice of Ken Thompson was the B language, that is a variant of an older language, called BCPL.

Unfortunately B lacks a lot of features to help the programmers make good, abstract and scalable softwares.

Knowing all of these limitations Dennis Ritchie started to create the C language, based on some concepts of B language but without all of the features lacking of the B language.

After this, in the mid seventies the UNIX system was completely rewritten using the C language and until now UNIX and C, both, have been the most important technologies present on several modern computers and for overall learning in computer science too, thanks to Dennis Ritchie and Ken Thompson.

The legacy

Today we are living a great moment in the area of technology, a moment when new and exciting technologies are being born every day. But I think that we must never forget about these grand masters of computer science, that in the past created the strong base that we are using now and Dennis Ritchie is for me the most important of all computer scientists. Just because other great masters like Bjarne Stroustup, the father of C++, James Gosling, the father of Java and many other important guys, based their creations on Dennis Ritchie’s work.

C++ (Created by Bjarne Stroustrup)
C++ (Created by Bjarne Stroustrup)

I believe that Dennis Ritchie is directly and indirectly influencing all generations of new computer scientists and the IT professionals in general, because almost all commercial and open source technologies are based on his work.

Just to cite an example, today we have open technologies like Java and the other hand we have closed technologies like C#, these are two technologies that are now competing for attention from most professionals of the technology information market, but it is known that both share the same syntax and other features, and why not say, the same spirit of C language…….the spirit of Dennis Ritchie.

Ken Thompson and Dennis Ritchie
Ken Thompson and Dennis Ritchie

Enjoy the silence.

[]’s
PopolonY2k

References

Dennis Ritchie (Bell Labs page)
http://cm.bell-labs.com/who/dmr/

Dennis Ritchie death announcement (NY Times)
http://www.nytimes.com/2011/10/14/technology/dennis-ritchie-programming-trailblazer-dies-at-70.html?_r=0

Steve Jobs death announcement (TechCrunch)
http://techcrunch.com/2011/10/05/steve-jobs-has-passed-away/

Apple WebSite
http://www.apple.com

MacOSX (Wikipedia)
http://en.wikipedia.org/wiki/OS_X

IOS (Wikipedia)
http://en.wikipedia.org/wiki/IOS

The C language (Wikipedia)
http://en.wikipedia.org/wiki/C_(language)

Bell Labs (Alcatel website)
http://www3.alcatel-lucent.com/wps/portal/belllabs

UNIX
http://www.unix.org/

C# (Wikipedia)
http://en.wikipedia.org/wiki/C_Sharp_(programming_language)

Java (Wikipedia)
http://en.wikipedia.org/wiki/Java_(programming_language)

Shell Script (Wikipedia)
http://en.wikipedia.org/wiki/Shell_script

Hewlett Packard
http://www.hp.com/

IBM
http://www.ibm.com

Alexander Grahan Bell (Wikipedia)
http://en.wikipedia.org/wiki/Alexander_Graham_Bell

C++ (Wikipedia)
http://en.wikipedia.org/wiki/C%2B%2B

AT&T
http://www.att.com/

Alcatel-Lucent
http://www.alcatel-lucent.com/

Turbo C – Complete reference (Amazon)
http://www.amazon.com/Turbo-Complete-Reference-Herbert-Schildt/dp/0078817765

Herbert Schildt
http://en.wikipedia.org/wiki/Herbert_Schildt

Ken Thompson’s bio at Bell Labs
http://www.bell-labs.com/history/unix/thompsonbio.html

DEC PDP-7
http://www.linfo.org/pdp-7.html

DEC PDP-11 (Wikipedia)
http://en.wikipedia.org/wiki/PDP-11

B Language (Wikipedia)
http://en.wikipedia.org/wiki/B_language

BCPL Language (Wikipedia)
http://en.wikipedia.org/wiki/BCPL

Bjarne Stroustrup
http://www.stroustrup.com/

James Gosling
http://nighthacks.com/roller/jag/