This was fantastic! Thanks so much for making the transcript available as well (I use them to discuss interviews like this one with AI).
This paragraph has a copy-and-paste error (the passage starting with "Sandy Fraser" was spoken by Stroustrup):
[11:27] So it’s kind of like the belief and credibility that other people say that you have. Like Dennis Ritchie talked to you and he knew that you knew what you were talking about, Sandy Fraser and such. They just talk to you, see what you know and don’t know. And at the end, they go to the director and say, in this case, we’ve got a good guy, can you let us have him? I, of course, didn’t know anything about that. I wasn’t there. I was out talking to somebody in California, and I get a phone call from the director and he says, would you like to come and work here a week later?
Fixed! I believe there's a bug in my transcript generator. The model that marks which speaker said what often doesn't cleanly attribute the words to the right speaker. And my hacky fix to adjust for that seems to have gone in the wrong direction there (attributed the words to me instead of him)
Glad to hear someone is getting value out of these transcripts, I'll keep making them and improve the tool little by little
The second paragraphs below are duplicates of the next timestamped paragraphs.
[1:30] So I decided I was going to build a distributed Unix because it was clear that computers were getting better, networking was getting better, so we needed one of those. If I had succeeded, we would have had Unix clusters ten years earlier or something like that. But of course, I couldn’t do it. That’s not a one-person job. The first thing I realized was there wasn’t a language in the world that could do what I needed.
It needed two things: low-level access to hardware, such as memory managers, process implementations, process schedulers, network drivers, device drivers, all that kind of stuff. And then it needed high-level features that say, well, there’s a module here on this computer and there’s a module there on that computer, and here’s the communication protocol they’re using, things like that. There are lots of languages that could do either, but none that could do both.
---
[51:10] I’m still doing experiments. It’s still not complete. So they said, “No, Bjarne, you don’t get it. Our organizations cannot use a language that’s not standardized. They cannot use a language that’s owned by a corporation that we might compete with. And we do sometimes, okay, we trust you, of course, but not your employer. We compete with them sometimes. And you can get run over by a boss. No, no, no.”
We need a standard, and we need a standards committee. So this goes on for about an hour. And they twist my arm. Ow, ow, ow. In the end, they said, “Okay, I will standardize C++ under ANSI rules just like you suggest. The computer community needs that.” And by the way, what’s the ANSI rule for standardization? And so they told me, and we started a year later. But this was the way it came about.
---
[1:07:38] Okay. And the Intel guys had similar arguments and similar points. This is better. We are using it. I was shuffling; they were in different corners of a large room. So I go up to the Intel guy, the guy representing Intel here, and what’s the problem? Tell me about it. Explain it. I go down, explain. He’s saying this. They say, well, there’s this, this, this. I go back again and I spent a couple of hours literally doing shuttle diplomacy, walking from one corner of the room to the other.
And we reached an agreement. And that’s in C++. A couple of years later, they both agreed that they were now using a combination of what they had before and what the other guys brought in. So actually, the result was improvement, cross-pollination.
---
[1:18:57] Well, the prime number thing was just a curiosity. It used the error messages to report the result. But when you build something, you can get Turing completeness. You need some form of iteration or recursion, and you need a comparison. That’s about it. Then you can achieve Turing completeness. At least some of the theoreticians say, “Hey, we can’t do that. It’ll run forever.” The guy who came up with the first example of this, Erwin Unruh, actually thought I should prohibit it somehow.
I should ban it. My reaction was, “This looks useful. Great.” I think I was right. Furthermore, nothing runs forever. If you have a Turing machine, you have the tape, and the tape has to be infinite. So if you imagine building a real Turing machine the way Turing designed it, you have to have a bunch of navigators building track all the time when it gets out there. Of course, we don’t do that. The point is that the compiler will run out of resources long before we get into real problems.
===
One last minor suggestion: it might make more sense to add parentheses around "too" in the talk title "Don’t Be Too Clever" since Stroustrup referenced parentheses.
Thanks so much! This is top-notch deep dive material.
This was fantastic! Thanks so much for making the transcript available as well (I use them to discuss interviews like this one with AI).
This paragraph has a copy-and-paste error (the passage starting with "Sandy Fraser" was spoken by Stroustrup):
[11:27] So it’s kind of like the belief and credibility that other people say that you have. Like Dennis Ritchie talked to you and he knew that you knew what you were talking about, Sandy Fraser and such. They just talk to you, see what you know and don’t know. And at the end, they go to the director and say, in this case, we’ve got a good guy, can you let us have him? I, of course, didn’t know anything about that. I wasn’t there. I was out talking to somebody in California, and I get a phone call from the director and he says, would you like to come and work here a week later?
Fixed! I believe there's a bug in my transcript generator. The model that marks which speaker said what often doesn't cleanly attribute the words to the right speaker. And my hacky fix to adjust for that seems to have gone in the wrong direction there (attributed the words to me instead of him)
Glad to hear someone is getting value out of these transcripts, I'll keep making them and improve the tool little by little
The second paragraphs below are duplicates of the next timestamped paragraphs.
[1:30] So I decided I was going to build a distributed Unix because it was clear that computers were getting better, networking was getting better, so we needed one of those. If I had succeeded, we would have had Unix clusters ten years earlier or something like that. But of course, I couldn’t do it. That’s not a one-person job. The first thing I realized was there wasn’t a language in the world that could do what I needed.
It needed two things: low-level access to hardware, such as memory managers, process implementations, process schedulers, network drivers, device drivers, all that kind of stuff. And then it needed high-level features that say, well, there’s a module here on this computer and there’s a module there on that computer, and here’s the communication protocol they’re using, things like that. There are lots of languages that could do either, but none that could do both.
---
[51:10] I’m still doing experiments. It’s still not complete. So they said, “No, Bjarne, you don’t get it. Our organizations cannot use a language that’s not standardized. They cannot use a language that’s owned by a corporation that we might compete with. And we do sometimes, okay, we trust you, of course, but not your employer. We compete with them sometimes. And you can get run over by a boss. No, no, no.”
We need a standard, and we need a standards committee. So this goes on for about an hour. And they twist my arm. Ow, ow, ow. In the end, they said, “Okay, I will standardize C++ under ANSI rules just like you suggest. The computer community needs that.” And by the way, what’s the ANSI rule for standardization? And so they told me, and we started a year later. But this was the way it came about.
---
[1:07:38] Okay. And the Intel guys had similar arguments and similar points. This is better. We are using it. I was shuffling; they were in different corners of a large room. So I go up to the Intel guy, the guy representing Intel here, and what’s the problem? Tell me about it. Explain it. I go down, explain. He’s saying this. They say, well, there’s this, this, this. I go back again and I spent a couple of hours literally doing shuttle diplomacy, walking from one corner of the room to the other.
And we reached an agreement. And that’s in C++. A couple of years later, they both agreed that they were now using a combination of what they had before and what the other guys brought in. So actually, the result was improvement, cross-pollination.
---
[1:18:57] Well, the prime number thing was just a curiosity. It used the error messages to report the result. But when you build something, you can get Turing completeness. You need some form of iteration or recursion, and you need a comparison. That’s about it. Then you can achieve Turing completeness. At least some of the theoreticians say, “Hey, we can’t do that. It’ll run forever.” The guy who came up with the first example of this, Erwin Unruh, actually thought I should prohibit it somehow.
I should ban it. My reaction was, “This looks useful. Great.” I think I was right. Furthermore, nothing runs forever. If you have a Turing machine, you have the tape, and the tape has to be infinite. So if you imagine building a real Turing machine the way Turing designed it, you have to have a bunch of navigators building track all the time when it gets out there. Of course, we don’t do that. The point is that the compiler will run out of resources long before we get into real problems.
===
One last minor suggestion: it might make more sense to add parentheses around "too" in the talk title "Don’t Be Too Clever" since Stroustrup referenced parentheses.
Thanks so much! This is top-notch deep dive material.
Added all these fixes in, thank you! I'll look into fixing up my script so it doesn't make these duplication errors going forward