Future of Coding - Elephant in the Room
Episode Date: April 21, 2024Inventing on PrincipleStop Drawing Dead FishThe Future of Programming Yes, all three of them in one episode. Phew! Links $ patreon.com/futureofcoding — Lu and Jimmy recorded an episode about Hest w...ithout telling me, and by total coincidence released it on my birthday. Those jerks… make me so happy. Lu's talk at SPLASH 2023: Cellpond: Spatial Programming Without Escape Gary Bernhardt's talk Wat Inventing on Principle by Bret Victor ("""Clean""" Audio) Braid, the good video game from the creator of The Witness David Hellman is the visual artist behind Braid, A Lesson Is Learned but the Damage Is Irreversible, Dynamicland, and… the Braid section of Inventing on Principle. Light Table by Chris Granger Learnable Programming by Bret Victor When Lu says "It's The Line", they're referring to this thing they're working on called Seet (or "see it"), and you can sneak a peek at seet right heet. Paris Fashion Week absolutely struts, and so can you! The Canadian Tuxedo. As the representative of Canada, I can confirm that I own both a denim jacket and denim pants. If you see me at a conference wearing this combo, I will give you a hug. Jimmy runs a personal Lichess data lake. Hot Module Replacement is a good thing. Pygmalion has a lot of juicy silly bits, 'parently. Cuttle is awesome! It's a worthy successor to Apparatus. Toby Schachman, Forrest Oliphant, I think maybe a few other folks too? Crushing it. Oh, and don't miss Toby's episode of this very podcast! Recursive Drawing, another Toby Schachman joint. Screens in Screens in Screens, another Lu Wilson joint. Larry Tesler. Not a fan of modes. Lu writes about No Ideas on their blog, which is actually just a wiki, but it's actually a blog, but it's actually just a garden. When we mention Rich Hickey, we're referring to the talk Simple Made Easy Jacob Collier, ugh. Suffragettes, women advocating for their right to vote, absolutely had a principle. Not sure that we should be directly likening their struggle to what we do in tech. On the other hand, it's good to foster positive movements, to resist incel and other hateful ones. Instead of linking to e/ anything, I'm just gonna link to BLTC for reasons that only make sense to longtime listeners. Stop Writing Dead Programs by Jack Rusher. Jack Rusher? Jack Rusher! It's the fish one, the one with the fish. …Sorry, these aren't actually fish, or something, because they're just drawings. René Magritte is the creator behind La Trahison des Images, origin of "Ceci n'est pas une pipe". Or maybe it was Margit the Fell Omen? Magritte's Words and Images are lovely. Here's an English translation, though its worth taking a look at the original in context. Acousmatic Music Lu has made art with behaviour — various sands, and CellPond, say. Barnaby Dixon? Barnaby Dixon. Barnaby Dixon! Barnaby Dixon!! You can listen to part of Ivan's """Metronome""", if you want. Or you can listen to an early version of the song he's using this metronome to write. Or you can hear snippets of it in the Torn Leaf Zero video (especially the ending). But, like, you could also go make yourself lunch. I recommend mixing up a spicy peanut sauce for your roasted carrots. Shred a bit of cheese, tomato. Toast the bread. Pull the sausages right when the oil starts to spit. Put them straight into the compost. Look at the bottom of the compost bucket. What's down there? It's shiny. Why are you reading this? Why am I writing this? Why do we make thispodcast? Wintergatan — Marble Machine exists Oh, I forgot to add a link to Arroost earlier. You can also watch a pretty good video that is basically an Arroost tutorial, not much to it. There are also some nice examples of things people have made with Arroost. The Rain Room looks pretty cool. It's the exact inverse of how rain works in many video games. YOU MUST PLAY RAIN WORLD. Here's a beautiful demo of a microtonal guitar, and speaking of using complex machines to make music that would be "easier" to make with a computer, here's a microtonal guitar with mechanized frets that can change the tuning dynamically. This entire YT channel is gold. Shane Crowley wrote a lovely blog post about creating music with Arroost. blank.page is a fun experiment in writing with various frictions. Super Meat Boy (the successor to Meat Boy, a Flash game) and Celeste are great examples of communicating tacit knowledge through the design of a simulation. Newgrounds and eBaum's World and Homestar Runner were early examples of (arguably) computer-native media. Hey, here's this episode's requisite link to the T2 Tile Project and Robust-First Computing. I should probably just create a hard-coded section of the episode page template linking to T2, The Witness, and Jack Rusher. The pun-proof Ivan Sutherland made Sketchpad. Planner exists. The PlayStation 3 Cell processor was this weirdly parallel CPU that was a pain in the butt to program. The SpaceMouse Put all metal back into the ground. Music featured in this episode: Fingers from This Score is Butt Ugly The Sailor's Chorus from Wagner's The Flying Dutchman. ! Send us email, share your ideas in the Slack, and catch us at these normal places: Ivan: Mastodon • Website Jimmy: Mastodon • Website Lu: Mastodon • Website See you in the future! https://futureofcoding.org/episodes/71Support us on Patreon: https://www.patreon.com/futureofcodingSee omnystudio.com/listener for privacy information.
Transcript
Discussion (0)
Arr, this episode of the future of coding contains tastelessly self-referential humor, self-censorship, uncensored swearing, and it's like three hours long.
Listener indiscretion is advised.
Now, I wrote these summaries, including some of the notes for things like,
Ivan is going to say this at this spot.
And I wrote this
so that it'd be like i'm reading this so i say like brett says and then quote marks
so it's not a summary that's meant for you two to read it's just uh sure sure sure yeah but now
we can predict what you're gonna say ahead of time and preempt you by saying the opposite.
This is fun because we can compare.
Like I have a summary of Dead Fish.
I mean, I guess it's kind of in the title, but I'm sure the title of this episode doesn't say enough of what we're going to do.
And I'm saying we have to jump in right now.
But yeah, because I still have to blow my nose.
Oh, yeah.
Yes, we are doing Brett Victor and we're doing three videos.
We're doing future programming, inventing on principle, and stop drawing dead fish.
I think the title should be The Elephant in the Room.
Because Brett Victor has been the elephant in the room since the beginning.
Stop inventing dead elephants.
Got it.
Stop inventing 2,000 dead elephants.
No, elephant 2,000 we definitely have to do at some point.
Yeah.
I have, I'm very, I know this is not on any topic ever,
but I've been, we wanted to do videos.
I know Ivan wanted to do videos for a while.
I guess it is on topic.
Ivan wanted to do videos for a while or something that was not a text for a while.
Oh.
Yeah, yeah.
Yeah.
I thought you meant like release these episodes as video.
No, no, not release these episodes, but do something that was not text for a while.
And I've been like hating papers for the last month.
You what?
Like every paper I read, I would just hate read them.
No, that's not nice. You're supposed to be the one who likes papers. Yeah, I know. papers for the last month you what like every paper i read i would just hate read them but no
that's not nice you're supposed to be the one who likes papers yeah i know and i but like luckily
having to do these videos instead have made me just like love papers again
you troll and so like i have so many papers i want to do now and it's it's been great i was also just in
like a hate mood i think that's why i got covid that's what i've learned from my extensive internet
research you know you get covid by hating things they're gonna put a little banner under our
podcast jimmy itunes is gonna say you know spreads misinformation oh no covid is caused by the hate in your heart
yes yes wait are we uh have we started um no yeah see i that's the fun part right is if you just
we're recording so no matter what you say here what is, you're playing a game to figure out where Ivan's gonna start the episode or not.
Boop.
All right, so we're doing three, three, count them, three Brett Victor talks in this episode.
Yes.
What could possibly go wrong?
And I think my summary takes about 30 minutes to read.
I time myself reading about half of it.
What?
Yeah, your summary is quite a lot.
Having looked at it, I'm conflicted on how we do this series of videos.
Partially because if you haven't seen these talks, I do think you should go watch them not listen to us talk
about them yes yeah at the same time it's like well if you've watched them what new are we gonna
add well okay hold on wait a minute hang on a second like i mean part of yes you could listen
you could listen to these episodes and if you've the paper, and I'm sure some people do. Read the paper?
I'm talking about in other episodes.
Oh, okay.
Other episodes.
Okay, okay.
Right?
But part of what people are getting is, you know,
we're the cliff notes for them.
Like, we're doing their homework that they didn't have to do.
Whereas here, we're commenting on things
that I'm betting a large portion of our audience have watched.
And if you haven't watched these Brett Victor talks,
you probably should. Yeah, go do that. Like, and haven't watched these Brett Victor talks, you probably should.
Yeah, go do that.
And if you're commuting right now,
you're not going to, and that's fine.
I've done the same thing.
And you can listen anyways.
But the talks are a better medium
for conveying what they want to convey
than us commenting on them.
So us trying to convey their information
seems like the wrong answer here. Whereas when we're doing papers, that's what we're trying to convey their information seems like the wrong answer here whereas when
we're doing papers that's what we're trying to do is convey the information the paper's talking about
while also commenting on it let me flip that around on you what did we all get out of watching
these videos because i watched these videos for the first time in in some cases a decade
and got a ton out of them since in that
last decade you know i've i've very much changed my relationship with this field to the point where
i'm now actually doing more of this kind of work and you know there's the benefit of a decade of
the industry living sort of in the shadow of these talks, if that's not being too bold, and changing
its ways in reaction to them. And there's the recent surge of AI. So there's like a ton of stuff
that is now newly existent and relevant, that changed how I view these talks and how I appreciate
them. So even without somebody needing to rewatch the the talks which i mean if i would encourage you to
do that even if you've already seen them i think that we will have no shortage of interesting
things to say about them uh please don't unsubscribe there is another thing is that
ivan's summaries are really long we could just do a shorter summary you know it's not out of the question maybe we could try it for
one of them and and see how it goes you'll note that the um the the inventing on principle summary
is literally half this document and then by the time we get to dead fish it's like actually sorry
more than half dead fish and uh future programming are much shorter
so yeah i mean i think that's the correct thing although i don't know about the order
the order question i think is like do you really want to backload the episode with good content
or front load the episode with good content i mean i just did them in chronological order so
it's sort of like like dead fish definitely builds on principle i think hey here's another thing right brett victor is the elephant in the room on this podcast
right because that's what kicked off the podcast when steve krauss started yeah and you guys won't
wouldn't shut up about him and it's time you told the world what you think, you know? Yeah, yeah. Me included. And the other thing is, obviously, Brett Victor is like this Jesus figure of the future of coding communities, you know, with a small F and a small C.
And, you know, he's universally loved, but he's also, people have always have something to say about him, right?
They're like, oh, I like Brett Victor, but I don't agree with him on this. And I've seen so many people and podcasts and chats and Blair give their own criticism of Brett
Victor. And in my opinion, they all do it wrong. So I think we should join this tradition and do
our own criticisms that are entirely wrong as well. It's like a rite of passage.
So what is, all right, hold on, hold on, hold on. What's the criticism that other people have given
that if you can remember any, that is wrong?
Spoilers.
I don't want to jump ahead, but...
Okay, well, we've got to do this though
because now I don't care about us criticizing Brett Victor.
I care about us criticizing Brett Victor criticism.
Yeah, that's why I'm here.
All right, great.
Cool.
So you just want me to pull up Hacker News comments
and we'll just read them for the next three hours?
We just need to get it out.
What do you think?
Do I think?
Oh, this is going to take longer than I thought.
Yeah, so I will say,
I didn't get a whole lot re-listening to these episodes.
Episodes.
These talks.
Re-watching these talks.
Re-listening.
Because I mostly listened uh-huh because
because we have to translate from a visual media to an auditory one and i thought it would be better
for me to experience it the way i already know what what the visuals are i mostly listened i did
watch but i mostly listened i listened like three or four times to each talk.
Oh, okay.
That's better than me.
That's a lot of times.
Yeah.
I did two-ish.
Wow.
Okay.
I almost watched all of them.
I just made a fake summary.
I'm not kidding.
I have a whisper app on my Mac
that I can just invoke with a keyboard shortcut
so I can like talk to my computer and make it do stuff
that's weird
and it's good enough that it can hear my
TV playing Brett Victor
from across the room when I invoke that
so that
was very helpful for getting a lot of these quoted
sections it's just like yeah Whisper
listen to that video over there and just are you kidding me i'm 100 serious there i was putting in
my effort you know people have already made a transcript for inventing on principle and uh
future programming it it is and i'm i'm actually okay jokes have left the room it is cool to be
able to go multimodal and say when it comes to like describing
this moment in the talk i want to type that but when it comes to doing a quote i just want to
pull the words out of the air and put them into the text and i found i was not tempted to speak
the summaries because i wanted to write them a little bit more carefully and i was listening
to the talk while writing the summary.
So it's like being able to flip between these different modes
was really empowering in a way that I'm not used to,
because I'm not used to having a keyboard shortcut
that just says, turn the words you hear into text.
So what you're saying is you were able to have a direct connection
to the things you were making oh no and get live feedback
we don't need a segue jimmy we're already in we don't have opening banter this episode we're
already in the main thing all right so uh should we start there should we start with inventing on
principle yeah go on i guess we can start with the best yeah let's yes well yes well start with the most important um the best yeah okay i watched
this talk yes over a decade ago and i do think that this talk was very influential on me getting
into this space and to to all of this and so i i'm betting that's a lot of people's origin story
in this community who've been in it for a while was inventing on principle.
I know that it's called Future of Coding, so Future of Programming, I think, was the talk that really inspired it.
But inventing on principle to me was kind of this first talk that showed the world that programming could be a bit different than what we had made it yeah and i i think that these demos are really
interesting but i do think a lot of the discourse on this talk has like lost the big picture and
that's what i hope that we we focus on is what brett's real point of this talk was not the
programming stuff yeah like my summary starts this talk is about finding a guiding principle
for your work and that's how he opens the talk and he says that repeatedly throughout the talk is like the point is you need to motivate your work with a
principle i'm following a principle and so that's what lets me do all these cool demos but you need
to go find a principle of your own well that's that's not what he says no that's not what he
says he says you can find a principle and this is a way of living your life yeah yeah you don't have to it's the
right way the best the cool way yeah but i don't know you do you i guess i don't care if you do
the wrong thing so so so you all both took this even though you know brett victor doesn't say it
that way as like this is this is the way yeah do
you have a principle that you live okay i guess we should state what he actually is saying right
yeah the point is that there's an a different way to live your life if you're going to be a
technologist uh you know programmer designer i designer. I don't know the right word here. Already wrong.
An inventor, a creator.
Getting closer, getting warmer.
Any field, any person, if you're going to have a life's work, you should have a principle
that motivates your life's work rather than something like, it's important to me to make
sure this obscure JavaScript engine is not left to the dustbin of history.
I'm going to take a personal crusade to keep this javascript engine alive that's like a very narrow like specific thing
whereas having a principle is a thing that does not dictate a particular course of action it just
says this is a change that i want to see in the world. Damn, AI-empowered Ivan coming up with the quotes.
You're ready.
I don't like this.
My point is that we often think of technology
as something where what you decide to do is mastery, etc.
This is what Brett talks about.
The way that you live your life if you're in technology
is to become a master at something or solve some
certain problems and he's saying there's a different way that you can create change the
world through inventing that you can make the world a better place through inventing and it's
not just an opportunity it's not that like oh you made it because you made this cool invention but you saw something wrong in the world and you're fixing that wrong through inventing rather
than through advocating or organizing or some other social thing it's through creation that
you're fixing the ills of the world yeah that's why i want to talk about as a technologist, of course,
we already know that if you're
a social activist, you can
make the world better through
some principle, but we
haven't talked about the idea that
people who invent can also do
the same thing.
And so, Brett wants to say that this is the third
way, or this is like
another way of living your life that you don't often hear about if you're in technology, is dedicating your life to fixing something.
And he then adds on another thing of how do you really do this well?
You find some principle that you hold on to, and that is what you focus on trying to fix. And so for Brett.
The principle is that.
Creators should be directly connected.
With their creations.
Yeah.
And so this whole talk.
Is both Brett telling us.
Another way you can live your life.
But also him demonstrating.
How he goes about.
His principle. Which is that there should be a direct connection. To your creation. but also him demonstrating how he goes about his principle,
which is that there should be a direct connection to your creation.
Yeah, I can't disagree with that.
Okay.
Can I introduce a framing?
A framing? I don't know if that's the right word.
Can I introduce a way that I look at Brett Victor,
like the man on the whole and all his work?
I use my eyeballs usually.
Right, yeah. Like the man on the whole and all his work. I use my eyeballs usually. Right.
So I think about it in three ways, right?
I can admire Brett Victor's work from just how he presents stuff incredibly well.
Like he's this exceptional public speaker.
His timing is weirdly delicate and good. And his demos are just like perfectly paced etc and i take a lot of inspiration from that just presenting full
stop doesn't matter what it is and there's i think there's two other areas that i look at when i'm
reflecting on this work there's what bre Brett Victor says about coding, inventions, technology,
right? Like how to make that better. And then there's like this third stream, which is what
Brett Victor says and states about art and creativity and creation and making things and exploring. And I think, I think it's really helpful
to see what he's saying in just one of these three tracks at the same time, right? So like,
I think inventing on principle, there's a little bit of a crossover, right?
Because he's sort of giving his opinion and advice about, hey, if you want to do invention better, if you want to do technology better, then take a principle.
Right. That's like one statement that he's putting out.
And then he also has another statement in this talk.
It's kind of more like an example though, right? Maybe it's not the main point of the talk, but it
is definitely a point of the talk that immediate connection to what you're creating is important.
And I find myself agreeing with those two different things in different quantities. And so, Ivan,
earlier you asked me about like what people get wrong when they're criticizing Brett Victor. It's
that they can't separate these two things, right can you can agree with one part and disagree with another
part and and often people say ah well i don't like what he has to say about technology because i
disagree with him on what he says about art or i disagree with with him on art because you know
so like i don't know i think it's i think it's helpful i think it's especially helpful for dead fish which we'll get to later yeah that that is going to be i think we will have a lot of
things to say about that one in particular yeah so funny i have nothing to say about that one
i'm i i knew i i actually intentionally did not even make notes because I knew that was going to be a very Ivan and Lou-led discussion there.
So inventing on principle starts with this point of, like,
I'm going to tell you a way you can live your life.
I will be very clear that Brett does not say this is the only way.
Yes.
Brett does not say that you must do this,
that if you're not doing it, you're wrong,
or that it's not as good of a life or whatever.
He just offers it as a way to live,
a way that you might not have been told
by your career counselor in college.
Yeah.
Right?
It's true.
No one's going to tell you in technology
to start your own personal crusade,
is what he says,
but he's going to.
Ivan's considering whether he's going to interrupt
all right sure you really think he's do you think he's making a stronger point by
like yeah he doesn't say it explicitly but that's what he means i just don't know why
this distinction matters i just don't know why oh it really matters because i'm gonna
i'm gonna disagree with oh okay great yeah if you're if you're not just being like well ivan
presented it as though there was no wiggle room and and in fact, there's lots of wiggle room.
No, we have to ask the question, is this actually the right answer?
Cool, okay, ask that question.
Okay, yeah, we have to get there. We can't sprinkle our own thoughts. We gotta talk about the talk. You have all this, like, I'm trying to get us back into the talk. This is the problem with talks versus text. I can't just be like go to paragraph two and let's read it i gotta i have time stamps all over the summer but i can't get
us all on the same page and then start reading things all right i i have it right here all right
i'm gonna start taking us through the summary so he does a series of demos he has five demos each
of them showing a different thing that he made uh in an instance of him kind of
living by this principle this like he'll be doing something and he'll find oh here's a case where
i'm you know not being given an immediate connection with my work how could i change
this bit of software that i'm using or whatever so that i have a more immediate connection because
i'm trying to do something and so the first demo is this sort of, and I'm going to use modern
terminology to describe this. I'm not going to try and take us back in time, but it's a live
coding editor that he made where there's a sort of a JavaScript script on the right half and on
the left half, there's a live updating canvas and you can type some code in the javascript and the canvas re-renders immediately um which which was pretty eye-popping
at the time that was not a really common site you know 10 years ago or whatever when this talk came
out and he shows that you know not only is this a live updating code editor where you can change
the code and the and the drawing updates but the code has some nice little affordances some little augmentations added into it like if you
have a number literal you can grab that with the mouse and scrub it back and forth to see how you
know the drawing changes and you can just stay looking at the drawing and scrub the number and
not care at all about what the concrete values are and just dial it in until it satisfies you
creatively and you know compare that with the state of the art at the time and what is still
kind of the common practice of you change a number you hit compile and run you wait for x code to you
know do its thing and copy symbols over and 30 seconds later you get to see that one change
on your device or what have you in the simulator rinse and repeat um this sort of like immediate
feedback is is so immediate that it's like it gives him an idea for an animation just playing
with one of these values like oh i'm wiggling this value and it's updating so fast that makes
me think of something that i would want to animate And it's a sort of idea that can only occur
because this connection is so immediate.
Because he's working in this new and different way,
it's enabling him to have thoughts and reactions with his work
that just otherwise wouldn't be possible.
This demo, I still think it is like one of the
best demos for live coding ever. I don't know if there's something that's actually matched this.
I'm going to put it out there and say, this is the best live coding demo so far.
I think, you know, some things, like you said said some things we do have now like this live
live updates right but some things we don't like being able to inspect the canvas and then see
which bit of code is responsible like i i crave that i create i've been working with shaders this
week and i crave that so bad and sure i could like build it myself from scratch each time but like
it it's not the norm you know it's not the norm and and i i would i would love just yeah more
people to look at this again and rediscover it and see what i don't know debugging a 2d canvas
could be like and playing with a 2d canvas yeah and i think that backwards going from the drawing
to the code is one of the harder things to to make yeah right i think we do kind of uh you know
we see a flashy demo and kind of think oh well why can't we just automatically do that if you i mean
if you try to do this in like a production environment rather than just a toy it is very
difficult to get that sort of live feedback
consistently not have infinite loops going on you know i think this is like an area where like we
really do need to have you know more research more engineering go into it but going backwards
is one of those things that i think like nobody nobody has focused on and i think that's one of
the most that was one of the most interesting parts
of the demo for me, is being able to...
I mean, it's like dev tools in the browser,
being able to highlight it or whatever.
But that doesn't go all the way back
to your JavaScript that created it.
It might go to your HTML.
You can kind of do it with React,
but it's not quite the same.
Anyways, I think this canvas,
being able to do that, is really neat.
And I do think that this demo set the stage perfectly for the next demo,
which to me at the time when I first watched this was just mind-blowing.
And one of the things that I think is really fun with the recording
is you can hear the audience reactions.
I'm pretty sure someone was sitting there and just adjusting the gain uh as he was talking because if you listen to the like the original recording brett
will be talking and the mic quality is fine and then all of a sudden the audience is like
reacting to things and like you can hear the room noise crank up yeah and there's a bunch of static
and i don't know if they're turning on a second mic
or they're turning up his mic or someone posts ivan shaking his head because he knows what they
did so what did they do ivan it's probably just this way that the audio was run through a mild
compressor which automatically adjusts the gain based on changing input levels um yeah okay so
why can i hear the audience better as they get louder uh because
they aren't close to the mic okay so there's two things happening there's like oh the audience is
there and they're bleeding through a little bit but it's quiet and since the overall level perceived
by the mic is lower the compressor is going to boost that gain a little bit and so you're hearing
the noise floor come up as the gain goes up but then
you're also hearing the audience get louder because the audience is getting louder okay
uh yeah so like it's it's iron sound engineering corner
regardless it was probably an accidental property but i actually think it makes the recording much
more interesting i've been at live talks that i then hear the recording of and at the live
talk you could hear the audience participation and it actually made the talk better like you
could hear them you know oohing and aahing laughing whatever and then you listen to the
recorded talk and they don't laugh at the joke yeah yeah even though they did yeah right i have
have this all the time i've i've recently re-uploaded my uh uh my splash con talk right
and because the official upload i knew i knew they'd do this they they uploaded it with like
worse audio quality and it's like i put it onto the timeline and i was wondering do i do i just
crank up the laugh laughter but no i know they didn't i didn't i am so close it makes the
talk more fun like hearing the everyone yes it does yes you know whatever right i just enjoy it
so much that's why what was so good yes oh yeah yeah yeah you're right but then you look at the
recording of the future of programming by burt victor and they didn't do that and there are just
periods where you can hear yeah you can
hear the silence but you know that the room is laughing yeah anyway so i wanted to just add
before we get back to talking about the actual talks meta um i want to say one more thing about
the audio quality for inventing on principle specifically um super relevant um so i think part of what you're
hearing jimmy is also that the mic that is being used to record this talk is a weird mic like it
it's some i think it's like a little bit more omni than a a mic would normally be um i and i
didn't get a good enough look like maybe he's wearing a lav or something like that and that's why we hear it but it's the sound quality is very poor and that meant that uh or
that that that had the effect of causing somebody to take this talk and run it through some sort of
ai powered like audio clarity improving tool and there's a version of the talk with that like ai boosted
audio quality on youtube and if you listen to it those boosted crowd noises get turned into speech
and so you'll get the occasional weird like some old woman's voice saying like
pancake potatoes and it's like when the audience laughs you hear like little weird murmuring nonsense voices in
there and it's really tasty so i would recommend people listen to this this ai inflected version
of the talk because it's uh yeah it's it it delivers the goods so i am curious like this is where i this is why i wasn't sure about talks in this format
do we really want to describe each of these demos the five demos like yeah i don't but i do want to
talk about the first one and the second one and maybe one more
okay okay that's fine the second one is braid yes exactly yeah including um everyone switches
off after the second one yeah yeah what's the what's oh what crap why can't i uh david hellman
yeah it's like david hellman did artwork for this or he used david hellman's artwork from braid uh some of it and i think hellman might have done another graphic or two artwork for this, or he used David Hellman's artwork from Braid, some of it.
And I think Hellman might have done another graphic or two specifically for this talk.
But it's, yeah, it's Braid.
So unlike that first one, you know, which I agree, when I first saw that first one, I felt this tremendous shame for having been building art tools for many years at that point that weren't nearly that good.
When I saw the second one, I was like, really?
That's it?
Like, we have that already.
That's a pretty common thing.
In game dev and in, you know, contexts where you're doing bespoke tools for artists, kind of like let me you know go across time and
twiddle things and look at their effects across time like not rendered in exactly the way that
he rendered it but that that idea or like uh input replay like let me do a bunch of things
save the inputs to that and then reapply those inputs continuously as i change parameters that
that's like um much more common.
Where the first one...
Yes, I think that was the opposite for me.
I thought the first one was really lame.
The second one was really cool.
I'm talking about my first reaction.
Because I had no interest in building and making art.
So, I mean, okay, let's see.
I was 20 when i first saw this so like you
know i had not done i had not seen people make games that have these you know input playback and
all of this stuff right uh so like the me that was just so cool and like the the time travel aspect
and then being able to see that i'd also not played braid um so i didn't get the reference but uh you know being able to see in real time how this you know character can hit the
the spot that's so much cooler than oh i drew a tree and the code's over here to me i was like i
could build that demo tomorrow yeah that was you know obviously not true but that was my my reactions you know
like i think you're both wrong right i'm gonna come out and say it i think you're
listen listen it's not about the technology i think i think this is about selling an idea
i i've i'm gonna keep saying this it's like a fashion show you, he's like parading this new concept of imagine a world where this was the
norm and this was seamless because I know the technology for this exists and I know I can,
I can make some of this. I could, people could always make this. Maybe it did exist in tools,
but to have it so seamless, you know, for it to feel easy and to be demoable, it, its goal is not to make you think that that's the right thing.
I think the goal of this kind of demo is to make your head start turning, you know, the cogs in
your brain start going, and think, wait, wait, what if I apply this to my field? Or like, what if I
apply this to this other thing? And I think, you know, like these, these two demos seem to have
done that. Like, we don't even need
to guess, like so many people have, have come up to me and say, Hey Lou, have you heard of this
really, have you heard of this guy? He's called, he's called Brett Victor. Right. And, and he had
this, it's like a plat, it's like Mario and he jumps and then you can put him back. It's amazing.
Right. And like, I think it's near a hundred people that have told me that
like you can see the effect it's had you know and and i think it's been a good effect you know
people want to make more live tangible things with code that's a three stars for me three out of what
wait no three three out of three oh okay i do agree it's been a really good effect.
I think a lot of people, this is where their criticisms come in, though,
is that the demos were too polished.
That they kind of pretended as if they had built a system
that could do all of this,
rather than really talking about the difficulties of doing this
and the downsides.
I've heard people
make this criticism like it's a flashy demo with no substance because actually making a system that
gives you all these properties and doesn't just suck i mean i think about like early light table
right the early light table came out in response to to this work by brett victor i mean some of
the demos were it i mean it was it was It was very... It said, like, inspired by inventing
on principle. You can't react to my
facial expressions without actually
describing them. Otherwise, the listener
will have no idea, and then we'll go
back to not doing video. Yes, I do that too much.
Yes, I know. My bad.
I will not react to your...
Well, you should not make such incredulous
facial expressions all the time whenever
I say things.
You shouldn't talk shit.
You shouldn't say things that...
How am I talking shit?
Oh, there we go.
Thank you.
He got me to say, to make something he has to censor.
That's good.
Yeah, that's great.
Oh, wait, is that a news resolution?
Oh, no, prediction.
Prediction.
Yeah, achievement unlocked.
Look at that.
Look at that come down. Achievement jimmy all right so so did that just for me so
yeah chris granger made light table yeah in response to seeing inventing on principle and
trying to make some of this stuff happen live and if you actually tried to use the live ripple
it was awful like i don't think chris Granger would disagree with that, because that's why
it moved on to Eve. Because he would go back to that well
and keep taking cracks at it. But it was not a fun experience
to try to use the live REPL, and languages weren't
designed to be run that way. And I've done some experiments trying
to make things that are designed to be run that way. And've done some experiments trying to make things that are designed
to be run that way and i know i think it's jamie brandon who's done some talk or uh written a blog
post on some of these things and like it's it's hard so this like the third demo which we don't
even need to talk about because it's just like boring typical it's like learnable programming
it's the line the line yeah if you if you've if you've read learnable
programming this this third demo is just the same as that it's like let's show state as code executes
um oh i mean we do need to talk about it for a second which is like this is the other major
criticism is that like these live programming tools work really well when you're working on a visual
program like like a game or art but the binary search sucked yeah so i was about to um just say
what jimmy said but jimmy said it so i know i don't need to do you think you think that demo
sucked no i okay so i'll say what i actually was gonna say which is these these demos are are interesting
to compare and contrast even though that's not the point of the talk remember the point of the
talk is not to get into the demos it's to focus on principles and and creators connections with
their work but that criticism that it's like these are toy examples this stuff would never
work in a in a production system this stuff only works because it's in a visual domain.
Like, I take that as a sort of a, like, I look at that and I say, so what you're actually
telling me is that since this stuff won't work in a production system, we just shouldn't
do production systems.
And if this stuff won't work in domains that aren't inherently visual, then we just shouldn't
work in domains that aren't inherently visual then we just shouldn't work in domains that aren't inherently visual like if we can come up with breakthrough incredible ways of visualizing things and
creating an interactive experience by leaning on visual affordances and then when we try and do it
with textual code it's like kind of falls flat it's it's like you can see the memory but it's
not very meaningful and it's not interactive and
tangible in the same way then like simple we just need to change what programming fundamentally is
to make it so that we can have more of that earlier demo experience rather than the the
less interesting binary search demo experience i don't know i i really like this one as well i didn't expect to be
defending brett so much so hard but or text coding text coding yeah no listen okay okay hang on
okay there's this criticism right that like the demos are too flashy you know the demos are too
flashy you know when you actually try to do them in a real situation, it's really hard.
And I don't think that's a criticism.
I think that's just outside the remit.
That's outside the scope of this talk.
Too bad. Deal with it.
Imagine taking along your friend, your colleague, to Paris Fashion Week,
and someone walks down with this incredible like you know they got like
banana peel dress with like I don't know like a model of the solar system around their head
and then the person to your right leans over and says it will never work in practice it'll never
sell it never sell in the supermarket I'm like yeah that's not the point that's not the point
but maybe but maybe people will start thinking about oh what what different materials can we in the supermarket. And I'm like, yeah, that's not the point. That's not the point. But maybe,
but maybe people will start thinking about, oh, what different materials can we use for dresses?
What crazy things can we do to get the zoomers excited about headpieces? I don't know. I don't know fashion, as you might tell, right? Yeah. Or maybe, maybe just like it's possible to
present your body with the affordance or with the augmentation of clothing in a way that is exciting because of what you do with color and geometry and texture and material.
And there's like there's things you can do with clothing that are more than just like, you know, what's it called?
Like the Alberta tuxedo or whatever, like jean pants and a jean jacket.
We just call it the Canadian tuxedo.
There we go.
Yeah, yeah, yeah.
So this binary search demo,
you know, this binary search demo,
I think it's just another example
that Brett Victor is showing.
Look, I'm trying to apply my principle
and I'm trying to apply it in all areas.
This is what I've done so far. Maybe it has
limitations. Maybe it sucks. Maybe it's not as good as the first demo, but I'm just trying to do one
bit at a time. And what's the goal of this demo? Like he's not trying to, again, he's not trying
to sell us that this approach that I'm doing is the one you should be doing. The goal of the demo
is to try to sell you on this
idea that you should have a principle, and it's trying to sell you on his principle,
right? Like, he's not trying to sell you the idea that this demo is the way to do it. So,
sure, we can say that this demo isn't the way to do it, but hey, that's like one other thing we've
tried. You know, in one of his other talks we're talking about
he talks about we need to try everything we need to try a hundred different things i've tried one
great who's going to try the next one and i think i think that this talks like does that so from
sort of talk delivery point of view that's a three three stars as well for me three stars code three
stars talk delivery and and goals fulfilled.
One star, but, you know, well, never mind.
I completely agree with Lou that, you know,
the criticisms about the demos I do think are misplaced because they're not trying to sell you this is the way you should program.
But I have to pick on Ivan's.
Yeah, go on.
Well, then we shouldn't do anything that's not visualizable
and we should just fundamentally change.
That's just silly.
Like, there are so many things for which trying to solve the problem
of how do I visualize this thing is harder than solving the problem
you had on hand.
So, for example, I downloaded 100 gigabytes of Lee Chess chess data.
Okay?
So, I needed
to get... It was Tuesday.
It's a normal Tuesday for Jimmy. I'm not surprised.
I'm not phased.
I downloaded, and that's a very tiny,
it's like one month of Lee Chess games.
Love it. And I needed to make an
openings book so that
my bot would play the openings
differently, because this bot always
plays the same moves and responds to the same thing. So the way you cheat is you make it play
different moves at the beginning so you get it in unique positions. So what I wanted to do,
though, was not just pick all the best openings. I wanted to pick openings of players similar to
my rating on how they would play and what the likelihood of them doing it is. I could not easily visualize all 100 gigabytes of this data
and figure out where things were.
And even trying to figure out how to parse through this data
and get the right bits and all of that,
that was the hard part initially,
was trying to even make sense of this data.
And if I tried to start by
visualizing the hundred gigabytes, I would have just never made any progress. And so like, we
can't say that like, we just focus on the things of programming that are visualizable. I'm not
saying there isn't a visualization of that data. Of course there is, but trying to solve that
problem before I could solve the problem of gathering up all of the
examples to make an opening book is the wrong order i think you misunderstood my criticism
okay or i presented it badly yeah let's let's put it that way i'll take the blame yeah i presented
my criticism badly i wasn't saying that the thing that we ought to do is like what brett does in the first two demos where he
finds a way to visualize something that was previously invisible or finds a way to make
something interactive that was previously not highly interactive what i'm saying is the problem
with the third demo is that it's still just textual coding and so visualizing the state space is like
it's nice but it's it's great. It's underwhelming.
I was underwhelmed by the third demo.
And it's not that we need to visualize
your 100 gigabytes of chess data.
We need to give you a programming environment
where you're working with some kind of,
I don't know what to call it, visual programming.
Because...
But that wouldn't make any difference.
I would still be programming with a blindfold on.
It's just that I would not be using text.
I'd be using your fun little pictures.
I don't disagree.
I'd still be programming with a blindfold on.
I would still not know what that 100 gigabytes of data is.
Fun little pictures.
My point is, and for certain kinds of things,
like if you're working with text, it makes sense to use a textual language.
Like that would be dumb for anybody like, say, me, repeatedly to argue against.
If you're going to be working with something that is inherently textual, you want to be doing that in a textual representation.
That makes sense.
Same reason if you're working with like, you know, math in a symbolic algebra kind of way you want to be able
to use symbolic algebra trying to put that into you know like doing math in textual programming
sucks right javascript doing like math.min math.max math.this you know it's terrible compared to nice
concise notation you want your notation to suit the thing you're working with if you're working
with 100 gigabytes of chess data and you could like for free have that chess data visualized on a chess board with pieces and with
you know oh let me like scrub through all of these positions or whatever like if you for free
like for magic had that would you still choose not to use it would you still choose to do it
with a textual output of that
data in a you know tty or whatever it is that you would have been using to work with that or would
you take the visualization on a chessboard if it if you didn't have to build it yeah my point was
about the fact that like trying to solve that problem of how do you visualize it the thing
you're saying i get for free yeah is a much harder problem than the problem i was trying to solve that problem of how do you visualize it, the thing you're saying I get for free,
is a much harder problem than the problem I was trying to solve.
Yes, but that's why I'm interested in figuring out if it was for free, would you have taken that?
I don't know that it would actually be useful for these purposes.
Like, it's cool.
You make a four-year-old demo of being able to see all,
I don't know how many millions it was 60 million games.
But like at that point
and like I brought it down to a subset of 6 million
I don't
know that I would have gotten much
use out of it for what
my purpose is.
Yeah, so then I just
my problem is I don't really understand what your
purpose was and whether or not it would be a good
fit for visualization. And I don't want to suggest that all things and whether or not it would be a good fit for visualization.
And I don't want to suggest that all things always need to be visualized.
That's my point of like symbolic algebra, you know, is a symbolic representation.
It's still abstract.
You still have to like do equational reasoning in your head. Point is, I really, especially in the context of this community and this podcast, I really take offense at the argument that it's like just because it's harder to build the better interface, we should stay with the interfaces that we've got.
I think that we need to very seriously and emphatically attack the problem of why is it harder to get these richer interfaces? Why is it harder to get these richer interfaces why is it harder to
get these better visualizations why is like like brett's demos are in the areas where he could
make a compelling demo with minimal effort because those were the resources available to him but he
makes the point and i'm skipping ahead to the the end of the end in future programming, where it's like, if we settle for
the sort of status quo version of programming as it kind of concretized in the 60s, and don't
continue trying new things, we're going to get to this point where – and he says almost exactly this, that like the status quo version of things is going to get more and more effort put into it and it's going to get solved and it's going to get good enough that trying to do any new different kind of thing is going to have a tremendous uphill battle because it wouldn't have had any effort put into it.
It wouldn't be very rich by comparison.
It wouldn't have had all the quirks worked out and that's that's the thing that i'm saying is like yeah for you personally it's not worth it to put in the effort to try and um visualize your chest
data but for us as a collective force of will in the world i think it's imperative that we all try and find not like here's a
specific domain in which i can like make a little visualization of this one specific kind of data
for this one project but like hey i came up with a clever way to visualize or do something with or
add an affordance to this entire category of thing.
And it's a small affordance, or it's a small visualization, or it's a small increment.
Or, for instance, hot module reloading, right? Like, that's something that does get you incrementally closer to having a real-time connection with a live running system
in the context of status quo programming.
And so that's the thing that i want to take away
from from this is like yeah he he went super narrow and went super deep and super compelling
but i think there's value in like in going broader than that and saying not just within a specific
project but like across all domains like where's a thing you can find that's like this is a thing that i
can make incrementally better in this direction i completely agree with all of that i think we
can get more into that in the future of programming but yeah i guess my the thing that i was just
hopping on there was you saying we shouldn't be doing things that aren't visualizable in that way
and that was just i think a little too strong of a statement well okay a
hundred years from now we shouldn't still be doing that a hundred years from now all right i'm putting
in my calendar yeah yeah yeah that's my we did our six year predictions i'm gonna go get some
painkillers by the way if that's all right painkiller break you need them for this flora
just discussion flora just snuck in under the camera oh freya does that too freya also
sneaks in under the camera sometimes yeah no way no way she never wants to be seen yeah so
fair enough all right just give me a sec i'm just gonna get some uh lem sit lem sit
how you doing uh not too bad.
Sorry for the silly little pictures.
It was just too fun of a turn of phrase to...
Silly little picture?
Yeah, like I said, like, instead of doing textual...
I just want to make sure...
No, that's good.
That's good.
Good, okay.
I figured you would be fine with it, but...
Yeah, if you're not giving me a hard time, I want my money back.
Okay, good.
Yeah, that's what I'm here for. Good. I'm here for a hard time, I want my money back. Okay, good. Yeah, that's what I'm here for.
Good.
I'm here for a hard time, not a long time.
You obviously know I'm not against visual programming.
Of course not, yeah.
But I'm also going to use you as a stand-in for the people who are.
Yeah, yeah, of course.
Yeah.
That's my job here.
Well, yeah, we all surface each other's invisible biases.
Foregone conclusions.
Ugh.
Ugh. Yeah, I don't know about videos.
I think it's harder to structure the conversation.
I mean, if we had a good track record of highly structured conversations,
I'd be more willing to...
Our conversations are... The better the the text the more structured the conversation i still think there's
like sampling we don't have enough samples to definitively claim that i mean there are three
of us i would agree we don't have enough samples yet but i think the better the text the easier it
is to structure the conversation which is why i just want to do now and gabriel will just be the now
and gabriel podcast we can i'm i'm not opposed to doing more now and gabriel i was skimming
through pygmalion um yeah and i actually think like it's way too long yeah but i want to cover
it there's so many like juicy silly bits in there yeah that
are just like so not modern computing yeah the fact that it's like a phd thesis that like talks
mostly about art for like most of it is just so fun and i do think there's some good stuff in there
i just got to figure out how we do it without reading all 154 pages yeah that's a little much so i might go and spend my time like making a reader of it with the
good bits yeah i don't think we want to read 154 pages of if we didn't do a monthly episode i would
say we could do a series on it but i think with doing one episode a month series are boring yeah
we'd have to do like three episodes a month i think before i'd want to because like if you
did a month of pygmalion and we did three parts yeah i think that'd be reasonable but like waiting
three months to just get pygmalion every time yeah if somebody doesn't like the first one
yeah they're not gonna listen to the other ones.
Yeah. I still have to find a way to get the editing to be faster.
Chop, chop, chop, chop, chop, chop, chop, chop, chop.
Thank you for contributing more stuff for me to cut.
Well, sorry.
If I could just take our stuff and ship it unedited and be okay with that.
Something you could do to make it quicker, like do more of a scrappy edit.
Would he be happy with that? That's the real thing.
While still keeping the personality.
That's not the slow part.
The slow part is that I have to listen through it
and think about what we're saying
and decide, do I want us to actually say that?
I'm curious about your process.
Oh, I'm glad you asked, Kermit.
My process is pretty simple.
I just delete all the parts
and leave in all the parts.
I picked up this technique from a fellow podcaster named Merlin Mann,
who has this saying, Merlin Mann.
He has a saying, Merlin Mann.
He has a saying where anything that's in the show is in the show.
That's not actually right.
It's everything that's in the show is in the show.
Yeah, but that's part of the Merlin Manniness of the joke,
is that he keeps misquoting himself.
So in that spirit, I tried to do a really good job of editing these conversations.
That's what I like to do here on The Future of Coding, this podcast that you are listening to.
Yeah, sorry, but I listened to the podcast, but the discussions were not well edited.
I mean, like, I would say, I say i would so i would rather sacrifice other stuff
like everything we we have a good chat you know just just no one needs to hear them there's
yeah yeah i know is it dead fish time it's not dead fish time we have two more demos oh we are
not even we're not okay we should not
talk about the rest of these demos do we have anything i didn't think we should yeah i don't
think we should i just want to say for the for the fifth one the animation one i actually tried
to build that at my previous job and got pretty far and made something that was really fun and
cool and then had to stop working on it and go work on customer support and scaling and other bullshit.
So I think that there's something.
Okay, so I made the opposite point earlier.
I want to make this point.
I think it's also good to just pick a super narrow thing,
even something Brett Victor himself did,
and just solve that one problem in that one tiny little use case.
Clone something Brett made.
I think there's tremendous value in that.
You don't have to go and find like,
oh, what's a better way to,
you know, visualize numeric types
and make them tangible and interactive
at runtime or whatever.
Just even just cloning Brett
is a good thing to do
as somebody who did it to great effect.
Yeah, I've mentioned before,
I think a Brett Victor code jam
where you go make a Bretttt victor clone or inspiration
would be fun yeah that's actually a great idea you've mentioned that before how come i haven't
internalized that i mentioned it on the podcast i know because somebody else messaged me and was
like that's a good idea yeah that's actually a really good idea you know you know cuttle yeah
i know cuttle yeah yeah toby shockman and uh forest elephant yeah if you like what follow back
the family tree of cuttle it starts from quite a brett victory place right from a from do you
remember you know recursive drawing i do yes yeah so look clone well i don't know make a directly
inspired brett victor thing and you could end up with cuttle but instead of making solid shapes
that go kind of on top of other solid shapes you should make like thin rectangles that you can put
inside other thin rectangles it's way better yeah make them colorful way better and have a dark background
screen pond have a dream sequence so we've gotten through the demos to the actual meat of the talk
oh no the meat no you've got 1.7 vegetarians on this show with you jimmy meat doesn't have to be
uh animal based i think that's what you really need to change. I love pea protein. Pea protein makes the best meat.
Don't you call coconut, isn't there like the meat of the coconut
or something? I think there's some fruit that you can say the meat.
Tofu meat. I love tofu meat. Anything can be meat
if you mean it. There's a meat of anything.
So, there's some like he talks
about tesla and tesla's no modes is an example of a principle um we could talk a ton about we
should actually do some tesla on the show yeah yeah so tesla would be a good one to do the whole
point of all these demos was to show his principle of how you can go and apply his principle to all of these circumstances. And it's not in his
mind solving some sort of problem. It's not a product opportunity. It is him trying to fix a
wrong in the world. That ideas are precious to him. And when he sees ideas locked in people's
heads and not being able to get out because they don't have this direct connection, he wants to fix it.
And he wants to give us other examples of people in, I'm just going to call it technology, that have followed this same sort of pattern of seeing an ill in the world and wanting to fix it.
And he wants to say that these principles need to be very particular.
So he gives Larry Tesler as an example,
who came up with this idea of modeless editing,
but that's not the way he would want to put it, right?
He would want to say that he dedicated his life
to the principle that no user should be trapped in a mode.
Yeah, and just to be clear,
the thing that Brett in this talk says is the wrong take on Tesla is that
Tesla was the inventor of cut,
copy,
paste because inventing cut,
copy,
paste is not the thing Tesla set out to do.
Tesla set out to escape modal editing to get us away from modes,
which were the prevailing interface paradigm at the time
that you'd be in a mode and when you're in that mode your inputs are interpreted a certain way
and if you go into a different mode those same inputs are interpreted differently and that
causes problems for i think one of my favorite examples is if you sit down in a car and you know
that it's in a certain gear and you push the gas pedal, unless you go and check which gear you're actually in, you don't even know if you're going to be going forward or backward.
And that can have dramatically different results.
And that, like, series of inventions that Tesla did are all well and cool.
But it's this, like, championing of no modes that is the thing that really defines
what he was all about i'm curious before i think i think there's some i do have some criticism
of this idea and the way he puts it the like uh that you should have a principle and that
yeah that should be what drives your work that that idea i i think there's some inconsistency
with what he was going to say but i'm curious to know if you all have a principle you know that you that you really do
follow for your work sand yeah okay let's do this let's do this lou you should go first it sounds
like you super do uh well my joke answer is sand just make sand as much as possible i'm gonna tattoo
it to me i'm gonna paint up my face i'm yeah. But the real answer is that I, my idea is that there should be no more ideas.
And we have enough, we have enough of them, no more ideas and that you should merge them instead.
I think we, I don't know when it was around like 2001. We had enough. And now people need to do the hard work of figuring out how to combine them together.
And that's my non-joke joke answer.
There you go.
Actually, it's genuinely my principle.
I write about it on my blog, which is a wiki slash blog slash garden,
because it's a combination of ideas.
How about you, Ivan?
I don't think I have a principle.
Like I tried to think like,
what is, what would a principle that informs my work be?
And I don't think I have one.
And I don't have any shortage of motivation
to seek out and work on oh come on
what to me are interesting problems but i also don't have any desire to like change culture
change the world or anything like that like i don't have a a need to dedicate myself to a life's
work to find meaning i have like other ways that i find meaning sliding life everybody and your way
to and i do end up making a lot of things
and trying to make things that are of course you do you know at odds with convention or that are
doing something interestingly different i just so i feel like i approach it more as why why do i care
art practice it's art where is it yeah of course it's about expressing things that are subtle
did you just say that i don't have a good handle on and that I don't fully understand.
And then I go through the process of making these things to try and understand them better.
So it's something that I do.
That doesn't mean anything.
That's like utterly meaningless.
Because I have some feeling or some impulse or something that I want to explore and understand.
Intellectual curiosity.
This is like a first-year art student artistic statement.
Just for my own personal edification. Nothing to that's what motivates my work good word you see
this is this is what i find sometimes tricky about brett victor's talks and stuff is because
there is this idea of like what's your principle for art and what's your principle for invention
tangled up a little bit because my principle for making creative stuff is completely
different from what I follow when I'm trying to invent stuff right and make new technology in a
way and maybe for some people that's the same thing but I think we need the capacity to be
able to see them differently. Totally. Yeah.
Draw your own boundaries around your own activities
and what motivates you to do them, by all means.
Like, Brett definitely has boundaries around why he does different things.
And that's evident from the ways that he talks about creating technology
versus creating banners know, banners
on Twitter of windmills, right? He has these creative outlets that he gives himself that are,
I think, scratching a different itch than the maybe higher calling he feels to reshape our
relationship with technology and with the, know dynamic medium i don't draw a
distinction i definitely definitely see everything that i do as being all part of the same impulse
all answering the same questions do you have a principle jimmy see this is where like i find it
hard to answer this is what my like meta-criticism about the idea is.
Brett kind of gives us a picture at the end about what a principle should be.
And I'll actually quote here from at least the transcript I have about like he really wants to be specific about principles, he says.
And finally, if you choose to follow a principle, a principle can't just be any old thing you believe in.
You'll hear a lot of people say that they want to make software easier to use, or that they want to delight their users, or that they want to make things simple.
That's a really big one right now.
That has to be a dig at Rich Hickey, right?
Did this come out after Rich Hickey or not? I don't know.
I think it's a dig at Apple.
Okay, okay. I think it's very square's a dig at Apple. Okay, okay.
I think it's very squarely a dig at Apple.
Okay, yeah, yeah.
I mean, that's a timeless dig though.
Yeah.
Everyone wants to make things simple.
And those are nice thoughts and maybe kind of give you a direction to go in,
but they're too vague to be directly actionable.
So he goes on to say, like, Leslie Terry, Terry, Larry Tesler.
Terry Lesler. Terry Lesler terry lesler like simplicity uh and
you know but this isn't enough they've got to be specific and so his principle your principle has
to guide you uh and you have to be able to take your principle see some wrong and then apply your
principle and so i took this part really to heart when I first heard this talk. And I really thought
he says that, you know, finding a principle is self-discovery and you have to find something
like actionable like that, that you can look at, see the wrong, see a way to fix it.
But when I, this is the one thing I really did get when I went back and re-listened to this talk. And it's, he kind of contradicts himself
because yes, Tesler counts. Tesler is definitely somebody who has this very similar principle to
Brett Victor, but he also mentions Engelbart. And Engelbart, what was his principle? What was his
goal? His explicit goal from the beginning was to enable mankind to solve the world's urgent problems.
And Alan Kay, his goal, and I quote, was to, quote, amplify human reach and bring new ways of thinking to a faltering civilization that desperately needed it.
Which is very Alan Kay.
Yeah.
That aside, what do you, it sounds like you object to those as valid principles,
and I don't understand that.
I don't see that yet.
They definitely do not seem to have the quality
that Brett says they need to have,
where they make it very,
they're not just any old idea.
They're very specific,
and you can see a violation of the principle.
The only things that I think for both engelbart and k are violations of these
principles is everything like the world hasn't been able to solve these problems because they're
not as they're not augmented or alan k kids aren't super smart in doing computational modeling
and so like they're not principles in the way that Brett or Teslers are where they're
here is an instance of a violation of this principle. They are just big lofty goals
that you can't really point at exact problems of, oh, look, that's an example of not a new way of thinking that the faltering civilization needed
or hey that's an example like you can say that's an example of an urgent problem that's not being
solved but like it doesn't give you the next step with brett victor's hey here's somebody not being
directly connected to their creation here's how i can make them directly connected. I don't see
the same criteria for Alan Kay or Engelbart. I think that Tesler's principles specificity
is doing a little bit of a disservice to the overall argument because it's so tightly focused
on a specific problem in a specific context with a specific solution
that it is to me erring a little bit on the side of like talking about cut copy paste
you know oh that's the wrong thing or talking about engelbart in terms of the mouths oh that's
the wrong thing it's like no they were standing for something greater than that they just made
those things in service of this greater thing and i think that when you look at k and when you look at engelbart and when
you look at brett victor like their principles are vague but they are they're like a vector
they're like this is a direction that i want to push the world. And yeah, it's hard to say that you will ever hit an end if you go in that direction, right?
Like the world is never going to run out of hard problems.
Sorry, Engelbart.
There's always going to be those problems.
Or like kids are never going to be, you know, 100% smart, right?
It's all relative.
And the same thing with creators need an immediate connection
with their work like a great creators in the past have had tremendous success even with an incredible
amount of remove from their work there are many many instances of somebody doing a great creative work with just tremendous amounts of intermediary
between their will and the effect in the world and you can tighten that i think forever and never hit
a limit where people are like 100 completely intimately connected with their work done
like even even if you're in a medium like dance or something like
that where it's like all i have to do is move my body it's like bodies are complicated right
there's there's nobody out there there's no like jacob collier right i bet he hates the sound of
his voice i bet for somebody who is so in love with the sound of his voice he loves it doesn't
he loves it yeah he loves the sound of his own voice but i know listening to him he's like i wish i were just a little bit less nasally in this range and a little bit less yeah i just wish
i was just a little bit you know a little bit less you know mucusy sort of that's pretty good
yeah yeah yeah um i'm just gonna do okay so no no no no yeah that's that's my thing it's like i actually
don't think that those vague principles are bad i think that a principle that is a vector
without an a discernible end or without even measurable increments or without even
like a a sense of where or how to apply it is fine. Yeah, but Brett doesn't. He says that, talking about Larry Tesler,
and that is a powerful principle
because it gave him a new way
of seeing the world. It divided the world into
right and wrong in a fairly objective
way. He could look at somebody
selecting text and ask, is this person in a
mode? Yes or no. If yes,
he had to do something about it. Yeah, those
are good qualities for a principle to have,
but there are many different kinds of principle.
And I think what he's saying is, like, here are some ways to get a more valuable principle, right?
He only spends a couple of sentences talking about this, but I'm sure his views on it are enough to fill a book, right?
Yeah, yeah.
Mine are, and I'm no scholar of this shit. Taking him at his word on the end here, I think this segment is pretty – he's pretty adamant that your principle has to be very direct and very easy to recognize when it's being violated.
And if we loosen that, that I could imagine a principle maybe for work.
But when we're trying to make it so narrow,
that's where I find this problem. I do think as time has gone on, I'm actually less enthralled
by this idea of finding a principle. I think when I first heard this talk to me, this seemed like,
yeah, that's how I want to be. I find so many things wrong in the world. I mean, that's just like my everyday being is finding the world wrong.
But like, I was thinking like, what is it that unites all of these feelings of wrongness?
And I think the answer is like, nothing.
Like, I just find lots of things wrong.
Like, I'm frustrated by lots of different kinds of things
and you don't have any like highfalutin way to wrap that up and put a bow on it and say look i
have a principle i mean i could be like people should stop like i could do like the alan k thing
of people should be smarter or something but that feels i think if you just replaced this idea that
brett says here which i understand he's trying to give you advice on how to come up with a principle.
And maybe if I take it just that way, it's fine.
But, like, sorry, I have a dog who just got a second treat for today.
Lemon.
So she's very excited.
Janice just came home and gave her another treat.
So she's super excited.
And I got lemon medicine.
Oh, nice. Yeah. i have a lemon yes pen do you need
to do anything jimmy you know i'll be fine i'm sure that there was enough clamoring in the
background you could probably hear the the the dog running on the floor um oh yeah but yeah oh yeah
yeah but i think that this like trying to have this overarching principle has become less
attractive to me.
Like, to me, I do think that the path I'm on is, I don't know that it's expression,
like you mentioned, for art.
It's definitely not stopping people from having ideas, to badly paraphrase Lou's principle.
Yeah, no more.
Yeah, no more ideas.
I think I just like making stuff.
I don't care necessarily about mastery.
I don't really, like, maybe I want to have mastery.
I want to be better at what I'm doing and get better at my craft.
Maybe that's how some people would say it.
But really, I just enjoy the experience of building things.
And I enjoy fighting the wrongs
in the world but i don't know that i uh i have a principle of why they're all wrong i just think
they're all wrong so i have i have a another criticism like it's it's more of a society thing
right i think there's a recurring theme in Western society to try to solve society problems with technology.
Right.
And that usually comes from rich white guys that work in tech.
And I know that Brett Victor isn't necessarily just talking about tech inventions here, but I think it's
pretty clear that that's the domain that this is in. So I just, I find it a little bit worrisome
that he connects Tesla with suffragettes advocating for women's votes right that doesn't seem like a good comparison to me and and i can see nowadays
there are more and more communities of i would say i don't know disparaged young men looking for some
guiding principle in their life and they're turning to very hateful movements some of that is not in tech like in cell
movements but they're guided pretty clearly by a certain principle and within tech there are
many things like e slash anything on twitter that is a tech yeah movement guided by a principle. So I guess, how do you know that your principle isn't shite,
right? Like, and maybe, maybe it shouldn't be a tech principle that's going to solve the world's
problems. I mean, the classic made up example is, hey, you know what? Like there's someone who's in a wheelchair
and they can't get into our work office, right? Because there's some steps there. Like the obvious
thing is to put a ramp there. But the technologist's solution is to invent bionic legs,
right? We have the solutions already. We have the ideas and it's a ramp right not bionic legs or as
some e-ac people put it like technological supermen which is yeah just a little bit problematic
i mean why because it's focused on men and it also has this weird crossover with some fascism in our past.
I, listen, I think Brett Vector's a lovely guy.
However, I think it is a little bit dangerous to say that technology
combined with principles can solve the world's problems.
It's probably a societal solution to many of these things.
I think that's a fantastic point.
And it's helped me
realize my real principle which is that everyone should be directly connected to a bitcoin wallet
you know we could just like finish the episode there yeah we could so this is the end of part one beginning of the
sponsor break you may ask ivan why do you ad lib sponsor break in this accent but you can't do that
and i say i don't know what this accent is i think uh french transylian, a little bit of the guy who used to run the coffee shop where I got married, maybe.
What the fuck?
This episode of Future Coding Podcast brought to you by Patreons.
Patreons.com slash futurecoding. it's on patreon we publish every month a bonus episode so you can enjoy more of whatever this
is except you can't because we don't do this this is not what we do we don't do silly accents on the
show we do computers and feelings about computers and people about computers and videos about computers.
And if you like computers,
go futurecoding.com
slash Patreon except the other way around.
And $5 a month
you get bonus
episodes. You make us have
the finances
that help us produce the show.
Most recently, we upgraded audio interfaces
and a microphone, a microphone stand.
It helped make us make a podcast better.
Such a perfectionist.
You like podcasts.
You enjoy podcasts.
You listen to podcasts.
You listen to podcasts.
Why do you listen to podcasts?
Why do you listen to this podcast?
Why do we make this podcast? Why do we make these podcasts like this? Why can't we just make normal podcast? Let's make a normal podcast. Future Recoding, Patreon, thank you very much. this is great because stop drawing dead is like i have so many stop drawing deads
other people have stopped drawing deads i think stop drawing dead is just like a thing on its own
as an idea or it's like what can we stop drawing dead i love that wait you mean like jack russia
stop writing dead programs yeah i've stopped drawing dead fish because i stopped drawing
good for you i don't know if i ever started so i don't know if you could actually say stop
but i was forced to draw when i was a kid so i'm so sorry do you know i reference
dead fish in one of my videos yes uh is it the one with all the fish with the different ai or
whatever where it's like oh it's not actually ai but it's yeah very clever it's it is the it with the different AI or whatever, where it's like, oh, it's not actually AI, but it's... Yeah, very clever.
It's the fish one.
Yeah, the one with the fish.
Yes, I say something like,
sorry, these aren't actually fish or something
because they're just drawings.
I think in an older version of the script,
it was more of a reference,
but it ended up as just a little one.
I immediately got the reference when i saw it that's good mission
accomplished and of course brett is making a reference to magree the this is not a pipe
oh yeah i i've done my reading today i have done i went so far back you know like we could do a
whole five hour art history thing from this teal drawer i've got in front of me alone. You have the floor.
I have the floor.
Um, okay.
Once upon a time, there was an art movement called Surrealism.
Surrealism was a reaction to the norm at the time. It was a revolutionary new idea and movement. Most
of us know it as starting in Paris in the 20s, but that's only a very small
picture, but that's the most well-known. And there was an edition, like a publication called La Révolution Surrealiste. The Surrealist Revolution. We're going to take on the
intellectuals of the world with our Surrealist Manifesto. And in issue number 12, which was the
final issue, and just a heads up, that was a final issue because of disagreements, because none of
them could agree on the right way to be revolutionary,
right, because they couldn't agree on the new status quo.
In that edition, there was a piece of writing called Words and Images.
Les mots et les images.
And I have it right here, yes, by...
Is it Magritte By Magritte.
Magritte.
How do you pronounce it?
Put these foolish ambitions to rest.
Rene Magritte.
Yeah.
And this.
Okay.
If you haven't seen Words and Images, then you should see it.
Because this is really funny.
He's drawn these really hilarious images.
The first one is just a leaf, and
it's labelled as a cannon. And there's another one I really like. There's a horse, and then
there's a painting of a horse, and then there's a man saying horse.
Cheval!
He's playing around with the idea of real objects and representations of objects so like a drawing is not a real object
it's a representation of an object there's even one of the drawings is just like two identical
drawings of a house one says real object and the other one says representation of an object
translation it sounds better in french right and um about the same time as this, he also
did this treachery of images art piece, and well, no, called the treachery of images, and it says
Ceci n'est pas une pipe. This is not a pipe directly underneath a pipe, and it's just playing
around with the same idea. This is not actually a pipe, this is a representation of a pipe. And many years later, a charming young man called Brett Victor decided to use this in his tech talk.
And he puts on the screen a drawing of a fish.
And of course he says, this is not a fish.
And as we all know, it's not a fish because it's a representation of a fish but that's not
what Brett says that's not what Brett says Brett says this is not a fish because it's a dead fish
so for me someone I'm like a surrealism nerd right, I love surrealist art. Like, this Parisian surrealist art is just
a tiny, tiny fragment of it. But I love it. And so that, for me, is this really funny, like,
divergence between the two ideas. It's taking this old idea, which is very popular and, like,
too popular for its own good, and using it, but, like, misusing it but i think we we know what he's saying
brett victor is it says that this is just a representation it's not an accurate depiction
of a fish is what he means all right so so then what he does is it okay if i just keep summarizing
for the moment yeah go for it but i'm going to stop the music. It's getting a little tiresome.
I don't want to listen to it anymore.
Then what he does is he draws a little line for this fish to draw around.
Like, maybe you do it in Flash or Premiere Pro or After Effects or something.
And he animates this fish. So he's
moving around. Brett always says he for the fish. This is a male fish, right? Then of course,
he writes again with the fancy font that McGree used way back when and said, this is still not
a fish, right? And me, you know, surrealism nerd says, of course, no, you're absolutely right.
This is a representation of a fish you know
but but it's fun to play around with this idea isn't it you know like when we're drawing it's
just a representation that's what art is at the end of the day it's symbolism right but Brett
Victor says no this this is this is not even a representation of a fish this is a dumb fish
and he illustrates this by putting down an animation of a fishing rod and a shark.
This fish doesn't react to them at all. So again, we've gone even further on our divergence from
the original Magri. You know, maybe that's fine. Brett doesn't really care about that point. He's
making a different point. But it's kind of of funny i think that that they're so far apart
anyway then brett does uh the rest of the tech talk which i'll skip over and then he has his
version of a fish it's a fish that he can basically puppeteer through this amazing visual
coding tool which he says is not a coding tool it's a drawing tool but he uses this amazing
visual coding tool to make a fish that he can manipulate and move around directly like a puppet.
Then, of course, I'm waiting for him. I'm waiting for him to say this is not a fish,
right? Because it's just a representation of a fish, right? But he doesn't. He says this,
this is actually a fish. And that is my facetious summary of Stop Drawing Dead Fish.
Thank you.
Brett doesn't know what fish are.
That's what we've learned.
Listen, listen, listen.
It's a great, it's a great talk.
I'm being facetious.
It's a great talk.
It's a great talk. But'm being facetious. It's a great talk. It's a great talk. But I want to make
this really clear. The first talk was about inventing with a principle, right? And it was
about Brett's principle. This talk, and Brett is very clear about this. This is a talk about art.
He says time and time again, this visual art has always been made with direct manipulation,
citation needed. He says something about great art at the end. Great art has always been created
by thinking visually. He says that this kind of responsiveness that he has in his fish art
is something we have never had before. We've never had it. We've never had it
in a visual art medium before. Now, I just want you to, and a listener, to think about this.
Do you think that's right? Right, because I made a list, and I say, I'm not really an artist,
but my partner Flora, she's an animator. She's a frame-by-frame animator.
She's done art degree stuff.
Well, she's done an art degree and a foundation degree.
And I know you've done some arty stuff too, Ivan, right?
And we went through a list of things that there's some visual arts
that have been made for a long time that do not involve direct manipulation,
like printmaking.
You directly
manipulate something, but the resultant artwork is very different. Glazing in pottery, you're
guessing what will happen to this chemical that you put over your pottery. Frame-by-frame animation,
you don't directly manipulate a character's movement or motion. That's something that you
learn to get good at predicting and
extrapolating. Just any loose, unpredictable media, mixed media, setting up some fruit in a bowl and
letting it decay and calling it an art piece, that's not direct manipulation. Photography,
cooking, fine dining, composing music, writing great literature, costume design, choreography.
I think Brett Victor is talking about like a subset of art. So I just want to be clear that this is not about all art.
Yeah, I think so.
The two things.
One, the term direct manipulation.
A lot of people are using the term direct manipulation these days.
And a lot of people.
I try to avoid that term term at least right now in
this moment i'm gonna say that i try to avoid that term i don't know that that's true but um
i think it's a loaded term i think it's tricky because for a long time people said the mouse
was a direct manipulation interface that you're like putting the cursor on things and directly
manipulating them they say oh the
touch screen is an even more direct manipulation interface because you're putting your finger right
on it and they say oh you know the the new vision pro where you look at the thing and pinch your
fingers together is not as direct manipulation because you know you're using your eyes as an
output device or what so this this term is like hotly debated and i think it's largely a
useless term because it implies a kind of binary like oh this is or is not a direct manipulation
and i think that that's not effective i think that there's lots of dimensionality to the way
that you interact with something and just saying is it or is it not direct is a kind of a hard way to look at it. It's a limiting way that there's richer and more interesting ways we can look at it. For example, how do the context of art, like a wonderful thing to do because then you can say, ah, what if I just change the way that that thing is allowed to respond to me?
I still express my intent in the same I think, 60s, where the idea was the audience and the performers would be in the room together like a traditional live musical performance.
But there'd be a screen put between them so that the audience could not see what the performers were doing. thing to do because it's coming in the context of recorded music where more and more the performance
of the music and the audience listening to the music are separated by this you know intermediating
technology that lets them time shift the performance happens before and the listening
happens after and so akusmatic music is like let's recreate that experience of being detached in some way from the creation of the music, but it's still happening in real time.
So you've changed one of the dimensions while leaving one of the other dimensions unchanged.
And there's lots of those kinds of things that birth different art movements. fascinating to me about this talk and about i think the point that brett is trying to or one
of the points that he's trying to make is that the computer is a is a new medium in that it is
sitting in this sort of in between space between being like a live animate entity like a person
who can hear what you say or see what you do and react and an inanimate
you know inert entity like a rock or maybe something that is animate but not in a way that
we can have a conversation with like a tree or maybe an animal there's a there's a new spot
in that space that the computer occupies and because it occupies this new spot in that space that the computer occupies.
And because it occupies this new spot in the space of ways that you can express yourself to it and ways that it can express explore them and that there's wonderful things that are
going to happen as we do so that we shouldn't just see the computer as an opportunity to
upgrade existing art forms like oh now we can distribute film more effectively or the film
making technology can be um you know, what's the term for it?
I got you, fam.
The term you're looking for, democratized.
Anybody can be, you know, a musician, recording artist.
Now you don't need access to a studio.
Anybody can be a filmmaker.
You know, the tools of creation are now more widely distributed
and there's less gatekeeping around what were formerly much harder art forms to get into if you didn't have access to those means and brett actually
he specifies what requires well what the requirement is for something to be considered
native computer art right he says they i think referring to like computer art creations.
Check me on that.
They have to behave and respond in order for it to be native art. Right. So he's saying that this fish example, it has to behave and respond.
And he talks about two different ways that it can happen.
One is through this like manipulation, direct manipulation. And the other one is through um this like manipulation direct manipulation and the
other way is through simulation basically you being able to guide something directly and also
something being able to i guess behave by itself right and that's what he states is the deciding
factor of whether something is native to computer art and I would disagree with that because I think that is one
advantage that you can get out of a computer but I can think of many others like simply just
drawing on a virtual whiteboard being able to move what I've just drawn to somewhere else
like I would say that that's not what Brett's talking about. I would say being able to undo something,
being able to redo something,
that's even less what Brett's talking about.
But I would still say that they're only possible
on a computer currently compared to other things.
I'm sure you can think of loads of ways as well.
So I think that's one thing that I just can't of loads of ways as well so i think that's that's like one thing that i just
can't get out of my head when i'm watching this talk um the other thing is i would just ask why
right like why do you want to fully use the medium of computers when you're using computers
just think about it you're You're making something creative.
Let's say you've got a box of paints out, right? And it's got like red, green, blue, etc.
Why do you need to fully use that box of paints for your artwork? In fact, it's a common thing
for people who are starting out in art. You find that you you think you have to do more whereas actually a big part of it is actually cutting back and only using the bits
of expression that that medium allows you to do that you want right so with this paint box say
you've used all the paints and then you're like no no no i could get more out i'm gonna i'm gonna
crush the metal of this paint box and i'm gonna stick it on top of my painting and now it's
native to this painting okay that's silly silly example but like why do you want to fully use
and so of course there are many benefits right to use it making the most of your medium but I think
it's wrong to say that you have to do that it just might be the benefits that you might want. And it's clear that
Brett Victor loves puppets, right? Like I love puppets, right? He loves being able to puppeteer
a fish, right? And I'm all for it. But I think it would be wrong to say that this is what all
computer art has to go towards. If you sat down with him and asked him,
I bet he would say that what he shows in this talk is not what he is getting at in a very specific way.
That what he shows in this talk is in the context
of a live presentation in front of a group of people
that's being recorded as a video
so that people can watch that video.
He is inherently making something that is indistinguishable from the audience perspective
when compared to pre-computer media, right? He's making a little animation. He could have
hand keyframed all that stuff. He could have built that, you know, frame by frame drawing it.
There's traditional ways to make the work product
that he ends up showing and it's interesting that he happens to do it as a live performance
but that's incidental that's not the point and i don't think that's something that he would have
claimed i don't think he would have claimed like yeah there's something fundamentally different about this thing that i
made what he tries to do though is encourage people to look at the computer and see that
there are these new affordances there's this simulation there's this interaction this you know
you can get an immediate response out of the thing or you can get the computer to do a whole bunch of work for you. And those things
would let you have an experience with something that's kind of like the experience
Brett himself is having when he plays with these quote unquoteunquote live fish and you can go a step further and say you know building those
interactive or simulated systems and sharing those interactive simulated systems with other people
that's a kind of a new thing right like you don't have to use it to make a video that other people
watch you can just give somebody the system and let them play with it and they can have an interactive experience and that's kind of new. to encode ideas that can't be encoded in perfectly repeatable sequential time-based media like
traditional animation or recorded music. Like there's ideas that are uniquely well-suited to
being expressed through recorded music or ideas that are uniquely well-suited to being expressed
through film. There's probably a category of ideas that are uniquely well suited to being expressed
through interaction and through simulation. And that if all we ever do with computers is try to
emulate previous forms of media in a, you know, slightly new context, we're not going to get to
engage meaningfully with this new idea space that has opened up with this new way of communicating
these ideas to people i think that's the the point he's trying to make even if he does it in a kind
of an inelegant way with this puppet show yeah no i i agree with like what what you're saying
you know that different different media are good for different things or you might reach for
different approaches when you're making different things like i do this all the time with my stupid videos like when i have this
this little bird flying around crossing stuff out that's me puppeteering it with my mouse
like that's very similar to this dead fish demo that brett does but there are other times
where it's completely frame by frame animation and there are some times where it's
tweened through like a hand-drawn um tween and there are some times where it's just i don't know
some weird vfx done in after effects or something like that so yeah there there are different reasons
to use these different things but i just worry that that that, I don't think, I don't think
that's what I get from this talk. Like what I get from this talk is he wants you to feel dissatisfied
with certain types of computer art. And he says this, he says, the main thing, now I quote,
the main thing I want you to get out of this talk is dissatisfaction. And then he continues,
and I find this quote hilarious right he says to your face
he says everything you draw is flat and static and lifeless and it's just so insulting you know
like like i don't know i don't know maybe that's just your taste man man. Maybe it's... I find this really fascinating because, like, okay, so I'll also quote here.
I believe that behavior and responsiveness is the essence of the computer as an art medium.
And what that means is that any time we create art that doesn't have behavior, we're not living up to the potential of the medium.
It's not native art but lou yeah
your whole thing is making making computer art that has behavior yeah sand is about making
computer art that isn't static yeah that has behavior and like cell pond is about letting
people explore the behavior of these systems so i
find it so interesting to hear you being so against this message when like all of the things i see you
making it's exploring that behavior a roost is exploring those behaviors like it's all encoding
this behavior and letting people play with it so it is you see, like, I'm just curious, you know,
you're kind of against some of what Brett's saying here.
Do you see it as kind of like this gatekeeping
or like, is that what you're reacting to?
Or, yeah, I'm just curious.
Yeah, okay, I think there is an element of gatekeeping here,
you know, saying that if you've made some computer art and it doesn't satisfy these criteria,
then why did you make it? You know, it's not native art. And I think there are many reasons,
like a lot of the work I've done is, I guess, poking fun at this sort of thing as well. You
know, like, why did you bother making this when it's not X, Y, or Z?
Like, it's not new, it's not novel, it's not native. It's really fun to play with these sorts
of things, but it doesn't mean that they're the only things. Like, I put out this content
basically in the form of something completely uninteractable, a video, you know, at the end
of the day. And like I say, I love puppets.
You know, have you seen this guy?
Have you seen this, what's he called?
Ivan, you know.
Barnaby Dixon?
Barnaby Dixon.
Barnaby Dixon.
And I first came to know Barnaby Dixon
because the person that ran our local pub quiz said,
oh yeah, I do some puppet shows with my friend called Barnaby.
And we looked him up
and it's insane. He makes these extremely intricate mechanical machines that have
aspects of direct manipulation and simulation, you know, with the way they're constructed.
And it doesn't use a computer at all. So I really question this idea that those are the things that make something
computer computer native because i know that you don't need a computer for them i i look at like
what is the computer native thing because i don't think i don't think it's what brett fechter says
yeah so i've got i've got a really good one on this so so there's this question of like what's the native form of art to a particular technological medium?
And how can you claim that something is native to some technological medium when you could like – you could still do that same thing without that new technology right like recorded music enabled a whole bunch of new kinds of music to
be created you could still make that music without recorded you know without recording technology
like there's ways to do a lot of the new things without the new technology that enabled those new
things to be discovered but there's a there's an importance here where like a large
enough difference in degree starts to feel and look more like a difference in kind and so for
the computer like i'll give an example of a piece that i'm working on right now i'm working on a new
i'm calling it a metronome uh spoiler it's not actually a metronome um but what it lets me do is it's a it's like what a metronome
does where it's just gonna like make a a sort of a rhythmic sound at a certain interval but i'm
gonna do a bunch of weird things with those rhythms and with those intervals not because
it's going to be a piece of music on its own but because it's going to let me play music along with that metronome in a way that I'm
not currently physically able to play music. Like there's music that I want to make that I
intellectually know is possible that I don't have the physical ability to play. And most people,
and I've been looking for examples of this for many years – but most people don't have the physical ability to play this music unaugmented.
And I'm going to write a computer program that if I put a certain kind of rhythm in my ear, it's going to let me play this music.
So the computer is going to enable me to do this thing that I physically have the capacity to do but I don't in my brain have the ability to do.
And I'm going to change what's going on in my brain
with the aid of a computer in order to do this.
And that like does not require the computer.
If I were just like superhumanly good at stuff in my brain,
I could just play this music unaugmented.
I could also physically build a
metronome out of gears and wood and springs that would make these rhythms exist in a way that I
could listen to them and play music along with them and arrive at this artistic goal that I have.
But what the computer does, the difference in degree that it has that is so great that makes it a difference in kind
is that it is way more malleable and way more readily malleable and easily malleable than
physical materials like to build this kind of a metronome out of wood and springs and
physical materials would not just require mastery over woodworking and mechanical engineering but it would require
probably years worth of of concerted effort like if you look at you know winter gardens marble
machine music contraption that has gone viral over and over again like building something like
that takes a tremendous amount of effort but coding something like that is like an afternoon project, right? much more pliable in a way that allows you to explore all of these sort of,
you know,
explore the possibility space of certain kinds of artistic expression.
So that like that,
those,
you know,
Barnaby Dixon's puppets are a great example,
right?
I think it is not just easier because I'm a,
you know,
relatively capable programmer,
but I think it's, it's easier it's easier just as a fact of physicality versus the intangible thought stuff in the computer.
I know Jimmy loves it when I say thought stuff.
That like building Brett Victor style digital puppets that react to you in a playful way with a little bit of simulation interaction
is way easier than building a barnaby dixon style puppet entirely separate from how you then go on
to play with that puppet and emote through it and use it just the construction of the thing
is harder in the physical world than it is in the digital world. I guess like when hearing that,
it makes me think, well, maybe it's the malleability more, you know, that you talk
about it's easier because it's more malleable. Like you can change things, you can bend things
more, right? You can undo what you've done, you can tweak. So me that's that's something that i would want to like
investigate more maybe the thing that makes computer art native to computers is the fact
that you can have have behavior and response or maybe it's something else maybe it's like
malleability but i'm not i'm not sold personally on the one that Brett Victor puts forwards. I think Brett's intended audience for this talk was not artists.
Yeah, certainly.
I think his intended audience was people who make tools for artists.
Yes.
Welcome to the future of arting.
Well, no, wait a minute, wait a minute.
There's a lot of people in our community in our programming ass community who make tools for artists that's not an uncommon
occurrence yeah and so i think this you know we could we could have debates on like whether
behavior is the essence of computer art or or any of that i you know he makes statements like that i
think that you could defend it.
You could disagree with it.
But I think when he talks about being dissatisfied with these tools, it's not because you shouldn't be happy
that you made some art that's a drawing.
It's that the people who are building these tools for you
stopped you from being able to create some things
that you, with your skills as an artist
you would have been able to make maybe you chose not to maybe that's not what you're trying to
express right now but the thing holding you back is not the medium of the computer it's the people
who built the tools in that medium for you and so it would be the same way as if you were a painter
and all you ever got was a big, thick brush.
Like that's all, all brush makers
are just making big, huge, thick brushes
and you can never get that fine detail.
And of course you could.
You can go and sit and take the big, thick brush
and really painstakingly make that sort of thing.
But it's not the way you would want to express these ideas.
You want brush makers who are making these fine-tipped, nice brushes
so you can really do this well.
And so I think this is what Brett is getting at,
is that this dissatisfaction with our tools is the fact that
there's all sorts of creations we could have made with the computer. There's all sorts of these behavioral things we could have
made and no one's building the tools in a way that lets us express that directly. Instead,
they make us express that through textual media like code instead of something that might be a
little bit more in the medium
that we're used to of a geometric expression.
And that's why he kind of shows the system.
And I think this is really interesting because like what he did,
if you ignore the art angle for a second,
because I don't have,
I don't have a lot of art that I'm making.
So I found it more interesting from like the thing is what he's done is he's kind of
made a small talk like system, but where the code are these geometric constructions, right? He talks
about, oh, this is self for historical reasons. He refers to the object to sell for this or one
of the two, I can't remember which one. But anyways, it's this little small talk system
with these methods and all of these different things.
And what he's showing is that there's this other way of doing programming, of having behavior in a system that doesn't rely on textualness. if they want to create these behaviors have to go to code is not a failing of the artist
or the fact that they create these non-behavioral objects is not that that's their bad art it's that
no one's given them the tools to create this if they wanted to yeah no i i i'm i'm with you there
i'm with you and and for the record i give this talk three stars out of three for code
for technology is three out of three and um and and also three out of three for like the talk and
effectiveness on the whole so with your example of you know being stuck with a thick brush i think
that's a good analogy and i and i would agree with bre Brett that you know it does sometimes feel like you know
we should be able to do more with computers right maybe we want a thin brush yeah as well to let
someone have the choice to do the kind of art that they want to do but from my perspective
currently me and Brett agree perhaps that we we only have red we only have red paint and that's
all we can paint with. You know,
with the same analogy, Brett is saying, hey, well, we could, in computer art, we could have
blue paint as well. And that's what makes computer art native. You just need blue paint.
And so I'm sitting over here saying, what the fuck about green, right? Like, it's not just blue paint that we need. So just to make it
very clear, like, me and Brett Victor both agree, we could do more with computer art.
Brett Victor says, yes, the way to do that is you need to have this one very specific thing that I
want, which is puppeteering, and geometric puppeteering, which I'm calling it. And I would say that, hang on, hang on.
That is one really helpful thing we can have, but we can have other things too.
And so when you talked about Aroost earlier,
I really, really, really didn't want Aroost to be a thing that you can directly manipulate.
The way that i wanted to
use a computer to like help you is by having more sloppiness more accidents that come about from
things being more indirect if that makes sense so like there are multiple ways of trying to make
the most out of computers it doesn't have to be dragging a fish's corpse around yeah i think the the puppeteering part of this to
me was always actually like a a red herring if you would it was brett not fully living up to his
vision in my mind because the the point that i see these things is that it's not the puppeteering
it's not the direct manipulation it's not any of that it's not the puppeteering, it's not the direct manipulation,
it's not any of that, it's the behavior.
Well, and like how you imbue the behavior.
Yes, it's...
Well, but the medium itself
is about behavior. Yes, he has
opinions on how you should make that behavior
happen. But it's
about the behavior in his mind, is that
computers are about encoding these
behaviors and being able to interact with them, explore them in some way as part of the art.
So I think of the Arctic exhibition where there's rain and you can walk around through the rain and you don't get wet.
What?
Yeah, I don't know this one.
Describe this.
No, never heard of it.
Okay, so there's a big rain room and it's gone to a bunch of different places, London, LA, etc.
And it's just like pouring down rain constantly in the room.
But you walk through it, and the rain where you are completely stops.
Oh, that's cool.
And you do not get a drop on you.
You can even like put your hand out, and like the rain does not fall on your hand um so it's these sensors and you know all of this engineering work to make
sure that like you get the experience of walking through the rain while remaining perfectly dry
yeah which i and this this is going to sound like um the podcast equivalent of a shit post but i'm
100 serious is the exact invert of what they do in video games where when it's raining in a video
game the rain is only falling around your character because to simulate rain anywhere else would be wasting
computing resources so they just put a hyper localized rain effect immediately over your
character and it follows you wherever your character goes why is that relevant because
video games we haven't yet talked at all about video games yet for this segment. I want to put a pin in that.
We have to talk about video games a little bit.
Yeah, I agree.
So this, to me, is an example of that kind of behavior that computers enable, right?
You trying to do this system, yes, it might be possible to make a rain room like that
that had no computers involved whatsoever.
But this is the kind of behavior that you should be able to do with computers.
And I think a roost is another example where like it is behavior that you're encoding in
the system.
Is it about direct manipulations about puppetry?
Nah, not about that.
But it is about putting, instilling that behavior into the art so that it becomes this living
artifact. So it's not a this living artifact so it's not
a dead fish so it's not dead music it is it reacts to its environment it reacts to the
manipulations that go on can i talk about a roost for a minute yeah all right cool so i'm gonna put
some words in your mouth lou uh-huh so i'm So I'm going to upfront disavow you, Lou, of any agreement or disagreement with what I'm about to say.
I'm about to say.
I agree.
Okay, great.
Here's the art of a roost.
Here's what the art of a roost is.
And this is important.
We'll get back to this in a minute.
So a roost, for anybody who hasn't seen it, is a tool you load it up in a web browser.
And it lets you do a bunch of things but the main thing that you can do is make these little circles that to
me look like frog eggs or that look like the little circular recording button like the record
button where it's usually red you click it and you make some sound your computer microphone is
active you make some sound and then you click it again.
And it recorded whatever little sound you made in between the times you clicked it.
So it's like for making these little tiny snippets of recording.
And you can make as many of them as you want.
And then after they've recorded something, you can click on them and it'll play back that little bit you recorded.
And so if you want to, you could make 10 of them and have each one, you know, record yourself saying an individual word. And then you can like fridge magnet poetry, like tapping them and whatever and remix the words you said. Or you could play a little note on an instrument for each one of these and make yourself a little, you know lets you play with sound. But it is not at all built with an interface that makes you have a lot of control over the sounds.
You can't really edit the sounds.
You don't get super precise timing for when the sounds start and stop.
It's kind of sloppy a little bit. And then you can string these sounds together so that if you click to activate one, it will, with some rules that you input through the system, activate other sounds in a kind of a sequence.
And so you could build little constructions that play a melody or that say a bunch of words in a certain order.
And you can play with that. And the art here, and what is interesting to this audience, the Future of Coding audience, is that Lou put some art into the very design of this thing as a system.
Like they put some creative intent into it.
There's an intentional bit of friction that they talked about a minute ago.
And I want to compare that to the design of guitars.
Guitars normally have frets on them, which are little bars that go across the string so that
when you put your finger in a certain spot, it plays a certain note. And you can go up and down
the fretboard to play different notes. And these notes are evenly spaced apart so that they match the notes you would get
if you sat down at a piano keyboard,
you know, C, D, E, F, G, et cetera.
There are other kinds of guitars
that don't have those frets.
They're called fretless guitars.
And they are like a violin or a cello
where you can put your finger anywhere
and you get exactly whatever pitch it would be
from putting your finger at a certain spot.
And that won't often line up with a specific piano note unless you're, you know, very skilled and have practiced this a lot and can put your finger in exactly the right spot.
These are two different things.
It's not like one of them is better than the other.
They're like better contextually right like a guitar is an easier instrument to play if all you care about is playing a perfect g instead of like oh it's a g but it's a
little bit too sharp because i didn't put my finger in the right spot but there's an in-between thing
that people can do where they can make guitars where the frets are spaced differently where they
don't match up with the keys of a piano keyboard, where you can put frets that are, you can have many, many more frets.
You can have 31 frets per octave
and get all these interesting in-between notes,
all these microtones and make microtonal music.
And it's a very different kind of music.
And it comes from choosing to like,
not even like create friction right because lou talked about the the
work they did on a roost as almost like intentionally creating friction or intentionally
restricting direct manipulation and i don't think that that's quite it it's like you can
have something that feels like an affordance whether that's the presence of
frets on a guitar or the absence of frets on a violin those are two different kinds of affordances
you can have something that feels like an affordance and you can like dial that up or down
or change the shape of it a little bit and each time you do that with this affordance you end up
with like a new possibility space where you can make new
kinds of expression and get new sorts of ideas out of you or get ideas from somebody else through
that interface and that is why i am such a crank about visual programming it's not that i think
it's like here's the the way that all programming ought to be.
It's like, it's really easy for us to find things to make graphical on a computer because
we have screens and we have rendering routines and we have, you know, color and animation
and all these kind of things.
And you can do anything you want with those combination of elements.
And it's going to change your relationship with the things that you make through that interface in interesting ways that are worth exploring.
And so just as Lou made a roost with some artistic goals around wanting to restrict people's ability to directly manipulate things because they had this artistic goal of encouraging scrappiness.
Normalize sharing scrappy fiddles.
That mantra.
And it has the second order effect of like it's an artistic tool, right?
A roost is an art project that is itself a tool that other people use to make art. For instance, Lou used it to make music
that then went into a video
and it's like many levels of snakes
eating other snakes, eating other snakes.
You can do that with your programming tools as well.
You can use a crappy React app
to make a little coding sandbox environment
that lets people build things
that they can use for something else there's no right
or wrong here and so to the extent that there's some kind of prescribed notion of like what's
native to the medium of the computer or not it's it's i think that's the wrong framing i think you
need to look at what the computer gives you and try all sorts of different ideas at different amounts of like taking advantage or
choosing not to take advantage of what the computer lets you do nice yeah yeah obviously
yeah you that's how i think about a roost is by restricting some of this direct connection
that you have to what you create like it kind of frees
you when it doesn't have your name on it you're like i didn't make that music arus made that music
right that it kind of frees you to just make it there's a blog post by shane crowley about talking
about how he got stuck on making music then he used a bit of arus and now he's back making music
again like that that's
the goal of it you know i could ivan you talked very nicely about it there's this other thing
called blank.page it's this website and it has the same sort of idea about trying to free you with
writing it makes you type invisibly if you choose that setting that's like the literal opposite
of what brett says, right?
You lose this direct connection,
but it's something you can only do on the computer.
It's actually better.
Look, I think direct manipulation is really important
and I couldn't have done a roost without it,
but there's just more, right?
There's just more.
I think the text, to me the the point that
brett victor was making the text disappearing is exactly the kind of thing he is talking about
it's behavior right right it's not about direct manipulation i think that's the problem is his
demos were him directly manipulating things but yeah if he let's imagine the demo again, but he direct manipulates.
He has just a puppet that he's doing, and then the puppet appears on the screen.
So everything he does is just by taking these physical things,
and he's moving them in the exact way that they end up appearing on the screen.
That's direct manipulation, but it's not encoding behaviors into the program. The interesting bit for him was about how the fish can do more than just what his hands are doing.
His hands are moving the fish up and down, but the fish is looking in the right place.
The fish is darting.
The fish is having these behaviors based on the environment.
And so being able to make the text disappear is a great example of a behavior that is encoded into the program.
That to me, I think, is the key here.
And I think this direct manipulation bit is not as interesting.
And I know you want to talk about games, Ivan.
I want to talk about game development.
Yeah, I think that video games are a great example of this where what you are doing is
encoding behavior that people are exploring and i think the games that i enjoy the the most at
least are kind of setting up these behaviors that you have to now either become an expert in the
behaviors you have to understand them more deeply you learn i think of like super meat boy all right
it's a very simple game very simple behaviors
but like i learned that physics system and now i can kind of feel the physics systems and it's not
that i'm directly manipulating the physics itself it's that i'm exploring those behaviors and being
put in different situations where i have to understand them and i find that very satisfying
i think this talk and all of his talks maybe would have been better served by not being delivered as a talk, but by being delivered as a system that you can play with.
Except that the key idea here is, hey, people, pay more attention to how you build systems that people can play with. And that idea is not something
that you can easily express through a system.
So he's faced with this conundrum.
I find myself faced with the same conundrum
because this is something I care very much about.
That I want to get the idea out there.
And I think he also wanted to get the idea out there
that like there are things you can do when you are making a system that people can play with,
and the choices you make when you're building such a system
are a channel through which you can express ideas.
You can express a worldview.
Like, Super Meat Boy, what it gave you, Jimmy,
is it gave you this, like, feeling for a sense of physics that is now like when you or like
celeste or any of these like very tight platforming games when you play them you get this this feeling
in your bones you get this like sense of rhythm you get this sense of space you get all these
sensations and you get this tacit knowledge or like body knowledge, but it's not for your body.
It's for like within this simulated world
from the perspective of this character in the world.
You get this whole range of ideas
that only come from interacting with the system.
Yeah, that's great if you want to make a platformer,
but you could also do that if you want to make a change
to like the way that people view economic policy or if you talk or writing a book or going around
and going door to door and shaking a lot of hands and talking to people or any of these other things
but you can also express that idea through building a system within which somebody has an
experience and that experience is what puts the idea into their person so the like that quote that
we keep coming back to the main thing I want you to get
out of this talk is dissatisfaction. We omitted it earlier, but he says, I want you to go home
and open up Photoshop and feel like you're drawing dead fish. That's a critique of the people who
made Photoshop, because they did not build a system that lets the users of that system express ideas that they couldn't express through other
forms of visual art. Photoshop is just an emulation of painting and drawing because the ideas you can
express through Photoshop are by and large the same sort of ideas you can express through painting
and drawing for better and worse. For better because the drawing skills that you have from real world drawing translate
kind of nicely into Photoshop.
And if you develop a sense of color theory or composition or whatever in Photoshop, that
can aid you if you do photography or that can aid you if you do painting or whatever.
But what they didn't do, what the Photoshop makers didn't do, what John Knoll and whoever
else didn't do, is they didn't make a system in which you're expressing
ideas that you can't express through painting or drawing what what lou didn't do with a roost
is make an environment where people can express ideas through making environments that you know
you use those environments to do whatever you want like there's another meta level where it's like what would it look like for somebody to make a tool that lou could use to make a roost where a
roost is an environment where somebody can have a different relationship with music than they
otherwise would have or a different relationship with their own creative process what would the
like next step back from lou look like what would the the the like meta medium the medium for making mediums i'm
not joking yeah the pre-loo yeah that's what i think this future of coding community is is kind
of often dancing around doing is it's like we're over here looking at you know oh make this
environment for making generative music or make this environment for building web apps or make this environment for that yeah and and the community itself is a little bit like
an environment for making environments yeah that's the the thing that i am interested in is like
what is the native form of ideas for those meta mediums i mean the thing is maybe there is none maybe maybe the environment for
making environments is not an environment maybe it's like a mindset or or a community right yeah
a culture yeah or a surrealist uh art movement no but you know that that point about photoshop
like going into photoshop and feeling dissatisfied i think that's just where i i get lost from this talk though like i just don't see that because i think you know we can i hate adobe
i hate adobe whatever but like photoshop is this incredible tool and and it ticks none of the boxes
that brett victor wants it to tick but it ticks ticks so many boxes for making the most of computers.
Right?
Like layers, like history, like blah, blah, blah, like selection.
And I just, I just, I'm just not on board.
I just can't quite go along with this.
You know what I mean?
Maybe you don't see the problem because over the last 40 years, people have made this tool so good
and have explored this paradigm so well that, yes,
it is a very effective medium for doing all of these things.
But maybe, just maybe, if people had explored different avenues
or thought differently, we could have had a future of Photoshop, future of programming,
even. I mean, it just feels to me like the kind of computer art that Brett Victor wants us to
enable is just not the same as what I want to enable. And that's, and that's okay. Like, and, and I'm, I'm completely
okay with that. I'm fine. But, but like, I just don't agree with the framing of this as being the
one thing we have to do. That's all I, that's all I disagree with. Like everything else in terms of
this being a really good way of using computers,'m fully on board with but I just don't
get this dissatisfaction from going to tools like photoshop and and again I'm I'm wondering
are we looking at this the wrong way like if we want people to be more creative and be able to
make more adventurous computer art that they wouldn't make in any other media because it's impossible
or it's really hard how do we help them do we need to give them more behavior or do we need
to give them more i don't know emotional support or creative freedom obviously you know where i
sit on this yeah but like i just want that to be a consideration yeah there's the like you made the
point that um and and jimmy also made the point that there's like, this is sort of about we are technologists.
What can we as technologists do to, you know, invent the future that we want to see?
How do we make a change in the world through invention as our form of interacting with the world as opposed to social advocacy or other kinds of change?
While still very carefully walking the
line to not try and solve social issues with technology, right? There's that tension there
that we need to be cognizant of. I also think that, like, you know, we're moving on to the
future of programming, a point of which is, hey, don't be set in your ways don't just take the common practice and the status quo as the only way
that things can be or even as the best way or even as a good way it's probably a good way it's
probably got its flaws and its warts and whatever but it's probably also got its strengths and
something like photoshop is good it's great it's different but it is also not the only thing and as an example
that i think you might agree with lou like it's kind of good that the company that you know offers
photoshop also offers after effects and also offers flash with you know rip and also offers like other tools that try to do what photoshop did
in one area but either applied to a different kind of media so in the case of after effects
it's like photoshop but for time-based media instead of static images and some could argue
that those two things ought to be combined i think i would argue that they ought to be even split up
smaller than that but flash is a is a great one because it's like what if photoshop
but you can also code against it and the drawing affordances are designed to go really nicely
with the apis that you use for coding that there's meant to be this synergy between the activity of
drawing and the activity of coding.
And how that birthed a whole revolution.
We look at Super Meat Boy and all those kind of games.
Super Meat Boy was made in Flash originally, or Meat Boy was made in Flash.
Flash and the Newgrounds and E-Bombs World and all of that, that you know early indie game scene and experimental interactive
art pieces on the computer and homestar runner and all of this culture that came out of that
like came out of somebody not just trying to emulate the traditional thing but trying new
things trying different ideas trying lots and lots of things so that that like i don't think
brett says hate photoshop i think he's meaning like just don't stop at photoshop keep going
make another one make a different one make one that has these qualities of of simulation and
puppetry and whatever but don't just stop at puppetry and simulation and interaction. Do something else. Maybe he should have called this
Don't Stop At Drawing Dead Fish.
Yes, yes.
Right?
Yeah, yeah.
It's like a wise man once told me.
You take all of the metal
and you put it back in the ground.
This is an in-j in joke you don't get it because you have to inside the joke to get the
joke and today you are not inside the joke you're not inside the joke and i will not take you inside
the joke try as i write i cannot take you inside the joke if we're gonna get through
future programming we gotta transition at this point all right i'm lou now
no it's yeah okay i have less less to say about this one.
Yeah, so this talk's fun simply because Brett Victor time-traveled, which is great.
I mean, he invented time-traveling just to do this.
Three stars.
He goes back to... What year is he supposed to be in?
1968?
1973.
1973.
All right.
Yeah, yeah, you're right, because on the thing it says 1973. Yeah, yeah. So 1973. 1973. All right. Yeah, yeah. You're right because on the thing it says 1973.
Yeah, yeah.
So 1973.
And he's kind of given a – the title is kind of a joke, The Future of Programming,
because he's talking about the future that never happened, right?
Which is what I kind of take the future of coding to kind of be as well, right?
It's about the future that
could have been. It's about the counterfactuals, the way things could have gone but didn't.
That's what I think is interesting to explore here rather than what will actually be the future,
because that will probably be boring. And so he starts with 1973, and he's kind of giving us an
overview of a bunch of work that's happening in and around that time period that is going to
change programming in the future. And of course it doesn't. And he focuses on four things that
we've already been shown the way of how we can not do these things, how we could go the other way.
And he kind of makes the joke that in 40 years of course we'll never be doing these
things so one is writing programs in code two writing programs as procedures which really he
means like imperative kind of style programming as opposed to like goals or constraints where you
say what the computer what you want the computer to achieve rather than how it does it.
The third one, I'll do it because it's me,
that programs are currently written using lines of text,
but there's this remarkable new thing happening where people are hooking up video displays to computers,
which enables us to work with spatial representations.
I think they should stop that.
Yeah.
Stop drawing live programs. And then the fourth one is that programs
are currently written as sequential statements and if you look forward a little bit it seems
like hardware is increasingly moving towards a massively parallel architecture and that we're
going to need a parallel programming model to take advantage of it yeah like the t2 tile and robust first computing
and coin in the jar reading from ivan's uh description here that he sent us
and the first slide he puts ivan o brotherlands work on hestpad what pad what nice job jimmy delivering my joke three stars perfectly done wait i don't get it i don't
get it there's somebody named ivan sutherland who made a thing called sketch pad oh oh that's
that's really funny and so the joke was gonna be, brother lens, because then you go, oh, brother, Ivan.
Yeah, that's why I... Test pad, really?
The joke was so bad that I had to ruin it.
Thanks.
Couldn't let Ivan have his fun.
Oh, because you normally do.
Uh-huh.
I let Ivan have so much fun on this podcast.
Yeah, well, I get to censor you.
So even if you let that one slip without meaning to do it, I let Ivan have so much fun on this podcast. Well, I get to censor you.
So even if you let that one slip without meaning to do it,
I'm still going to claim my token.
So, I mean, this whole thing is a survey of papers,
some of which I'm sure we'll cover.
I'm sure we'll talk about Sketchpad at some point.
I plan on talking about Planner.
There's a bunch of papers here that are talking about all these different ways of programming.
You know, mentioned a small talk. Okay, wait a minute.
What?
No.
What?
This is not a survey of papers.
What?
This is a survey of important works.
Papers out of the room.
We don't care about papers.
He's not presenting papers.
He's presenting these works.
He literally puts papers up on the-
No, he's using an overhead projector because it's
a period specific joke and he shows papers he shows scans from the documentations of these
projects because he's like he's cosplaying it's not a dirty word ivan you're allowed to have
papers no because the there's an important distinction here which is that we're not
interested in talking about these works as though they are
like historical artifacts that are documented for us to reflect on it's like uh we need to treat
yeah we shouldn't learn from them what we need to treat these things as if they are real things that
are going to be the direction that things go like the things that we would be talking about post hoc looking back as papers are
like fortran and c and okay yeah let me rephrase yeah he talks about works yes that have recently
been done yes that are like here's the promising future direction we're going to go we're going to
actually be using sketchpad like systems but better and some of these works
have been cataloged in the form of papers that we will probably talk about at some point got him
in more detail like sketchpad's invention of chickens and hens as their data structures
very key technical insight that we still use today it's funny that just to get under my skin
you're sacrificing the quality and enjoyability of the podcast as a thing that we're putting out
in the world jimmy doesn't care about podcasts and neither do i the experience of the dozens
of listeners to this sacrifice just so that you can you can get a little bit more of a dig in on me
uh-huh you you had to dig up my papers so good reason i i want to just say like i think i i think
you know we don't have enough time to dive into each of these works well less i we this is what
happens every time we get to in these podcasts, okay? I just got to go meta here for a second.
Ivan's like, let's make this one short.
And then every time I try to skip over sections,
Ivan's like, hold on, I have a lot in this section.
I'm like, okay, then we need to have skipped over other sections
in order to get our time constraint.
And I have a time constraint today,
so we're not going to go into each of these things.
People can watch the talk
i reckon that if if it was just me and jimmy we wouldn't have this problem i reckon we'd get it
done really quickly we'd stay on topic and then the editing would be much easier too that's why
i reckon i'm just putting it out there all right i will sit here and have no opinions and not offer anything.
And I will let the two of you take this talk that I actually don't care all that much about and don't have much to say on.
It's like the only thing I have to say about this talk is like, yeah, duh.
See, let's do it.
Let's go.
I think that's such a silly take.
Yeah, it is.
It's such a silly take.
Okay, the big point of this talk is not really about these four ideas.
It's summarized at the end that it would be a shame if in 40 years we're still coding in procedures and text files and sequential models, blah, blah, blah.
But the bigger problem is it would be a shame if we didn't realize there were another way.
That's the goal, is that there's other ways of programming.
If we thought we had everything figured out and we never explored new models of programming, then that would be the problem.
And really what we have to do is we have to get to this conclusion, quote, we don't know what programming is.
We don't know what computing is. We don't know what computing is.
We don't even know what a computer is.
And once you truly understand that,
once you truly believe that,
then you're free.
And you can think anything.
That's how the talk ends.
But saying like all four of these ideas
are clearly right
is just, they're clearly not.
And the fact that everyone tries
to always tackle,
like so many projects try to tackle
all four of these ideas at once.
And that's why they end up being like utter failures.
Because these things of having code, having text files, having procedures, and what's the fourth one now?
Parallelism.
Oh, parallelism oh parallelism like there's a reason we do all of these things and to just try to say
like oh clearly in 40 years we shouldn't be doing any of these things it's not as if people didn't
know about these ideas still don't know about these ideas and don't pursue them because they're
just straight boring people who won't explore cool things it's because they're really hard to to get away
from these are not just good because they've been explored they're good ideas because they have a
lot of nice properties about them and so if you're going to go away from them you have to really find
some good benefit and i don't think we have found that benefit yet in most domains for most
problems is that like is that like how you view these things and like the reason they haven't
happened is that they're too hard is that is that the reason or is that is that what
brett victor is saying i think the talk kind of gives you this idea that they just
weren't explored because people
didn't explore them, more or less.
It's not anything about the
answers themselves. They're totally
feasible. Look, we were doing them
in the 1960s and 70s
and so the only reason we're not doing
them today is lack of imagination or something.
But yeah, I think
a lot of these things, it's not that they're impossible. It's just that they're not doing them today is like lack of imagination or something right but yeah i think that i think a lot of these things it's not that they're impossible it's just that they're not
obviously better than the alternatives and that trying to make them obviously better than the
alternatives is a lot of work and it was a lot more work especially given computing hardware at
the time etc then it was to follow the path we did follow.
Yeah, like one example, the parallel processor array,
you know, that he shows.
Like, it's such an exciting slide, this.
It's just like a, instead of having one computer,
you know, connected to some one bit of memory,
you have lots of computers in a big grid,
like a T2 tile,
and they're all working together somehow.
And it's really, it's a really appealing idea.
But I've seen Dave actually struggle
over the past how many years it's been.
And it is clearly really hard.
There are really tricky things to figure out with it.
So yeah, I see that.
It's not just that people haven't tried them
have you built a system using ivan have you built a system using goals instead of procedures
yes and how was that uh it was great in the domains where it was appropriate uh-huh like
i think you made a very good point which is that you can think of this as almost like two columns
there's like you know things that we already have that we know very well so textual code that is
you know written as procedures sequentially or whatever and executed sequentially and then
there's the other column which is like oh the new experimental interesting things that point to
you know radical dimensions that we should definitely keep pursuing which is yeah absolutely you know direct manipulation of data structures
goals and constraints spatial representations and parallelism right like i i agree with your
point jimmy that it shouldn't be an either or it should be like a yes and should be like i want all
of this stuff i i want like there are some circumstances where a
sequential recipe of steps is awesome right like he even does a little joke where he references like
he's talking about the actor model as a potential way to leverage massively parallel hardware
and he makes this throwaway joke about like oh it'd be great if like a swedish telephony company
were to get really interested in this, referencing Erlang, which is
famously, you know, the actor model. Inside each of those actors, you're still executing sequential
statements, right? You're still working with a sequential thing, but it's broken up into like
millions of tiny little sequential pieces that together are massively parallel. So I don't want
to say, hey, we need to be dispensing with the old thing as we
go to the new thing i i would never sincerely make that argument and if you ever hear me
sincerely making that argument come wrap me on the knee um i also don't want to settle for hey that
those four things that he talks about are hard and so it makes sense that we don't really have them because
we do have direct manipulation of data structures in a spatial context using goals and constraints
massively parallel we have that all that those four exact things in highly effective synergy
with each other all over the place in game dev that so many parts of
game dev take those four things and put them together jimmy is shaking his head yeah well
jimmy is wrong so the ps3 put in a co-processor which was a no jimmy parallel gpu gpu a gpu is
massively parallel yeah i, I understand.
I'm making a different point.
Okay.
All right. The PS3, I'm pretty sure, was that generation.
Yeah, it had a cell processor co-developed by IBM, and it was a disaster, and it was really hard to program.
Absolute disaster, right?
Like, nobody ended up using it.
People tried.
People really wanted to use it, and there was just no good use for it.
Why? people really wanted to use that and there was just no good use for it why because trying to do
this sort of parallelism for general compute wasn't good it wasn't helpful it didn't make it
easier to build these sorts of things yes of course graphics are massively parallel because
they're and we explored that area and have done, really well at it because it is the kind of domain that it works for.
I wasn't talking about graphics.
I was talking about GPUs.
Yeah, but GPUs for the kinds of problems they solve.
Yeah.
You don't write all of your game logic in the GPU for a good reason.
Yeah, and we can get into concretely what those reasons are, but I don't think that's the interesting thing. The interesting thing here is to look at the yes and version of this that you proposed and find that there are lots of instances of problems that like uh physics in games is a great example because
for the longest time people thought oh there's no good way to do that with data parallelism so you
have to do it with sequential execution you have to do that you know with with a with a traditional
like cpu style single thread of execution mindset and then there were breakthroughs that moved it on to a GPU-like device going
massively parallel and finding great things you could do there. And then it moved back to the CPU
for reasons that are interesting to get into here. And it is moving back to the GPU again,
that as we learn more and more about these different problem domains and come up with
new algorithms and come up with new techniques and in the other categories like spatial representation direct manipulation those
move back and forth between being things where there are great artist focused tools with great
visual affordances and you use them with you know a mouse or a space mouse or a pen or whatever
and often those go back to being more effective to use through code, through writing
in that, you know, indirect representation and move back to being artistic again, when there's
another change in practice or another breakthrough in technology, these things are not fixed. They
are fluid and every new kind of way that we have of tackling these different problems or these
different dimensions of
computation, right? Because there's things in here about behavior, right? Code, execution.
There's things in here about data and data representation. There's like all of these
different dimensions along which our work with the computer is mediated. The way that we can
express ourselves keeps changing and keeps, you know, we keep finding
new ways, or at least we ought to keep finding new ways to do it. So we do, though, and that's
the opposite of what Brett Victor is saying. He's saying these are all things we didn't explore.
And if your examples are all true, we have explored them. We continue to explore them.
In what, but what you said is right. In narrow domains in specific circumstances.
There's like specific cases where we do that.
Brett's idea is that they shouldn't be confined to these specific circumstances in narrow domains.
This should be the mainstream of how we do all programming.
This should at least be available for us to move into and move out of.
I think he makes stronger statements like it would be all
of his talks make strong statements i don't i don't want to yeah yeah he says like we should
just pack up if we're still using locks yeah because he's a rhetorical person what does that
mean it means he's a he's he's a rhetorical i mean of course he's making of course he's exaggerating a little bit there but i think
the point of this talk is that these four things of course not just these four things but these
four things are examples of paths unexplored that we know how to do them that but also that
they're unimaginable to us today because of how unexplored they are.
And that the problem is we've had this kind of
hegemonic way of programming that's become the mainstream
and no one can imagine new systems.
And I guess what I'm saying is like,
this one never sat well with me
because I think all of these things, of course there's better work to do with them.
Of course we can explore them further.
But it's not that we haven't explored them.
It's not that we haven't tried.
It's not that we don't continue to try.
It's that the reason they haven't won out as mainstream programming is because they just don't work that well for mainstream programming. And they might one day, and hopefully some of them will one day,
because they would be great.
But we haven't solved these problems.
See, I find this talk interesting
because it ends with this idea that
the most dangerous thought you can have as a creative person is to think that you know what you're doing.
Like that's that's quite a statement at the end.
And it really resonates with me.
Like he's calling for people to be open minded, which is funny because like I didn't like the dead fish talk because it felt more close-minded. But like, you know, seeing this
makes me realise that no, yeah, Brett Victor is calling for people to try stuff. And maybe, yeah,
maybe the reason that these ideas haven't happened is because they were bad, or maybe it's because
they weren't explored enough. I would actually suggest we don't know, right?
Like maybe Jimmy can see these ideas for what they are,
the piece of shit that they are, right?
He said, I know that's not going to work, right?
And do you know what?
Like, I trust him.
I trust him.
He knows more than me on this stuff, that's for sure.
But like, I feel like Brett is almost inviting you.
Well, prove to me that it sucks then, Jimmy.
You know, like make one of these things and show me what.
So listen, listen, listen, listen.
I have a, when I was doing some spatial programming work, right?
When I was building Cellpond, this spatial programming tool,
I looked back into like papers from 20 something years ago,
and there was a point where they stopped investigating a certain line of inquiry,
right? They stopped looking down this symmetries route for making more expressive spatial rules,
right? It's not a very important thing, but for one reason or another, they stopped it.
And it didn't make any sense to me. I'm looking at these papers. They were so close.
Why did they stop?
And there's a really clear reason why they stopped.
It's because they came across block-based programming,
like scratch-style programming.
And then everyone stopped bothering with the spatial programming,
and they moved to that.
So that's kind of like an unsatisfying reason to stop in a way you know and and i wonder what what
are the actual reasons because you know we can come up with overarching reasons you know they
oh it's just no one was inspired enough or it didn't work out but what's the like specific
reason each one of those cases i bet that would be an interesting story in each of those cases
and i and i kind of like to know to know, go and find out someone, please.
Yeah, I do think, of course,
there are these unexplored areas
and the reasons we don't explore them
are often on a whim
or because of social factors
or because of funding got cut
or because AI winter happened
or da-da-da-da-da-da, right?
Like you can have things
that have nothing to do with AI
that get associated with AI,
Lisp, that people don't end up pursuing it.
And it's not that Lisp was bad.
It's that, you know, these confluence of factors happened.
At the same time, I can recognize Lisp was probably never going to become the dominant
thing because of the properties it has.
There's just certain things.
I mean, I think this is going back to the worse is better series of things, right? There are certain
properties that things have to that make them more successful or not. And I think all of the
technologies that of these four things that became popular here that became the mainstream have this
worse is better dimension to them and all the things that
brett wants in this talk to become the mainstream are the the right thing and i i think that
ignoring that is what i find so i i understand why for this talk this is again also why i don't
i i'm skeptical about talks for this format is because they lack the
nuance that a paper can have yeah there's so little content in a talk and i love talks but
when we're trying to get through this they just they are not made for that nuance they're made
for getting a point across for getting people to think and then we're dissecting them and they they don't hold up to
that dissection and that's pretty normal for a talk i see what you mean like i felt i kind of felt
that with the dead fish one like the criticisms i had like you were defending the position and i
could see that yeah that's probably what he was getting at but that's not what he said you know exactly you know but
yeah like maybe it's the same here there's a thing that we're all doing that i want to acknowledge
which is we are all when we're talking about like do these ideas work for programming why why are
these worse is better ideas the more conventional ones why are they so well suited and why are these worse is better ideas the more conventional ones why are they
so well suited and why are these more radical ideas less well suited and there's a thing going
on here which is that when we say programming or program or code we're thinking of a very specific
kind of activity to make a certain kind of thing to make a certain kind of artifact and
i want to just flag that like i'm i'm gonna play the you know like html is programming
photoshop is programming well maybe maybe not but on a good day i will say photoshop is programming
right now i want to do a more specific thing and And I want to say that, like, he flags Sketchpad as being programming because what Ivan Sutherland can do in Sketchpad is draw some lines and then express some relationships between those lines that the computer will maintain.
And it's now the computer's job to say these two lines need to be perpendicular.
So if I grab one of the lines and start turning it, you, computer,
have to turn the other line to maintain that perpendicularity. So that's, you know,
constraint expression. And that, I would strongly argue that that is programming,
because you've told the computer to do some work to maintain an invariant, to maintain some condition, and the computer is going to now change the behavior that it exhibits in order to do that thing that you
asked. I think that's a minimally controversial statement of what programming is. You've made
the computer now do some work for you, and it's going to keep doing that work to satisfy a
requirement that you set up. And you could have written that imperatively but you just happen to do it with a constraint
the place where we find these more radical ideas are thriving are places outside the things that we usually think of as programming like if i say game development right like where is where
jimmy you asked hey ivan have you ever worked with goals and constraints yeah of course i have
like building ik chains in maya so that when i make
my character walk their knees do the right thing right like that is in a purely artistic domain
i'm making a visual character that can move around and making it so that their knees bend the right
way and i don't have to manually do that i can just lift their foot up and the knee bends forward
and i can just animate the foot that's it was a rhetorical
question because i know you have yeah but that to me is every bit as much a programming activity
as me writing some javascript to power my website or me you know building a swift ui
you know interface or me building writing an algorithm to sort a bunch of numbers
or whatever. Like, the fact that I was in an art focus tool, making a character's knee band
does not in any way diminish the fact that I was programming.
I don't, to be honest, I don't think that was implicit in any of the things we were saying,
though.
Well, there, I just want to make sure that when we say that, oh, yeah, these ideas, these more radical ideas are only relevant in these specific circumstances, right?
What we may do or what somebody may do when they hear that, when they say, oh, yeah, in these specific circumstances, then these ideas are worthwhile.
But otherwise, it's hard to make these ideas universally useful what we're kind of doing is carving out exceptions or
carving out things that are like outside the core activity that we um unconsciously think of when we
think of programming like when we think of what is programming right like you know we think of
text editors and terminals and you know an maybe you have a browser window or something where you can see your result.
And we carve out all these other things like working in Maya or writing a shader or working in AutoCAD only because of history, right? history right at one time those things in the sort of activity that you would do to do character
animation or to build a cad drawing you would do those things with the same activity that you would
use to write a binary search or to build a an interactive system for for solving flight
trajectories or whatever right all of that was done by writing code in Fortran or COBOL
or whatever, right? It was all done through that same interface. And we made richer interfaces for
those things. And now we carve them out as an exception. And I would say that all the stuff
that we do that hasn't been carved out is just begging to be carved out and pushed out of that
core conception. I just don't think we're carving anything out.
I think what you said there is exactly right.
Like we initially didn't have good interfaces for those kinds of things.
And we had to rely on the same stuff we would do for a binary search.
And we figured out a better way of doing it.
Completely agree with you.
And I think that better way is still definitively programming.
And anyone who suggests it's not... They're not listening to this podcast. Right. Yeah. Still definitively
programming. But I think it reinforces the point. It took us a long time to figure out
that the problem itself was hard of how do you do character animation, right? And when we started,
we didn't have great answers for it. We didn't have great techniques.
And we had to rely on bad tools like text in order to code up everything because it was general purpose.
And as we understood the problem better, we were able to make these better interfaces for it.
And I think that's the pattern for all of these things is there's a reason like small talk didn't take off as like the small talk
image system didn't take off not because like small talk images are a bad idea but because
we don't understand them well enough to have a bunch to solve a bunch of problems that we could
have solved with them yeah i mean this is what like jonathan edwards is looking to his whole
research project is looking to do is understand those kinds
of things. We're missing some primitives there. Right, exactly. And it's the same thing for these
domains where we can have these better interfaces as they become domains that we understand better
in order to get them into this place. So why can we do things massively parallel in certain cases?
Because we understand the problem and the problem itself lends itself to massively parallel why can we make non-text interfaces because we figured out
good interfaces for talking about these things and we understand how to manipulate those things
in a general way etc like that's my point is not that these things aren't programming or whatever
it's that the things that we are able to make these better interfaces for, it's because we've understood them in a deeper way.
And we're able to get to that point.
And of course, it's an end goal.
But I don't think it's that we've ignored these ways of going about it.
It's just that we don't know good answers for so many of them.
That's my point, is when you are doing conventional programming when you
when you you know don't think of a pink elephant or whatever when you're like okay what is
programming in that conventional model of programming that we all just like jump to
quickly when we're not challenged to think of it with a broader sense like i see all of that stuff as just waiting to be carved out
and put into its own world with its own you know richer approach and that the the fact that we do
all of this programming in a way that like we call it general purpose i think that's a really loaded
term right like i don't think programming is general purpose i think that that is a that is
a misnomer but we call it general purpose as sort of a grab bag of saying like this is all the stuff
that we need to do in this way because there's something like essential about that stuff that
requires some generality that comes from using text and using you know
von neumann architecture and using um you know this kind of indirection and i think that that's
flawed i think that like the point of this talk that i really take to heart is if we keep exploring
and if we keep finding new things and we don't treat the status quo as a golden goose or like a sacred cow or whatever, and we aggressively try to find parts of it that we can excise and move into a new way of working, that eventually it's all going to go away.
Does this talk make you feel like you're being told off by Brett Victor?
It's like, guys, everyone, you had all this time.
You had all this time and we have everything all figured out.
I think that is – when I'm picking on this talk, like I said, I'm picking on it from a medium where we're being all picky and discussing all of these little bits.
If I just take a step back and just take the talk as a whole as it's intended to be taken instead of picking apart all the little bits it's a great talk i'm sorry brett
i'm sorry yeah like it to to channel alan k these talks are like the the only talks good enough to
be criticized like i don't i don't i'm not saying that sincerely but like k said that about the mac right the mac
is the first computer that's good enough or the first like popular computer that's good enough
to be criticized and it's like we're criticizing this not because it's bad but because it's so good
and we want more good and it's like how do we get even more good from this i think that's the thing
that i like about all brett victor talks is that even if you come away from them
thinking I completely disagree what was he talking about they're so good at making you think
you know like they they capture your attention and interest like nothing else I think about
the dead fish talk and the inventing on principle talk, like Steve Jobs introducing the iPhone, right?
There's something about them that just gets you thinking.
And look, here we are all these years later
arguing with each other about it.
And I think it's great.
I think it's great.
I will just say that, like, I think these talks are great.
I'm very happy that we talked about them.
I'm happy that they exist.
I really liked Invincing on Principle,
even if I maybe don't find the principle idea compelling anymore for myself.
I think Stop Drawing Dead Fish is a thought-provoking talk.
It wasn't my favorite.
This one I do really enjoy
but i i hate the ending i know lou said that they love the ending i hate the ending saying that you
don't know or saying that you know is now the dangerous thing i shock that i would be not happy
with this i know i know it's so out of character that I would be
unhappy with this, but I, I do think we have to come from a place of knowledge in order to make
progress on these systems. I think saying, I don't think, I think conflating knowledge saying,
oh, I know these things and conflating that with like an unwillingness to change and learn
new things.
I think we have to know in order to learn more.
And I think that's the point that we have to say is that we are explore.
If we,
if we think our exploration is done,
that's the dangerous bit.
Yeah.
I think that's what he means.
I know,
but I hate the rhetoric of it because that's what everyone says is that knowing things is bad and that you shouldn't know anything.
I hate that.
I'm sorry. I, I'm not trying to, know lou you liked it so don't i don't think but like this i think people too easily conflate open-mindedness and ignorance and i think obviously we don't want
ignorance all right we we've got to get his response on this, right? Because he did write a little response to people who made that criticism.
Okay, I did not know that.
He says, in the references for the talk on his website,
Brett Victor says,
I want to be clear.
I am not advocating ignorance.
Instead, I'm suggesting a kind of informed skepticism, a kind of humility.
Okay, then I agree with that.
Yeah. Absolutely. of informed skepticism a kind of humility okay then i agree with that yeah absolutely and that's why we will never do a non-paper again because the thing that brought us all together was some writing