The Future of Programming
The Future of Programming
Note: He gave his talk, as if it was 1973.
Technology changes quickly. People’s minds change slowly.
01:48 It’s easy to adopt new technologies. It can be hard to adopt new ways of thinking.
05:05 Ideas require people to unlearn, what they’ve learned and think in new ways. There’s often enormous amount of resistance.
05:30 The four ideas of the future of programming:
- coding ➡️ direct manipulation of data
- procedures ➡️ goals and constraints
- text dump ➡️ spatial representation
- sequential ➡️ concurrent
09:23 I’m sure we’re gonna create documents by direct manipulation. There won’t be any markup languages or stylesheet languages. That would make no sense. Ivan Sutherland showed us, how to do it back in 1962.
11:15 What’s important is expressing your program as what you want it to do, not a set of instructions on how to do it. Letting the computer itself figure out how to do it.
13:34 When you have this global network of computers, you run into, what Licklider calls, the “communicating with aliens problem”.
14:24 So you’ve got these two programs, that don’t know anything about each other, written in totally different times and know they need to be able to communicate, so how are they gonna do that?
14:34 There’s only one real answer to that, that scales: They have to figure it out, how to talk to each other.
15:20 What won’t work, what would be a total disaster, is this notion, that you have a human programmer, that write against a fixed interface, exposed by some remote program.
- requires the programs to already know about each other
- the first program can’t go out and hunt and find other programs, that implement the same service
- if one language changes, it breaks the other one
You have a human doing low-level details, that should be taken care of by the machine.
20:28 I’m totally confident, that in 40 years, we won’t be writing code in text files. We’ve been shown the way.
21:22 If interactive computing takes off, then our user interfaces, when you interact with them, you’ll never experience any kind of delay or lag. Because these guys proved how important it is to have an immediate response of UI. They were doing this in the sixties, so as our computer’s get a million times faster, obviously there is no reason to have any kind of delay or lag in the operating system/in the user interface.
22:05 Today our programs are a sequence of instructions. One of the reasons, that we program in the sequential model has to do with the hardware. (the von Neumann computer architecture)
24:25 What computers want to be on silicon, is lots of little computers, like a huge array of tiny little computers with their own processor, their own state, doing their own thing, communicating with each other. That’s how you maximise the amount of compute per area of silicon and this scales.
26:02 Threads and locks are a dead end.
27:30 We are gonna have massively parallel hardware. We need a sound parallel programming model, that fits the hardware.
The real tragedy would be, if people forgot, that you could have new ideas about programming models in the first place.
The most dangerous thought, that you can have as a creative person, is to think, that you know what you are doing.
31:30 Because once you think, that you know what you are doing, you stop looking around for other ways of doing things. And you stop being able to see other ways of doing things. You become blind.
32:31 We don’t know what programming is. We don’t know what computing is. We don’t even know what a computer is. And once you truly understand that and once you truly believe that, then you are free. And you can think anything.