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
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
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
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.