The Future of Programming
by Bret Victor (32min)
Notes
Read Bret’s References for “The Future of Programming”
He gave this talk, as if it was 1973.
Technology changes quickly. People’s minds change slowly.
— Bret Victor
01:43
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.
— Bret Victor
16:01
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.
— Bret Victor
29:40
The most dangerous thought, that you can have as a creative person, is to think, that you know what you are doing.
— Bret Victor
31:22
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.