R.I.P. Denis Ritchie



#2

Died yesterday at age 70.


#3

Your date "pointer" is corrupt!! Dennis passed away October 12.

Namir


#4

Quote:
Your date "pointer" is corrupt!! Dennis passed away October 12.

Namir


I discovered that too last week after I'd unwittingly made a
reference to him elsewhere in this forum.

It seems truly unfortunate for a man whose accomplishments
permeate modern technology, to have his passing go comparatively
unnoticed. Steve Jobs releases a few well thought out consumer
devices and is hailed as a genius. So be it, credit given where
it is due. But Dennis Ritchie provided the "shoulders" the
entire industry built upon for the last 30 years. I can't even
think of an equivalent analogy to underscore what this man has
given us.


#5

While I made a living for may years writing C++ books, C++ would not exist if C did not succeed as it did. The credit goes to Ritchie! His influence is indeed great and has gone without the credit it truly deserves.


#6

Mr. Gates had an article in the Scientific American in the late 80th. That was the point I knew people are valued for their business, not their thoughts.

#7

I have real trouble dealing with the concept of "credit for C++". I'd be more inclined to use the phrase "Blame for C++"...

Of course that really goes to Stroustrup, not Richie. C was actually a wonderful accomplishment for its time, before it was eaten by Cthulu and crapped out as C++.


Edited: 16 Oct 2011, 1:07 p.m.


#8

What do you dislike about C++?


#9

Now for a long chewing over the question of which OO programming language/platform/environment is better. We can also haul in the merits of design by committee, whether or not this or that language has been used to create this or that wonderful/monstrous/useful/unusable software, whether this or that language can be used to do those things and so forth.

Oops, didn't mean to bring Forth into the discussion. :)


#10

Quote:
Now for a long chewing over the question of which OO programming language/platform/environment is better.

Better for what? Given that language/platform/environment is often intertwined, then you have to use what the platform supports. E.g. Objective-C for iOS & OS/X, C++ for GNOME/KDE, C# & C++ for Windows, Java for JVM, etc...

OO language/platform/environment sometimes feels like a chore.

C OTOH is near ubiquitous, it's small, fast, and sexy, and can scale up and down.


#11

I agree with you about C, Egan. I just sensed the imminent breakout of hostilities in the holy language wars around C++. :)

#12

Well, it's an object oriented layer on top of a non-object oriented language. In fact as you know it was originally simply a preprocessor that spit out C code. Since it's not really OO at the roots, it has a number of, shall we say, problems...like the utter lack of garbage collection.

And really, any language that needs const_cast, reinterpret_cast, static_cast, and dynamic_cast (good quiz to see if someone really knows their C++: ask them to explain, in detail, what each of these does and when it should be used) obviously has deep architectural problems.

Basically, C++ gives you "more than enough rope". Stroustrup is not sympathetic: here's a quote from his "C++ Style and Techniques FAQ":

Quote:
How do I deal with memory leaks?

By writing code that doesn't have any. (Goes on to explain C++ standard containers)


But my biggest complaint is that it's based on C. Now, I have nothing against C; it was hot stuff in the 70s. But it limits what C++ can do. For example, my gripe about no garbage collection? It's impossible to add to C++, because of C. Nothing you can do to C++ will prevent a programmer from writing code like:

int c[100];
c[101] = 23;

...because C arrays are just shorthand for pointer arithmetic, and a pointer can point to anything in memory, right? Fixing this would break the entire world's base of C code.

The only thing that ever made C++ bearable for me was the amazing Qt application framework. Loved that thing...


#13

I think one of the design goals behind C++ was to add OO capabilities without taking away the ability to write small and fast code when you want it. Garbage collection and array access checking come with a significant performance penalty.

On the other hand, they are also the cause of many MANY bugs, and as a friend once said "the biggest performance improvement is when the code goes from "not working" to "working". Put another way, if you're allowed to have bugs in the code, then it can be made to run arbitrarily fast.

#14

Stroustrop is the reason why I try not to stray on to the A&M campus, for fear that I might do something I might regret.

Eric

#15

Dennis MacAlistair Ritchie... Onward and upward...

I quite agree with the sentiments you have expressed.


#16

Dennis with Ken...

#17

Actually both (Jobs and Ritchie) have some things in common. Even though Jobs was an entrepreneur and a businessman (not a scientist or inventor, as he has been portrayed by the unsurprisingly ignorant media) and Ritchie was a scientist.

