Dennis Ritchie & Steve Jobs

I haven’t commented on the sad death of Steve Jobs before, but now that I found out Dennis Ritchie (dmr) has also passed away, I’m thinking this week marks such tragic losses to computer science/the computing industry that something needs to be said.

Thing is, I find myself a bit too stunned for words.

Steve is much better known than dmr, no doubt. What I can’t help thinking today, though, is that he effectively built his career on dmr’s work — that is no slight against Mr. Jobs, mind you. It’s just the realization that much of the technology the Apple of today is built upon is more or less directly derived from dmr.

Let’s take a look at this, shall we? Back in the 1970s, dmr — along with notable others, of course — started a revolution in the field of computing by writing an operating system called UNIX that was intended to run on all kinds of hardware. To understand the impact of this it’s important to realize that before this attempt, each computer systems manufacturer shipped their own, custom operating system with the hardware. UNIX was effectively the first attempt at the portability we take for granted nowadays1.

In order to achieve this portability, dmr co-created a new, portable programming language called C, and UNIX was (re-)written in C.

UNIX had such a huge impact that it’s design influenced pretty much every modern operating system in use. Windows NT — the technology derived from OS/2 that still powers modern Windows PCs in one form or another — originally shipped with a POSIX implementation in order to provide UNIX compatibility, despite being a completely new technology.

So what about Jobs?

Every2 operating system since UNIX is implemented predominantly in C, and Apple’s Mac OS (Classic) is no exception. When Jobs briefly left Apple, it was to run NeXT, a company producing workstations with an operating system similar to UNIX called NeXTSTEP.

NeXTSTEP, while based on UNIX, also wanted to provide an object oriented API to software developers, and to that end a good amount of the OS was implemented in Objective-C, a strict superset of the older C programming language that added object orientation.

Guess what happened with NeXTSTEP when Jobs went back to Apple? He took it with him, and it became Mac OS X — not as a rebranding, mind you, but as what largely is a re-implementation. The OS kernel was a regular BSD-style UNIX, on top of which NeXTSTEP’s Objective-C APIs were built.

As a programmer, this legacy is visible even in today’s iOS, the operating system that powers Apple’s mobile devices. The naming of API symbols, such as NSString speaks volumes: the leading NS stands for NeXTSTEP; the basic APIs prefixed with NS are taken pretty much verbatim3 from NeXTSTEP.

So… Steve Job’s greatest successes are built with the help of UNIX-derived operating systems and C-derived programming languages.

Much the same can be said of every successful computing company (with Microsoft partially excepted), of course — again, this is in no way meant to slight Steve’s success.

However, when a big company like Apple posts a poignant obituary to Steve that is picked up by the world’s media, it seems appropriate to remember the giants on whose shoulder he was standing. The guy who made UNIX, and the guy who made UNIX cool.

You changed all our lives, dmr.

  1. Especially in the days of “web apps”. The days we expected to run a website only in a specific browser are long gone, even if it still needs to happen on occasion. []
  2. I can’t think of exceptions; I am, however, only counting operating systems that run on hardware/firmware directly. []
  3. Updated, of course. []

  • Eremit

    Well spoken!

    • unwesen