Uncle Bob - The Long Reach of Code artwork

Uncle Bob - The Long Reach of Code

Dwarkesh Podcast

November 28, 2020

Robert Martin (aka Uncle Bob) is a programming pioneer and bestselling author or Clean Code. We discuss the prospect of automating programming, spotting and developing coding talent, occupational licensing, quotas, and the elusive sense of style.   Watch on YouTube.
Speakers: Dwarkesh Patel, Robert Martin
**Dwarkesh Patel** (0:00)
Okay, today I'm talking with Robert Martin, who needs no introduction. So let's begin with talking about the future of programming.
Will GPT-25 be able to automate programming? Will I not have a job in 25 years?

**Robert Martin** (0:12)
What is GPT-25?

**Dwarkesh Patel** (0:14)
What is that?
GPT-3 is the program that OpenAI just released, and it seems to be able to make some basic methods, like making a palindrome, because they just did deep learning over a bunch of GitHub repositories. So is the future of AI basically going to be able to automate programming?

**Robert Martin** (0:31)
No.
Pretty straightforward answer. There's a fundamental reason behind this.
In order to finally replicate programming, if you wanted a machine that could program like a human, that machine would have to have human sentience. And we are very, very far away from that kind of a machine. Why would we need human sentience? Because someone has to specify the way the program is going to work. And that specification is, in fact, the program. No other specification will suffice. So a business user comes along, and he creates a rough specification, but is depending on the human intuition and the human intelligence of the programmers to fill in all the horrible little blanks that the business person omitted.
We programmers are detail managers. We deal with all the mess. We're the ones who deal with the fact that text files sometimes terminate lines with backslash n, but sometimes terminate lines with backslash n, backslash r. For reasons that go back 50 years because of teletypes and Unix and DOS and all this crap. And we're the ones writing the dumb little if statements to deal with bizarre little exceptions that no business person wants to even think about. If we tried to make a deep learning machine that could deal with all that stuff, we would wind up with a Hal 9000, something that has human intelligence. And we are so far away from that, that it does not concern me in the slightest that some deep learning machine will eventually take over all the programmers' jobs.

**Dwarkesh Patel** (2:31)
I'm happy to hear that then. But how about this potential, which is that the development environments and the tools that programmers use, when you become so advanced, it will be almost like a symbiotic pair programming kind of assignment, where you're working with the machine to write the code instead of just writing it on the machine.

**Robert Martin** (2:49)
Sure. We've already had that for the entire span of programming. We've been doing that. The original programs were written in binary.
So Alan Turing, working on the automated computing engine, was literally writing things in binary because there were no languages. And then eventually we made an assembler. Can you imagine the benefit of an assembler over binary? All that horrible binary math that you had to do, you don't have to do anymore. And you can write your code in symbolic form. That's already a huge advantage. And then along comes John Bacchus with the Fortran spec in 1953 And what a huge advantage that was over assembly language. Algal came along pretty quickly. By 1966, you've got Ola Johan Dahl and Christian Nygaard inventing objects. This is 20 years after Alan Turing was doing binary programming. You've got the first object-oriented language.
C comes along in 68, two years later. C++ comes along 12 years after that.
And we've got this massive progression of incredible amounts of help to the programmer.
Then in the late 90s, we start getting this wild stuff in our tools, the IntelliSense and the refactoring tools and the inspectors and the duplication finders. So a modern IDE is a treasure trove of tools that allow a programmer to do immensely more complex things than we used to be able to do.
So yes, I hope that machine learning continues to make our tools more powerful, but that will never alleviate the need for the programmer to be there and supervise those tools. I'm a pilot. I fly a plane. The plane has a beautiful autopilot. I can turn it on and the plane will fly itself all the way to my destination. And I watch that thing like a hawk because it's a machine, and it's going to do the wrong thing at exactly the wrong time. So I sit there and I watch that autopilot, and every time it's supposed to do something, I make sure it does that thing. I'm still in charge. It's not.

**Dwarkesh Patel** (5:14)
But once you get these advanced tools, will the future of programming just look incredibly different from what programming machines like now? You've written about how the way that touring were the first programs is not that dissimilar to how we write programs now.

32 more minutes of transcript below

Feed this to your agent

Try it now — copy, paste, done:

curl -H "x-api-key: pt_demo" \
  https://spoken.md/transcripts/1000651996090

Works with Claude, ChatGPT, Cursor, and any agent that makes HTTP calls.

From $0.10 per transcript. No subscription. Credits never expire.

Using your own key:

curl -H "x-api-key: YOUR_KEY" \
  https://spoken.md/transcripts/1000500544934