Both took part in a revolution against undue complexity. Ritchie, with Ken Thompson, developing C and Unix while the next big thing was an operating system, MULTICS, more complicated than soviet bureaucracy. Jobs, by leading Apple towards making computers much more usable for the general public, in the case of the Mac, and, later, to launch the computer-that-is-not-a-computer, the iPad.

Both were immune to the dreadful Second System Syndrom described by Fred P. Brooks in his awesome book, "The Mythical Man Month". Following Jobs, who, although obviously didn't "invent", "code", etc, Apple products, there is a steady improvement from the Apple II to the Mac, to the NeXT, and to the iPhone/iPad.

In the case of Ritchie, from C and Unix, and, although Plan 9 was mostly (as far as I know) Pike's and Presotto's idea, I'm sure he contributed ideas, then Inferno... Eveything I've seen coming from that research group led by Ritchie has been brilliant. From systems software to just software engineering (or I should say counter-engineering).

Both have made enormous contributions to technology. I don't think there are entrepreneurs like Hewlett, Packard or Jobs, and by looking at the sad state of software engineering in general, seems that generation of computer scientists won't get a replacement either.

I think we will miss them sorely.

#18

C and Unix are of his legacy.


#19

It's impossible to overstate the influence Dennis Ritchie had over my life and career. He was co-developer of Unix, inventor of C and the driving force behind rewriting the former in the latter. That marriage between Unix and C launched an interesting experimental tools development platform into dominance over academic Computer Science, and later broad commercial success as a desktop and server OS. The static linking between Unix and C carried over into even broader and more influential success in the forms of Linux and gcc. I swam in that torrent for most of my career.

Obviously computers would have changed the world without Mr Ritchie's influence. But the open nature, portability and simplicity of Unix, its encouragement of collaboration, and its wide distribution (which AT&T eventually lost control over) were key ingredients in the free-wheeling explosion of creativity that defined the astonishing computer revolution of the late 20th and early 21st centuries. That was my era, and thanks to Dennis Ritchie, in large part, it was a real joy to participate in.


#20

I can relate Howard, I remember programming pre-C language. I had developed a 'wish list' of things a programming language really ought to have. Then Dennis created C. Bingo! My Pascal friends all said, 'too cryptic', I just couldn't understand what they were talking about. (Strings?, too much overhead, not flexible enough. They'd screw up all my automated formatting sooner or later!) When I got a copy of SAMS 'Programming in C' all the example code compiled and ran without errors on three different computers systems with three different operating systems!! I had read a LOT of books, I had never seen ANY book that all the example code compiled and ran without errors even on the target system! But I digress...

Then there is UNIX... A rational operating system... What can one say...

It is my opinion as well that someone like Dennis Ritchie does not receive the appropriate financial compensation for the true extent of their contribution to our world. It seems sadly to indicate a perverse set of priorities in effect.


#21

I first heard of C and UNIX in the mid '80s while in high school. I already knew BASIC, Pascal, and a bit of 6502 ASM, but when I saw C (and UNIX) it was love at first sight. C was small, direct, and to the point. It was beautiful. The C Programming Language (Ed. 1, (K&R)) was the easiest programming book I had read. I truly appreciated the brevity of it. And I liked how pointers were handled.

Every computer I own runs UNIX (OS/X) or Linux. The UNIX philosophy to treat all devices as files coupled with piping and redirection has made working with UNIX very productive and powerful. In the mid '80s I also picked up The UNIX Programming Environment by Kernighan and Pike. This book compliments The C Programming Language very well. Both books served me well my career transitioned to C and UNIX.

Lastly, I have to give a shout-out to Stevens (R.I.P.). His books on UNIX programming and TCP/IP are priceless.

Denis, thanks for C and UNIX. If it wasn't for C and UNIX I would have ended up as a teacher. Not that there is anything wrong with that.

Edited: 16 Oct 2011, 5:54 p.m.

#22

I am also a big fan of C, in the early days of PCs I had Turbo Pascal since it was one of the very early low cost compilers for PCs, but the breaking point came when I was writing a program that involved rolling lower case text to upper case, a simple matter of subtracting 0x20 for the character value, except in Pascal, that won't let you do math on characters, so I said &^%&%&* this and rewrote it in C which like unix lets you do pretty much what you what, unix and C not only will let you shoot yourself in the foot if you are not careful, it will also load and aim the gun for you..... but that freedom is also the beauty of it.


#23

Hi Paul,

Quote:
I had Turbo Pascal since it was one of the very early low cost compilers for PCs, but the breaking point came when I was writing a program that involved rolling lower case text to upper case

