Saturday, November 5, 2011

C Lives Forever

Sigh, the co-author of the C programming language, Dennis Ritchie, has passed on. At age 70 he wrote his last line of C code..

Not that the Economist magazine has any lock on technical truths outside its domain, but they state "The gizmos of the digital age owe a part of their numeric souls to Dennis Ritchie and John McCarthy." John McCarthy, author of LISP (little insipid silly parentheses), another programming language.

Most of Ritchie's work was done at ATT Bell Labs. The Mothership of Northern New Jersey, where all my friends' parents worked. Kind of like an Intel/Hillsboro relationship, back in the day. In fact my best friend Ellen, her dad worked at the Murray Hill location, the real core of the Mothership.

Everything I learned about social dyanamics for a group of 50 people I learned from sitting on the C language committee, back in the late 80's. X3J11, which sought to take the simple pure language that K&R (Kernighan and Ritchie) developed, and turn it into an actual ANSI standard. And an ISO standard as well (a trip to Paris, yes!!)

Every representative on the committee worked for a purveyor of C compilers, and my sitting there was no exception. I was there to see what was up, not make changes or anything. But the Borlands and Microsofts of the world were there to protect their own version of the language.

The real take away for me was that in any group of 50 people, most will follow. A couple will lead, and everyone else will believe what they tell them. PJ Plaugher, an independent consultant, the kind who could bang his shoe on the table for emphasis if needed, was such a leader.

But the best moment was when Dennis Ritchie decided to join our little group - the author himself! We were surely honored. But, his purpose was to protect the purity of his language. The creative language engineers on the committee wanted to introduce "safety" type words that would impact the semantics of the language. I recall the word "noalias" - a new keyword. It would mean that the object it pointed to was not some wild pointer that could point anyplace. Making C safe for Visual Basic programmers I guess (look up "goto considered harmful" - the oft-referenced article that states too much Basic in your life will cause brain damage).

Safety - no wild pointers! A pointer is something that points to an area of memory, indirectly. Really handy for linked lists and things like that. Fortran types probably wouldn't understand, where you have to declare fixed size arrays. Well, back in the day you did, I wonder if Fortran is still alive, and has adopted sexy new features.

So Dennis himself got up and shouted "noalias is an abomination!!!" OK! We were awed. He was right of course. Stop all this silly language engineering. C isn't about safety, as if you could really control everything.

C begat C++ (which I don't see anyone talking about, thankfully). C begat objective-C (used by Apple), C# (Microsoft), and Java. I didn't know C was considered a predecessor of Java, I thought Pascal was, but hey - its in print now so maybe they are honoring C in ways I never even knew about.

Java, inside that little iphone next to you. Proving once again that the mothership, ATT Bell Labs, located in New Jersey, has had a powerful impact on the world. and continues to do so, even after its author passes on.

No comments:

Post a Comment