Discovering Dennis Ritchie’s Lost Dissertation
computerhistory.org
computerhistory.org
I asked him what that was about and he dismissed it with a wave of his hand, as if annoyed: "oh, just something my brother did".
To be fair, I was there complaining about something as teenagers are wont to do so I probably put you in a bad mood :)
Unfortunately no scan of the other two (feuds and views).
Here someone find a more permanent place for it: https://send.firefox.com/download/c1783a94da0e8cfa/#sklTlfgc...
If you can't, do you mind if I crosspost it there?
It's high quality, but it seems satured if compared to other photos. Maybe someone with the skills can fix that?
Oregano is still around!
Lieutenant Dave Spradling : Yeah, but your client thought it was marijuana.
Kaffee : My client's a moron. That's not against the law.
Lieutenant Dave Spradling : Kaffee, I have people to answer to, just like you do. I'm going to charge him.
Kaffee : With what? Possession of a condiment?"
They do mention the circuit simulator, SPICE in that same thread. But still, not this oregano for sure.
https://groups.google.com/d/msg/comp.unix.wizards/kFdPoJBpcS...
EDIT: just noticed the comment by user kps in the sibling tree - might not be the software since it is too recent to be on the poster.
https://upload.wikimedia.org/wikipedia/commons/6/67/USB_icon...
Lambek in turn cites Melzak's "An Informal Arithmetical Approach to Computability and Computation" which not identical - it has transfer and arbitrary compare branch instructions - but that seems a compromise for pedagogical purposes as deriving both from the "abacus" seems fairly trivial to me.
Does anybody else have similar experiences? I'm interested if there are other avenues that somebody could try as well.
My university library has a dissertation office with a copy of every one of them back to 1931. You may not be able to find them online, but you certainly can if you go in person during business hours. Is that unusual?
I have tried contacting many different people about this without any success. Morkovin died in 2015 around the time I learned about the paper. His family has never responded to my correspondence and I do not believe they have a copy. The one professor who did have a copy of it threw out his collection of papers a few years before I asked him. Morkovin was a professor at the Illinois Institute of Technology and they do not have it in their archives. Morkovin likely wrote the paper while working for the Martin Company (now merged into Lockheed Martin). It is likely that the paper was also filed as a Martin Company research report, but I later learned that Lockheed Martin has no copies of the Martin Company research report series since the Martin Company apparently destroyed the paper copies intentionally before the merger (I have no detail past that). NATO published other papers from this conference but not this one. They may have a copy but they have never replied to my correspondence.
I do know of a professor looking for a copy of this paper, but he has also not found it either. It would be nice to find a copy, but it's not a high priority for me.
Ritchie did not seem to be driven by status seeking but instead by the urge to build things.
(I'm probably just cynical, but if we took up a large enough collection, I'd bet they'd be willing to grant a degree in lieu of naming a building.)
If anyone wants to discuss this further, email me.
\* The first copy of the thesis linked in OP is 179 pages but it's very dirty and would need to be printed in color; the second copy, https://archive.computerhistory.org/resources/access/text/20... , is in much better shape and can be printed in BW.
Kids: If you meet your heroes, say something. "Thank you" is good if you don't have the words.
Case in point:
Andrew Tanenbaum: I said that his work was amazing and thanked him. He shrugged me off. I think he felt busy or didn’t care. I was happy that he listened.
Jane McGonigal: retweeted my question while I had 0 followers and followed about 10 people.
A semi-famous Dutch rapper: he was appreciative.
I have many examples with non-famous people too. The rule applies to both. I originally learned it as a dating concept (a decade ago) but quickly decided to compliment anyone that I genuinely wanted to give a compliment.
The reason it can still be quite amazing is simply because strangers don’t dare to compliment other people that much. I have only seen it once from another person.
You can test this theory by giving a compliment to someone you think never receives it but deserves one (my go to: cleaners, especially if it’s really clean) and to someone who does receive them more often.
My experience: both can still be quite awesome but the cleaners I complimented really went out of their way to be appreciative (not always, just sometimes). One even invited me to his home and I discovered he also was a music producer on the side. We made some music together as I am a hobbyist myself.
I never looked at cleaners the same way again.
Cleaners are people and are as complex, multi-faceted and interesting as anyone. No-one ignored me when I was a cleaner (I'm not a person to let them!), but I knew a girl who cleaned at a uni and she felt the students ignored her. She was a great person and they would have loved to have known her, she would have loved them back, it could have been great, but they probably didn't see her and I think she felt they were above her, and didn't try (well, smart students at a uni, she was a menial worker etc).
So the gap was never bridged - and had it been bridged, simply being acknowledged and chatted to by them, and appreciated as a person, would have helped her through a truly terrible time in her life. As well as making her job much nicer in the not-awful parts of her life.
People often don't see cleaners, cleaners/janitors/maintenance etc. sometimes they feel overawed or outclassed or something and scared off. Learn to see them, learn to say hello, let them know they are appreciated (as people, not as cleaners etc). It makes a huge difference to someone's work of scrubbing the floors, it really does. Like I said, it was my job once.
I have the same reaction to people thanking me out of nowhere especially when I am deep into my own thoughts and it's awkward to say something after the shrug. The realisation comes latter. So there is a chance he did appreciate your thank you but couldn't reply back properly.
I tend to take the most optimistic interpretation.
> I tend to take the most optimistic interpretation.
Yes, always take the most optimistic interpretation compatible with the known facts. Best way to stay happy.
I'd signed up to attend his 'afscheid' lecture, thinking I might try go get my copy of 'Computer Networks' signed. Did not get around to going, probably for the better ;)
It's hard to overcome the 'say nothing' reflex. Years ago, g/f and I were visiting the Carl-Henning Pedersen museum in the town of Herning (DK), somehow we were the only visitors on that afternoon. We were blown away by the amazing wall decorations and his art. On the way out we ran into someone from the museum's staff and the Maestro himself (this was a few years before he passed away). What did we do? We just smiled and walked past them. I dunno....
And +1 the cleaners, for sure.
I have found that some people always view you as stupid when you’re doing certain jobs. When I was serving pints in a pub, people just assumed it was my career & that I was thick.
I’ve found it very important to not pre-judge.
No one ever did anything worth mentioning for others to admire them, they did it because they had to for whatever reasons.
Treating them the same as you would any other person is likely to have a more positive effect.
I've had some really interesting interactions with famous people I didn't even recognize until later.
Turns out he’s been flying to be part of a major talk show. The next night she watches the host ask the author about being famous. The author responds by saying that best part is that people approach him, and that he therefor gets to talk to so many different people, hear their stories and learn about their experiences.
So yeah. Say “thank you”.
I'm a huge gearhead. I live in the US, but a few years ago I was in Rome for work. I was out to a late lunch with my boss and was explaining that one of my favorite boutique car manufacturers, Pagani, is just south of Napoli and that I wanted to take a weekend trip to visit their facilities. No later than 10 minutes did Mr. Horacio Pagani himself walks into the restaurant and I had full on fanboy panic attack. It was just the four of us in a restaurant; my boss and I, Horacio and his friend. I froze up and couldn't finish my meal. I tried to explain to my boss, but he didn't seem to understand. As we were leaving, Horacio got up too, which made me incredibly nervous. He looked at me and in my terrible Spanish (he was raised in Argentina, which I knew because as I mentioned I was a fanboy) I muttered "mucho gusto, soy un fan de tus autos". He smiled and nodded. I've never felt like such an idiot but so happy at the same time.
Horacio Pagaini was a chief engineer at Lamborghini and basically pioneered carbon fiber manufacturing. He tried to convince Lamborghini to use carbon fiber parts, but their response was that if Ferrari wasn't using them, neither would they. Obviously that didn't last long.... He left Lamborghini and started his own company to manufacture carbon fiber parts and eventually created some of the most amazing "hypercars" that money can buy (see Pagani Huayra and Zonda).
https://en.wikipedia.org/wiki/Horacio_Pagani_(auto_executive...
He was a wonderful speaker and just a great guy to talk to. He patiently signed copies of K&R C that folks had brought, told interesting anecdotes, and was a kind and pleasant person to everyone who spoke with him. Very approachable.
One thing I remember is him telling me that he only gets stage nerves if he knows he's being filmed. Massive crowd? No problem. Photographs? Go for it. Video cameras? If you do, you have my permission but don't tell me, and make sure I don't notice them.
After that I kept reaching out to other Big Names, and many of them said yes. I figured there was no harm in asking, all they could do is say no. And not a single person I asked said no because they didn't want to, it was always because the scheduling or travel just wouldn't line up properly.
He smiled awkwardly: “You’re welcome, I guess.” Textbook Larry.
Randal and I were on the same flight out of ATL and met up for a bite in an airport restaurant.
Not just for the celebrities in our profession, let the people in your everyday world know how much they mean to you, how they’ve helped you out, how they’ve made meaningful differences in your life, that you care about them, and that you love them. Life is too short not to.
"I would have loved to collaborate with him, because he seemed like a smart, nice guy who’d be fun to work with, but yeah, you know, he was already doing other things. He was staying up all night playing Spacewar!”
I wonder if that last bit was as unfashionable a statement when he made it as it would be now.
The vast majority of the world's programs are written in procedural languages, and that situation does not look likely to change for the foreseeable future.
It's certainly not an uncommon preference, but it's an unfashionable statement, at least among the intellectual circles that programming language designers with PhDs (or almost-PhDs!) tend to belong to. That's why I was interested to read it there. I've long had a joke, when asked if I prefer FP or OO, to say "I prefer imperative programming". It's funny because of that fashion. What I was wondering was whether said fashion was in place by the late 90s when dmr apparently wrote this, in which case maybe there was a trace of a joke there as well.
Edit: having read more of the OP, it seems to me deliciously apropos that his dissertation involved replacing recursive logic with loops.
Also 40 years ago we had what? LISP as is commonly used is not an FP language. ML was nice but there wasn't much FP done in ML either.
The advancements to make FP practical, like good garbage collectors, laziness, monads, good persistent data structures, are newer.
I have published at ICFP and in the JFP, and understand garbage collectors, laziness, monads, good persistent data structures very well. Yet, I prefer CBV to lazy evaluation, I prefer full unrestricted support for imperative programming, I don't think Haskell approach to effects by monads is ideal (I prefer Scala's giving you the option to tame effects by monads). There is a reason why, despite near half a century since Backus' "Can programming be liberated from the von Neumann style?", CUDA dominates HPC, C++/C (and Rust) dominate mainstream infrastructure programming, Go took the cloud world by storm, ML is dominated by Python, front-end is dominated by Javascript/Typescript, hardware design is dominated by Verilog, and business computing (for lack of a better term) is dominated by Java/C#. I really don't think the reason is that everybody is too uneducated to realise the benefits of Haskell.
It is not an imperative language: the user does not tell the computer which order in which to carry out computations. It is not procedural: there is no notion writing of procedures within its cells. It is not functional: while there are built-in functions users cannot write their own in the same way.
It's been a while since I've used Excel, but I thought you could write custom methods using VBA that could be called in a given cell.
The nearest Excel equivalent would be constructing a formula string for later evaluation, which is far from the same thing. If you wanted to perform lambda calculus in Excel you’d end up implementing your own functional programming language in VBA. Have fun with that :-)
Not saying you can’t, say, pass around closures in Excel but it’s far from natural. Whilst spreadsheets always remind me, more than anything, of the Prolog I took in college, and not the Lisp or ML.
No, its uses the Excel formula language, which isn't the same as VBA (nor is it a subset of VBA; Excel formula language expressions generally aren't valid VBA.)
The move to functional-style code the last many years seems a bit silly to me. Even C++ has been moving in a well-known trend of "no raw loops" in favor of the algorithms header in STL. I don't find there is a significant reason to abandon easy code most of the time. If you actually need to use the functional paradigm to swap out behavior in a polymorphic fashion using functions instead of inheritance, for example, then great.
Sometimes they're are able to find a good simple solution to a hard problem but then feel bad for not using complex patterns, some popular external dependency, or for the lack of ability of giving it a complicated name.
The con argument: we have enough memory and cpu now that functional languages are more practical than they ever were, which may help them be more prêt-à-porter fashion than the haute couture of a geekish peacock tail or springbok leap.
[1] I'm usually asking questions about long-dead endian-style controversies (cue the compromise of arrays starting at 0,5), and it's been nice to hear many of the people involved recommending the work of their opposites. Folk history seems to ascribe more dogmatic attitudes to the people who lived through technical controversies than they actually have.
Another lesson learned: when I try to tease out chains of influences, a not uncommon response is "I wish I'd been that clever, really it was just hacked together."
Thanks to Moore's Law, functional programming is no longer just for the mainframe, but can now be used for normal programs on standard platforms. If more people choose functional now just because they like the style[1], then it could be that procedural would be becoming less fashionable[2] over time.
[1] instead of before, when "wearing the hair shirt" of functional programming could be seen as declaring oneself a strong enough hacker that one could hack despite all the practical drawbacks.
(compare "Honest Costly Signal" in the context of https://news.ycombinator.com/item?id=23570975 )
[2] in the mass fashion vs class fashion sense.
(compare https://news.ycombinator.com/item?id=23560291 . I doubt it's controversial to say functional has always been on the Joycean side.)
For the 80s and much of the 90s Ritchie's view seems obviously dominant, in no small part due to his own work in making extremely "usable" tools for procedural programming.
CPL, IIRC, actually had an outer-functional semantics, and one would escape to "value of" blocks to do procedural stuff (which was necessary in inner code due to the pitifully small machines of the day).
Writing bootstrap compilers in GPM must've been very similar to working in a lazy functional language.
See also https://en.wikipedia.org/wiki/PAL_(programming_language)
(Emphasis, mine). I suspect that he understood functional languages quite well.
He just didn't like them.
I like some aspects of FP, but there are other aspects that I don't like.
My own development style is a ghastly chimera of techniques, technologies and jargon that coagulate into a disgusting bouillabaisse that makes everyone go "tsk, tsk," but that always seems to work quite well, is of extremely high quality, easy to understand, and results in a great deal of ship.
I am...impure. All zealots hate me.
Care to enumerate? Asking because I feel the same: I really enjoy immutability, first class functions, map/filter/reduce, Option<T> and powerful types (I dislike: currying, point-free, monads), but at the same time I feel more at home doing that in imperative-ish languages like C#, JS/TS and Rust where I can have guard ifs and the odd mutation here and there. Wondering if anyone else is the same.
Don't worry then, that's fine, you just dislike Haskell.
I personally really like functional programming but can't stand Haskell. The style favoured by the community is optimised to be the most impenetrable possible.
You should try Ocaml. The preferred style favours piping to point-free and uses monads sparingly. Currying is everywhere but copious use of named arguments tends to make things simpler.
My biggest gripe with it is not so much the language itself but the culture: it favours bloated and pompous solutions much in the same way Java/Spring does. Monad Lifting, Lenses, Aspects and FactoryFactories occupy the same space in my head.
I guess I just prefer both the simple side of functional and the simple side of imperative.
I definitely have to give OCaml a try.
My only gripe with them is that there seems to be a culture of having zero type annotations (due to HM), which can make reading other people's code difficult.
I don't think that's quite true.
Ocaml has plenty of advanced features (the module system, GADT, structural typing in the object system) but the community relationship with them is very different than how the Haskell community uses the language. For the most part, the Ocaml community tends to dislike gratuitous complexity and be non dogmatic (I fondly remember a lens library announcement on which the top comment could be boiled down to "just use mutations").
> My only gripe with them is that there seems to be a culture of having zero type annotations (due to HM), which can make reading other people's code difficult.
Interfaces tend to be annotated (mli files) but usually people rely on the tooling to know types inside files. Merlin is a blessing. It is a very fast type-checker which keeps working on incorrect files.
I should put some more time in with OCaml, Merlin sounds nice.
But I also like state, polymorphism and identity.
My familiarity with FP tends to be around "Hey! I like this Swift feature! Where did it come from?"
It's the part where we clump together functions to make a single, rather powerful function that is, in essence, a rabbithole.
Though C programming is usually about effects, effects occur in expressions which usually return a value except in cases when their type is "void" (which was a later introduction into C, possibly from C++).
C even has an if/then conditional that yields a value, the ternary operator x ? y : z, which is a more strongly typed version of (if x y z).
ChrisMarshallNY: I suspect that he understood functional languages quite well. He just didn't like them.
Your statement doesn't follow from Ritchie's words that you quoted. Preference of A over B does not have the logical consequence that B is disliked. It doesn't even imply that A is intensely liked.
Personally, I prefer Haskell or some functional Python at times, since that solves certain problems well. But, we have a lot more computing resources than existed in the past. I guess it could be possible that he enjoyed the functional paradigm, but pragmatically created a procedural language, given the hardware constraints.
It's a functional language.
Always has been.
I love reading things like this. It reminds me that I'm not alone (although, yes, I realise Ritchie is dead). I find it very hard to participate in these kind of trivialities even though many other people seem to value them so much that it mean the difference between a PhD and no PhD. But I'll often kick myself later for not bothering. I wonder if Ritchie did.