Reading this brought back a distant memory for me. I thought I had written a Turbo Pascal program many years ago the converted lower to upper case and I didn't remember it being that difficult. Being someone who never throws away anything, not if it can be saved to a hard drive, I looked for it and found my original program "UPPER.PAS". Program is dated 1989. It's actually very easy to convert from lower to upper case as follows:

CH := UPCASE(CH);

While I have done a lot of programming in C (NOT C++), I still have a fondness for Turbo Pascal and still use it (or FEEPAS) a lot for my simple programming tasks.

Like many others here, I too studied the The C Programming Language (Ed. 1, (K&R)) and still have a copy somewhere.

Bill

#24

The Unix environment nurtured things like grep. After I squeezed grep dry I went searching for MORE POWER.

I found SED, diabolical.

Never graduated to awk. (I believe the 'k' in awk stands for Kernighan.) If I needed that much horse power I wrote filters in C from my own filter templates. Okay I guess I've drifted off topic a bit.

Dennis with Ken again, shaking hands with someone that looks vaguely familiar? Looks like, Hugh Hefner? No that's not right...


#25

Author names initials (Aho, Weinberger and Kernighan) are the origin of the "awk" name. BTW, Katie Wasserman, who regularly posts here and is a true expert about calculators, once mentioned she used to develop programs in awk.

#26

AT&T did not actually lose control of Unix and would eventually sell it, however what happened is a number of Unix like OSes appeared the first of which is arguably BSD. In the beginning AT&T gave unix away free to educational institutions at about version 7 time AT&T was starting to think that maybe unix could be a commercial product, however they could not market computer as the result of a consent decree dating back to the late 50s. By the time System V rolled around At&T was no longer giving unix away to universities, howevr by that time USC Berkley had already finished BSD, one of the big contributors to that effort was on William Joy who created the vi editor and would go on to be the head of software at Sun. At an University across the pond in Holland noted OS professor Andrew Tanenbaum who had been using th3 AT&T unix as an example to teach operating systems created a stripped down unix like OS he christened Minix and wrote a text book about it "Operating Systems Design and Implementation" also know as "The Minix Book" a very excellent and readable text book if you are at all interested in what makes an OS tick.
A little later Linus Torvalds came along with his kernel of a unix like OS called Linux, I started playing with linux almost as soon as he started distributing it, back when changing the configuration of the kernel required recompiling it.
Most commercial unix systems are based on a license originally obtained from AT&T in most cases, later from Novell and SCO, which ended up with a high profile lawsuit by SCO against several unix vendor, that SCO eventually lost, and as part of that suit it was determined the trademark really belonged to Novell. Currently the trademark is owned by a company known as the Open Group. Any OS that calls itself Unix must have a valid license to use the trademark, as well as the licensed code. Most current unix vendors have added significant features to the unix base code some which are shared and some that remain proprietary.
I have been involved with unix systems professionally since the mid 80s and it was love at first sight for me too. I have watched unix based system grow from workstations size machine that where used to run small businesses as well up to the the enterprise level systems we have today that rival mainframes in power and capacity.

With regard to Dennis Ritchie he created the C programming language, however unix was a creation of Ken Thompson, who had been Bell Labs representative on the multi-vendor MULTICS project that had just collapsed, the original unix was written in assembler on a PDP-7 system, Ritchie created C based on an interpreter "B' that Thompson had created for his new toy, they then worked together to rewrite the OS in C, to this day unix implementations are written in C. Another person of note involved with the development of C and unix at Bell Labs where Brian Kernighan, Brian and Dennis would author what is the standard bible of C "The C Programming Language".


#27

I once heard that the C language was derived from "B" and this one, in turn, derived from BCPL. As the sequence of letters of this one starts with B and C, some people supposed that the succesor of C was to be called "P". Others supposed that, in alphabetical order, after "B" and "C" the next language would be "D". But finally it was C++, as all we know.

#28

Quote:
AT&T did not actually lose control of Unix and would eventually sell it, however what happened is a number of Unix like OSes appeared the first of which is arguably BSD.

I beg to differ. You had to buy a Unix source license from AT&T to run BSD. They absolutely tried to retain control over BSD even after the Net 2 release, which had striven to remove all AT&T copyrighted code. I knew some of the BSDI folks and had their beta release deployed running my very first firewall. AT&T certainly did lose control of the BSD variant of Unix, though the ink didn't dry until shortly after they sold the IP to Novell. That settlement later came back to haunt SCO when they attempted to claim ownership over Linux, by asserting it was derived from Unix.

#29

RIP Ritchie - condolences to his family. Thank you for your contributions, Mr. Ritchie!


Forum Jump: