Thanks for submitting this. I did the interview. I think you have to listen to it to get the full experience. But here are some things that were interesting and surprising from the interview:
The UNIX room - The unix room at bell labs was a shared room where they would hang out and have coffee. Some people worked exclusively in the UNIX room, like Ken Thompson, but most worked in their private offices and came to the UNIX room to share what they worked on and have a coffee and catch up. This room was the culture center of the computing group at Bell Labs.
Because they were all sharing a file system on a single machine, it was easy for various people to iterate on programs. They only had one rule which was if you changed the program last, you were the owner. In some ways, it mirrors how open source works today.
Brian is super modest and claims to be a horrible programmer but he is comparing himself to Ken Thompson, who he thinks is just incredible. Ken once wrote a disassembler, assembler and B interpreter for a mini-computer that ran a printer they were struggling with, in a couple of days, so that they could get it printing again. This blew Brian's mind.
At the time, Brian didn't think that the work they were doing was 'important' in a big sense. The culture was more like working with computers is hard, let's try to make it better and lets try to solve practical problems.
The book "Unix: A History and a Memoir" has many other great details.
> Brian is super modest and claims to be a horrible programmer but he is comparing himself to Ken Thompson, who he thinks is just incredible. Ken once wrote a disassembler, assembler and B interpreter for a mini-computer that ran a printer they were struggling with, in a couple of days, so that they could get it printing again. This blew Brian's mind.
For the next level up here's Ken (in a very interesting conversation with Brian Kernighan about the history of Unix) describing McIlroy:
> McIlroy keeps coming up. He's the smartest of all of us and the least remembered (or written down)... McIlroy sat there and wrote ---on a piece of paper, now, not on a computer--- TMG [a proprietary yacc-like program] written in TMG... And then! He now has TMG written in TMG, he decided to give his piece of paper to his piece of paper and write down what came out (the code). Which he did. And then he came over to my editor and he typed in his code, assembled it, and (I won't say without error, but with so few errors you'd be astonished) he came up with a TMG compiler, on the PDP-7, written in TMG. And it's the most basic, bare, impressive self-compilation I've ever seen in my life.
This story, by the way, leads into how Ken created B (and how that was eventually improved by Dennis Ritchie into C).
I checked out that youtube link too - you might be interested to know that his t-shirt says "επιτέλους το κατάλαβα" which is Greek for "eventually I understood it" - I thought that was neat :)
Thats a terrific story! Another interesting thing is that they were often working on very practical problems, grounded to the real world. The second unix system, the PDP 11 machine was being used for patent applications, so they had to build text processing tools and also be very careful not to break anything that the patent clerks needed. I think this combination was the key, smart people and practical problems.
Yes. What I read somewhere is that the early Unix team (some of whom had just come off the Multics project) got the full use of a spare minicomputer that was in the Labs, to build an early protototype of Unix (may or not be the first one), only by promising their manager that they would build text processing software on top of it that would be useful for the Labs' patent and other text processing work. And they delivered. Some of that work became a software suite called Writer's Workbench, IIRC, and some of it became the powerful Unix command line filters and such that we still love and use today, such as cut, paste, join, diff, tr and more - "more" as in "etc.", not the pager tool, although maybe that one too, ha ha.
I loved this episode when I first heard it, but reading your recap of it reminds me of a similar story from my college days. I had a CompSci professor who had worked at Bell Labs, which was all of 10 minutes down the street from the college. I remember he was having problems with printing something in the computer lab one week, so he wrote a driver for the printer over the weekend. This would have been about 1997 or so. And he talked about it like it was nothing, the simplest thing in the world.
It looks like my professor was just taking after the people he worked with. For that level of programmer, writing new drivers for hardware was a weekend project.
One of our CompSci textbooks was written by that same professor -- I just took it down off the shelf and looked at the intro. Brian K. was thanked for being an early reader of "several revisions."
In retrospect, it's really cool to have been only a couple degrees away from that kind of history -- and I probably didn't quite realize how awesome that was back then.
The thing is that writing a printer driver was quite close to being the simplest thing in the world back then. :-)
I remember that when a friend first introduced me to Linux around 2002 (we were both high school kids), I ended up writing a rudimentary printer driver as the printing support in Linux required installing 250MB worth of packages that I simply didn't have enough space for, as I had installed Linux to a 1GB partition that I got after squeezing the Win98 on my father's laptop into 3GB. I used Red Hat Linux—not the most minimal distro but I had no idea what I was doing. So when I wanted to print something and couldn't install the printing packages, I grabbed the paperback printer manual which described all the low-level commands the printer supported, studied it to find the commands I'd need and then wrote a simple program that took an image and sent it to the printer. It couldn't have been longer than a few hundred lines.
The printers back then were simple and came with real reference manuals that documented how to communicate with the printer, so you could really write a simple printing program/driver without being a UNIX legend (I am not).
A lot of what Blow says is not entirely accurate. For example he presents a simple picture of declining software quality over time, but anyone who was around at the time knows that both desktop OSes and desktop applications (including web browsers) were certainly much more crashy, and probably more buggy in general, than they are now. Likely quality has started to decline again over the past decade, but it's still not remotely back to where it was. It's hard not to suspect that Blow passes over this because it tends to contradict his "higher-level languages and more infrastructure → declining quality" argument. Section 7.4, "Programming Environments Matter" http://philip.greenspun.com/research/tr1408/lessons-learned.... of Phil Greenspun's, apparently, 1993 SITE CONTROLLER dissertation https://dspace.mit.edu/handle/1721.1/7048 makes the same "we don't expect software to work any more" lament which Blow delivers at 22:17 https://youtu.be/ZSRHeXYDLko?t=1337 :
> Another reason the "horde of C hackers" approach has worked remarkably well is that, although the resultant software is rife with bugs, most users have no experience with anything better. When an MBA's Macintosh Quadra crashes due to a C programmer's error in Microsoft Excel, he doesn't say "I remember back in 1978 that my VAX 11/780, with only one tenth the processing power of this machine, had memory protection between processes so that a bug in one program couldn't corrupt the operating system or other applications." Rather, he is likely to say, "Well, it is still easier than using pencil and paper."
but places the blame on a switch to lower-level languages and runtime systems. The improvements on the desktop over about the '00s seem to be attributable to (not an expert) the mainstreaming of, and continued development of, the WinNT and OS X platforms, increasing use of memory-managed languages and/or more recent versions of C++ in applications, and adoption of online crash-reporting infrastructure (though probably also increasing use of increasingly effective error-detection tools, which I assume Blow is fine with as they don't create a runtime dependency). So it certainly seems that Greenspun is more correct than Blow, which is certainly not to say that adding more layers of infrastructure has always been an unqualified good.
Also, Blow's talk has a very '90s focus on crashers, error messages, and the like, but many of the worst regressions in software over the last 10 or 20 years don't manifest as crashers or other straightforward bugs at all; and when they do manifest as bugs the bugginess is often intertwined with architectural issues in a way that makes a bug-hunting mentality relatively ineffective. For example, the pinnacle of WYSIWYG rich text editing was probably about Word 4 for Macintosh, which was a slightly awkward but workable mating of stylesheets to the WYSIWYG UI. Unfortunately it was something of a local optimum: further progress on the problem largely requires serious developer thought and/or further user education. So everyone more or less decided to instead pretend that rich text is a solved problem, and things have largely been gently regressing since then. Which is probably part of the deep background to the GMail rich-text jank Blow complains about at 23:47 https://youtu.be/ZSRHeXYDLko?t=1427 . “We can not solve our problems with the same level of thinking that created them”, as Lincoln said. ;)
I love Brian Kernighan interviews so I was eager to listen. I have mixed feelings.
You would often make a point and then play snippets from him supporting it. You often gave yourself center stage and used him as evidence. I found it overedited and synthetic, more a performance than an interview.
I came for BWK and left unsatisfied. If that's the style you were going for, that's fine. Maybe it's just my expectations.
It was entertaining lisen. Thank you for making it!
I think the format is good for your podcast, where your listeners would be used to hearing your voice. On Hacker News though, people are a bit more familiar with BWK.
Thank you very much for transcribing the text; it's better to listen, but it's easier to translate to other languages, and also read while looking busy in an office. The audio is better for the Canadian accents though!
I suppose this is just matter of personal preference, but I'm not a big fan of this style of podcast either - although I did greatly enjoy the episode! I just felt it would have been even better if it were simply a conversation, without jumping back and forth in time, inserting explanations (although they were helpful), etc.
As you said in the podcast - "start at the beginning". If it had then proceeded from the beginning to the middle and from there to the end, I would have found it more relaxing to listen to.
On the other hand, there are some of these heavily edited, radio-style podcasts that lots of people think are amazing but leave me confused and annoyed. So maybe you shouldn't listen to me. :)
That makes sense. Part of my process is having people listen through to the interview and let me know where they get confused. Then I add in explanations there. The explanations mean people don't get lost if they don't know what punch cards are or fortan for instance.
I also think there are many straight interview podcasts and I'm trying to do something different.
Makes sense! Maybe my confusion (which was more about the format than the topic), could be solved just by some subtle sound effect to mark the switch between you talking to the guest and you talking to the listener? Since there's no video in a podcast to give this context, the listener has to exert some effort trying to deduce it from other clues.
For example, Accidental Tech Podcast inserts a small jingle at the start of a sponsor break whereas Talk Python inserts a sudden awkward silence in the conversation. It took me many episodes of the latter to stop wondering if the player had crashed, or if the interviewer lost his train of thought, or the guest was offended, etc. The jingle lets the listener know what's happening, which gives a more relaxing listing experience.
So some easy way to distinguish the interview from the narration would be useful, I think.
But maybe I'll be less confused once I've listened to a few more episodes. A new podcast always takes some getting used to. Thanks for making it!
I think your podcast and format is great, keep doing it and refining it. I look forward to listening to each new episode because of the interesting and wide ranging guests and the broader viewpoint you look for in the discussions.
there are people who feel strongly the opposite way - this format offers more context, cuts out small talk, allows the narrator to construct a story. to each their own... perhaps the OP could release the raw audio if they wished to cater to both
It was an enthralling interview, thanks so much for doing it!
I've met folks who worked in Bell Labs and feel enormous envy for the opportunity they enjoyed by working there. Sadly, Bell Labs now seems like a distant, never-to-be-repeated experiment. There's so much intense focus these days on short-term ROI and responding to market pressures. Creativity and discovery very much take a back-seat to predictability and keeping the stock market "happy".
Are there modern-day places like Bell Labs? Or am I idealizing what it was like there?
But I wouldn't be surprised if there are at least a few (meaning tens, if not a few hundred) of startups / small and medium companies in the world that have at least a partly Bell Labs-like tech and innovation culture, somewhat modified due to being commercial entities vs. a research place. I have come across descriptions of actual such companies in the past.
I've been enjoying your podcasts a lot over the last couple of years. Good topics, interviews and tone. Just wanted to give you some praise for a job well done.
Steven Levy's Hackers of course, but also his Crypto which is in some ways even better.
Michael A. Hiltzik's Dealers of Lightning about the heyday of computing research at Xerox PARC isn't universally praised (IIRC it's more or less Bob Metcalfe's version of the story) but it is very readable.
Bob Johnstone's We Were Burning, about the golden age of Japanese consumer electronics (wich also covers many events and actors in the US and UK).
David Kushner's Masters of Doom, about the heyday of Id Software.
The First Computers—History and Architectures is a more academic book, a selection of history papers, but it's still very readable. The Computer Pioneers: Pioneer Computers videos https://www.youtube.com/watch?v=qundvme1Tik&list=PL14396C953... , presented by Gordon Moore himself, cover much of the same ground (it says little about the wartime Bletchley Park computers).
There probably are many, you have to name your poison and search for books about it.
Almost any really major technology or tech company likely has had a book or two written about it. Some examples off the top of my head:
The HP Way
The IBM Way
The New Magicians (Microsoft)
Heard of Fire in The Valley but not read it
The Soul of a New Machine
Hackers by Steven Levy
Sure to be many books about Unix
The Art of Unix Programming (more on tech, but a good amount of history)
There probably are more books about (in no particular order):
Dell, Sun Micro, Compaq, DEC, Novell, SCO, IBM, Wordstar, WordPerfect, Lotus (both company and tech), dBASE, Borland, Microsoft, AutoCAD, Adobe, HP, Silicon Graphics, Tandem, Ardent, Amdahl, Wang, Toshiba, Acer, Sony, Sinclair, Commodore, Atari, Acorn, Facebook, Twitter, MySpace, LinkedIn, Amazon, Netflix, Apple and a host of lesser-known or older companies, both in the US and elsewhere. The list above has non-US companies too.
It's fun to read about the history of our field. I keep doing a bit of it now and then.
The Mythical Man-Month by Fred Brooks about the IBM 360. Some of the essays are more relevant today than others but worth at least selectively reading.
Heard great things about it and really want to read it. However, a warning to anyone thinking of getting this book on kindle: It's unreadable. It literally will not download on a kindle device. Just purchased it recently but will have to refund.
I had this same problem. I does work on the kindle app for desktop. Funny thing about the book, it was made using troff, one of the original unix utilities.
You are correct--it is pretty disappointing they haven't made it available on normal kindle devices.
That being said, I think you will be able to read it on the kindle player on a desktop computer. At least, that worked for me. I admit this is not ideal, but the book is fantastic and it was worth the extra effort.
I had the fortune of taking a class with Brian Kernighan at Princeton and later having him advise my senior independent project, and the one thing I'll never forget is just how incredibly down-to-earth and kind he is.
An example: In that first class (COS 333) with ~150 students, I was surprised when he knew my name — and then I found out that he didn't know just my name but the names of all of his students. It takes a special kind of professor who takes the time to do that every semester.
This is in my queue! This is a great podcast, Adam Gordon-Bell is such a thoughtful interviewer, probably my favourite episode was "Don and Adam discuss Folds", it blew my mind and made me smile. Very highly recommended.
"I found it easier to program when I was trying to figure out the logic for myself rather than trying to figure out where in the infinite stack of documentation was the function I needed. So for me, programming is more like creating something rather than looking it up, and too much of today’s programming is more like looking it up." - K
One of my favorite moments from the birth of UNIX is Ken Thompson's telling (in this interview with Brian Kernighan) of how he got hired to work at Bell Labs:
1. It is great to hear Brian Kernighan's account of the early history of Unix.
2. It was wonderful to hear about his interactions with one of my personal heroes, Richard Hamming.
Hamming's book on error correction (Coding and information theory) is amazing.
3. It is very kind of Adam Gordon Bell to make these wonderful interviews available. These interviews are oral history that will never again be available once the interviewees are gone.
Con:
1. The interviewer talks far too much about irrelevant trivia and often talks at greater length about than the people being interviewed.
2. It has the feel of Adam Gordon Bell interviews Adam Gordon Bell.
A little less Bell and more of the interviewee would have been less irritating and easier to listen to.
Despite my caveats, I intend to download and listen to many more of these interviews on my commute to work.
Keep up this historically important work, but please let the interviewees talk without continually interrupting.
I read the K&R's C Programming book when I was in undergrad.
It's different from other programming books I read from APress, O'Reilly publications.
Hard to digest but never before read a book so short and crisp that fully explains the programming language.
To any noob programmer out there, I'd say pick K&R's book, spend a semester on it, do the exercises. You will become better engineer. You'll not regret.
I came at this the other way. KnR was my first real book about programming. Next were Bentley. Most O'Reilly and like books are overly wordy and don't get to the meat of the issue for me.
I don't think KnR will make you a much better engineer. But it will give you a really strong boost into being a reasonable c programmer. And it does that well because it focuses on that.
I have not written C in years but remember by heart their coding style in the book. The strcpy(s, t) they present is around 2 lines code looking something like this expression: `s++=t++`. (please don't code review here.. haha).
At that time I was writing verbose loops in class assignments to write similar functions. Looking their code made a strong positive impact. Their codes are poetic.
And the way they unfold topics in the book is so good. Structures and pointers often confusing many people I knew were natural in their book.
For more of a "today's look" as opposed to the way C was written back then, http://www.gopl.io/ is almost as good, still the same style, meant to be digested not skimmed lightly.
> I think the closest you get to important is thinking, “It’s hard to write programs, what can we do to make it easier to write programs? ... can I do something better on that? And if what I find challenging or hard or whatever is also something that other people find hard or challenging or whatever, then if I do something that will improve my lot, I’m perhaps improving their lot at the same time.
> Bonnie went off to California bearing their son who at the time, I think was a year old or something like that. And was there for three weeks. And so Ken figured that he was close and so he built himself basically a working operating system in three weeks. And I think you could argue that’s serious soccer productivity in some sense.
> ... And then what I showed Colby was actually something that basically said sleep for two seconds, and then print the result I had done the day before.
& I really wish the chocolate bar thing is done in my office one day!
Adam, you said at the end of the interview that you are looking for ways to grow your listener base. Well... I guess you got exactly what you were looking for, between interviewing Brian Kernighan and being featured on Hacker News...
That's probably a good formula to go by: get interviews with "big names" who have done incredible things in the field, make the content as good as you can, and submit to HN.
Personally I would love to hear an interview with Fabrice Bellard, if you can get him. That man is a true "superstar" of programming. Interview Fabrice and you have my subscribe, 100%.
Steven Levy's Hackers: Heroes of the Computer Revolution is another interesting read (book-length) along the same lines. It is not only about the tech (which it covers over a wider period than the OP, from before Unix to after it), but talks about the personal habits and idiosyncrasies of the people involved too, e.g. the penchant of some of the earlier ones for Chinese food, and the unit milliblatts :). Check it out.
This is a great interview, but the most interesting thing I learned is that I've been mispronouncing Brian's name for years. Apparently the 'g' is silent.
> Multics was not a success. Bell Labs pulled out of the project, no more operating system work at Bell Labs. It was a waste of time, that became the sentiment of management. Ken in particular thought the system was too complex, but it was interactive and it was far ahead of this batch processing punch card world.
Nope, in fact it even had a better security model that UNIX clones are yet to achieve.
K&R is the best known, but his other books are terrific. Software Tools showed how programs can simultaneously be powerful and simple, and decades later I still use things from Kernighan and Pike. Just today I wrote an AWK one-liner to process a log file.
The time window is slipping by now, but we are living in a world where computing titans stride the earth. It's the computing equivalent of the time of Newton and his influence on Physics.
I was looking for interviews/videos with Dennis Ritchie but I couldn't find any one that's over a few minutes.
I also wondered if there are sources from any of their (Dennis Ritchie, Ken Thompson and the group) work hopefully in C or something that I can actually understand.
This is an old but informative video on UNIX system productivity by AT&T hosted by Brian Kernighan [1].
Fun fact, the original unused PDP-7 computer mentioned in the article that being utilized by Ken Thompson to first develop UNIX actually belongs to another well-funded sound processing research group in Bell Labs.
The UNIX room - The unix room at bell labs was a shared room where they would hang out and have coffee. Some people worked exclusively in the UNIX room, like Ken Thompson, but most worked in their private offices and came to the UNIX room to share what they worked on and have a coffee and catch up. This room was the culture center of the computing group at Bell Labs.
Because they were all sharing a file system on a single machine, it was easy for various people to iterate on programs. They only had one rule which was if you changed the program last, you were the owner. In some ways, it mirrors how open source works today.
Brian is super modest and claims to be a horrible programmer but he is comparing himself to Ken Thompson, who he thinks is just incredible. Ken once wrote a disassembler, assembler and B interpreter for a mini-computer that ran a printer they were struggling with, in a couple of days, so that they could get it printing again. This blew Brian's mind.
At the time, Brian didn't think that the work they were doing was 'important' in a big sense. The culture was more like working with computers is hard, let's try to make it better and lets try to solve practical problems.
The book "Unix: A History and a Memoir" has many other great details.