The Impact of C

Posted by Uiri on Oct 14 2011

Let me preface this by saying I don't know any form of Assembly language. I know vaguely of Assembly but I have no need for it. Dennis Ritchie, the man who wrote C, passed away over the weekend after a long battle with an illness. When I first learned C, it was very easy to think of it as, well, portable Assembly language. Funny enough, that's more or less exactly what it is.

What made C special was that it was the first portable general-purpose language which was competitive with Assembly. In days where your byte could have any where from 6 to 12 bits, and pointers could be to bytes or to words, it is rather difficult to have something which will be portable and competitive with code literally handcrafted for the machine. When one is the first to market and everyone has been saying it couldn't be done, you have something which will undoubtedly get widespread use. Why do something which is said to be impossible if it is useless if it is possible?

If the previous paragraph or two have been completely incomprehensible and you're still reading, perhaps some clarification is in order. It is highly likely that the web browser you are viewing this on is written in C; or C++ — a derivative of C. The vast majority of the operating system, right down to the kernel, is probably also written in C. If it weren't for C, the internet as we know it wouldn't exist.

C was portable so Unix (written in C) was portable so when hardware became [relatively] really cheap, the natural thing to do was to port Unix and C to it. Unix was the operating system which had the first implementation of TCP/IP, the common language of the Internet and everything which is built on top of it including e-mail and the web, and Windows initially worked off of mimicing that implementation for TCP/IP functionality. Without C, your computer would likely be very different, even if a replacement language was used and C faded into obscurity.

Thus, C grew and it essentially took over the world. Most other programming languages have some resemblance to C, or are implemented in C or both. The profound ways which C has forever influenced thinking about programming is evident as newer programming languages borrow more from lisp and smalltalk. In its day, C was considered a high level language, because it was above giving manual instructions to the processor. Now it is below most languages because it has manual memory management and lacks garbage collection.

In short, despite the outpouring of mourning for Steve Jobs, Denni Ritchie's affects on the world will outlive him and computing would be very different without his language. Who knows, maybe it would've been better. Maybe it would've been worse. Maybe Microsoft's BASIC implementation would've taken the world. Due to its sharp definition of computing for nearly 40 years, it is essentially impossible to say.

This work by UIRI NOYB is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 2.5 Canada License.