RIP Dennis Ritchie

The outpouring of praise and tributes for Steve Jobs this past week was really something to see and was well deserved. He was a true innovator and bold entrepreneur who had a huge influence on the development of our modern digital world and how we interact with it. However, all the focus on Steve Jobs made it easy to miss the news that another incredible genius passed this week, one who arguably had a bigger influence on the world than Steve Jobs did.

In the early 1970s a man named Dennis Ritchie invented a programming language he called C, and it is possibly the most important thing ever invented in the computing world besides the computer itself. C is a programming language first developed for the Unix operating system (which Ritchie helped develop), and now C and Unix form the basis of almost everything we do with computers. The Internet basically runs on Web servers and routers using Unix written in C (or Java or C++, which are based on C).

Mac OS X is a Unix-based operating system, a direct descendant of the operating system and programming language Dennis Ritchie brought to life, as is iOS, the mobile Apple OS that runs the iPad, iPod touch and iPhone. Even Windows was written in C at one point. Steve Jobs and any number of other developers stand on the shoulders of this quiet man who worked behind the scenes yet was one of, if not the most influential person in computing. It’s not an exaggeration to say the world as we know it today would not exist without Dennis Ritchie’s work. He passed away this week at the age of 70 after a long illness.

Ritchie worked at Bell Telephone Labs like his father before him. Bell Labs of the 20th century was one of the most creative technological research and development facilities anywhere ever, and its inventions and personnel have shaped the world we live in. Among a long list of Bell Labs’ accomplishments in pure research and practical applications is the development of the transistor by three Bell researchers, probably the most important invention to ever come out of Bell.

The transistor changed the world. It let us move away from vacuum tubes as components in electronic devices and let us start making things smaller, cooler, more portable and more powerful. It made modern electronics possible. One of those employees who developed the transistor left Bell and in 1956 formed his own company in a little town that would become known as Silicon Valley. Employees who split off from his company formed some of the most successful tech companies of all time, including Fairchild, AMD and Intel. The phone company may not seem too exciting, but Bell cultivated a culture of research and innovation that let brilliant minds have their way and produced brilliant results.

It is in this culture of not only innovation, inventiveness and technology but also practicality where Ritchie worked on developing operating systems in the computer sciences division of Bell Labs. He and several colleagues developed Unix in the late ’60s. Like most operating systems of the time, it was written in assembly language. Assembly language is a low-level programming language. It is actually the abstraction level just above programming in machine code, which is programming by directly addressing what happens to single bits of data in memory or call stacks, or in what order these single operations are to happen. In assembly language, something that might take dozens of lines of machine code can be expressed in a few lines, and so on up through abstraction levels. The higher the level of programming, the more powerful and involved the commands can be and the more abstracted from the machine code they are.

Of course higher-level programming is the standard today; if it wasn’t, there wouldn’t, for instance, be people designing apps for the App Store. Creating even the simplest apps we use today would involve monumental amounts of design and labor if each were created at the assembly-language level. In the era during which Ritchie worked, most engineers felt that low-level programming was the way to go. It provided an extreme level of control over the machines of the time. Higher-level programming languages tended to not use resources efficiently, and that was a huge driving paradigm then. To put this in context, you have to remember what that time was like. No iMacs or PCs in people’s homes because they didn’t exist. No Internet. No i-Anything. No slick user interfaces. Computers were mostly huge things guys in white coats with advanced degrees worked with.

After working for a couple of years with the Unix he had developed, Ritchie found he needed a better way to program different builds of it. One of the drawbacks of low-level programming is that it gets more platform-specific as you get closer to machine language. At that lowest level the programming is written for the specific processors and memory architecture used in the machine. The result is that, at low levels, if you want to move an OS to a different machine and be able to program it, then that OS needs to be completely rewritten to interface with that machine’s hardware—a complex and time-consuming task to say the least. Ritchie decided to develop a higher-level language that would overcome this hurdle and make Unix a portable operating system. Over the next few years he developed C and the rest is history. Unix and C could be ported to almost any hardware with ease, and C was the software that made it happen and then let people start really programming.

The other part of the equation that made C spread so quickly was that AT&T at the time was not allowed to sell computer products including software due to antitrust agreements, and they were required to license anything they developed in the field to anyone who asked. So in a very short time this powerful portable language was in the hands of thousands of people in universities and companies, all exploring its capabilities and developing software with it. And here we are forty years later and C or one of its variants powers our digital world. C and its variants run everything from the smallest handheld devices and system hardware like routers right up to supercomputers, and everything in between. Steve Jobs gave us ways to interact with the digital world that are elegant and visionary. Dennis Ritchie’s C built that world in the first place.

Similar Posts

  • iMac and Mac mini Benchmark Results

    Over on AppleInsider they have an article talking about how the new Intel iMac stacks up against the previous generation iMacs. They also…

  • Why It's a Great Time to Buy an iMac

    About this time last week, Apple rolled out a wave of new product updates. Among them were updates to the 21.5-inch and 27-inch…

  • Making a Movie

    My good friend and I purchased a Hi8 Sony Handycam in 2000. For the next 5 years and 3 cameras later we had…

  • Sunday Drive

    Ahh! What can be better than a Sunday drive after visiting the grandparents? I was headed home and listening to my iPod mini…

  • RSS Feeds

    I started using a RSS reader recently when I was faced with far too many blogs to check per day for a fitness project I’ve been a part of. Checking close to 20 blogs every day meant opening the domain, remembering if I read that article, then going on to the next one. It ended up resulting in too many bookmark folders in my browser’s bookmark bar. Then opening all of them at once resulted in a lot of memory being used by my web browser.

    I then remembered a little icon I’ve see before. There should be one at the top of this page. This means that an RSS feed is available for the blog or article website you’re reading.

    What’s an RSS feed? RSS (usually) stands for “Really Simple Syndication.” This means you can have your article without all the ads and spam that cover some web pages. All you need to do is find the URL, or address, for the feed you’re looking for. For Google BlogSpot blogs, this means using a special link in conjunction with the blog name. For other websites, they may need to provide it for you.

    For example, take the New York Times. I would have to check this website every day, along with all the other news sites I read. What if I’m more interested in just receiving the new articles? Or even a specific category of articles? If you’d rather check the articles in this manner, you could check and see if they offer an RSS feed (most sites do now). I just searched Google for “nytimes rss” and immediately was given one of their own pages, listing their RSS feed addresses.

    What program should you use for a RSS reader? I’ve tried a couple on the Mac, and I’ve settled on Shrook for the moment. It’s very simple to use, and has an iTunes-like interface. It’s a light program too, that doesn’t take up too much space or memory. If you leave it running, it will automatically check for updates every 30 minutes and alert you with a badge on the dock icon when there are new articles or blogs.

    But wait! There’s more! If you prefer to keep all your updates in one place, Apple Mail can also check RSS feeds for you! Just click the little + in the lower left of the Mail window and select “Add RSS Feeds…”.

    The iPad now has some pretty nifty ones, with nice touch interfaces, like Reeder.

    Just about all devices have access to RSS feeds now, and with just spending a few minutes of your time adding the RSS links you read on a regular basis, you can save yourself a lot more time in the long run.

  • iOS vs. OS X

    If you asked most people what the difference between iOS and OS X is, most people would provide answers to the effect of…