Future of Coding - Compassion & Programming: Glen Chiacchieri

Episode Date: July 3, 2018

Glen Chiacchieri has worked at the MIT Media Lab on Scratch, at Dynamicland with Bret Victor, and is now becoming a psychotherapist. He's known for his Legible Mathematics essay, his Flowsheets progra...mming prototypes, and the Laser Socks game, among many other projects. In this conversation, we discuss: how he grounds his research in compassion, the tradeoffs between working on the "model vs UI" of programming, his software-company-in-the-making, based on Flowsheets, our shared dream for the future of open-source READMEs, and how Dynamicland does and does not point towards the future. The notes for this conversation can be found at futureofcoding.org/episodes/26.Support us on Patreon: https://www.patreon.com/futureofcodingSee omnystudio.com/listener for privacy information.

Transcript
Discussion (0)
Starting point is 00:00:00 Welcome to the Future of Coding. Today we have Glenn Chiaki on the podcast. Glenn has a resume that many listeners will be very familiar with. He has worked at the MIT Media Lab on Scratch and at DynamicLand with Brett Victor. He's known in these programming research circles for his legible mathematics essay, his flow sheets, programming prototypes, and the LaserSox game, among many other projects. So welcome, Glenn. Thanks, Steve. It's good to be here. Yeah, it's awesome to have you. So I like to start these conversations off by talking about your kind of origin story,
Starting point is 00:00:34 how you got into programming and specifically this subfield of improving programming. Yeah, I got very lucky. Feels important to acknowledge that first. So in college, I went to Northeastern University for a degree in what eventually became computer engineering, although I kind of made my own software engineering degree out of that. And in that program, there's a kind of co-op program where you go to work for a company for six months, then go back to classes, then go work for possibly another company, and then go back to classes. And there's usually three of those. I only did two, and I did them at the same company, which was a startup with a kind of like, it was a freight logistics startup called Open Mile. And I actually learned to program on the job there, which was the lucky part.
Starting point is 00:01:31 I was not qualified for that job, but I learned it all very quickly. And that was my first real foray into programming. And then over the years, I got more and more interested in kind of the act of programming itself. got more and more interested in kind of the act of programming itself so how i was doing this thing that i was doing and getting more and more like wait how how is this what is actually going on here why why is why am i making mistakes like what's what is all this that makes sense so what um who was who or what was like your first entry point into this way of thinking? Was it like Alan Kay or Seymour Papert or Brett Victor? Because I know, you know, you're one of the people who's interested in all of those folks. saw from him was Magic Ink, his essay on design. While I was working at that startup, someone showed it to me and my mind was blown, as tends to happen when you read or watch things by Brett
Starting point is 00:02:32 Victor. And then I got more into his work. And I think shortly after that, he came out with Inventing on Principle, which had a lot of the, I think, core tenets of what I saw or what I currently see as important in programming environments. It's interesting. You're like an OG Brett Victor fan. You're pre-inventing on principle. Oh, is that what OG is? Well, I think like a lot like Chris Granger and I was reading an article that said that John Rezig, a lot of,
Starting point is 00:03:05 a lot of the people who were really inspired by Brett Victor, I think were inspired by inventing a principle. So you predate those guys. I still think magic ink is an amazing statement. And to me it was important about how to communicate well. And I think that's kind of an underlying thing in Brett's body of work that maybe isn't totally appreciated is that he is probably one of the better communicators
Starting point is 00:03:37 using media that I've ever come across in my entire life. And so that essay for me is like, captures the very important thing about how to communicate well, and like, okay, examining, you know, what a software experience is actually trying to provide for someone, and then saying, why not just do that, like kind of directly instead of this, like like interactive thing that at the time, I think was more prevalent than it is today. There was a lot more kind of interactive, like like widgets and boxes and pops up pop ups and things like that.
Starting point is 00:04:17 But today I think some of this, his principles in that have come more into software actually. Yeah. I remember when I first looked at Magic Inc. and one of the headers of that essay is like interaction considered harmful, something to that effect. And I reacted very negatively to it. I felt like I almost wanted to stop reading the essay
Starting point is 00:04:37 because it felt like almost anti-technology. What do you mean? Like, of course interaction is a good thing. But then when you read it like oh wow like like interaction means like dialogue boxes and like clicking like a lot of clicking and nobody likes lots of clicking to your point that a lot of the principles that he talks about in that essay are um have been incorporated into mainstream interfaces is that uh he redesigned amazon's search interface and it just is such an amazing example of the power of his principles.
Starting point is 00:05:08 And I immediately after I saw that went, you know, recently to search on Amazon and see what it looks like today. And it looks so similar to the exam to like his redesigned version. So I don't know if they got it from him, but somehow his ideas have found their way into the mainstream. Yeah. And I think part of that essay is quite well received, if I recall correctly. And so I assume it kind of it actually has sort of permeated out into the people who are designing these apps now. You know, it's like it's over 10 years later at this point. But I think one thing that Brett does well in that essay is seeing underneath what the kind of core thing that a person wants to get out of using these different interfaces. So for Amazon, it wasn't like the person wasn't trying to click a link or something and see more information. They just kind of want to know, is this a good book? Or is this a good product?
Starting point is 00:06:07 And I feel like Brett kind of took that as like, here's the actual thing they're trying to do. Let's design the perfect experience for that. Or whatever perfect means. Yeah, I'm totally with you. I remember whenever I read that essay or reread it, immediately after I find myself looking at all my interfaces, like the apps to find movies,
Starting point is 00:06:29 the apps to figure out which train to take, they're all woefully inadequate. It's not helping me to do the thing I'm trying to do. And I want to redesign it in a Magic Inky kind of way. And after I read that, I started actually doing what you just described. I started making doing what you just described I I started making like all these prototypes I like remember seeing I uh later when I visited Brett and met him in person I saw that he had designed a like BART schedule which was like very Brett victory it's like on
Starting point is 00:07:00 piece of paper uh just like a static it's like oh yeah i could like design my own one of these what is the perfect like magic ink style uh bart uh subway train schedule uh like layout that i can quickly get the information that i need if i'm just like running out the door or about to run out the door yes so what'd you come up with oh well it's a little hard to describe through audio got it does it look similar because i know in magic ink or maybe it's a little hard to describe through audio. Got it. Does it look similar? Because I know in Magic Inc., or maybe it was a different essay, he has a BART scheduler thing. Oh, yeah. Yeah, that was the software. He won the Apple Design Award for that, I believe.
Starting point is 00:07:37 So did yours look similar to that, or was it kind of a different take? It was a different take. It was mostly just like, here's the schedule for the different days and here's how like a format that you could see at a glance like when the next train is coming it was just like a thing to stick on the wall not like a widget to have on your computer screen got it and it was useful i got to use it every day oh cool when cool. When I lived in California. Yeah. So, um, I know that you're also a big fan of Alan Kay, um, to the point where you've started a wiki for a lot, collecting a lot of his work. So I'd be interested to hear kind of, um, how you fell into Alan Kay's work and how he's similar
Starting point is 00:08:23 and different from Brad and what you find interesting about him? Oh yeah. There's a whole world in Alan's, I guess in Alan's mind is one way of putting it. Um, the way I got introduced to Alan's work was through Brett. Um, so my, at one point I started working with Brett Victor, um, directly in his lab, just working with him. And at that point that, that lab was started by Alan Kay. Um, that was kind of the thing before dynamic land, which wasn't extremely public. It's called CDGG the communications design group and so in the process of working with Rhett I he just recommended and I found a bunch of different links to Alan's works and I got I kind of went
Starting point is 00:09:19 down the rabbit hole so to speak like whenever I find someone who has really interesting work I kind of tend to consume it all and like kind of download that person's published work into my mind and then like start churning through it which I think is a great way to learn so at that point I started reading all of his different works which I really enjoyed because a lot for a long time I saw my role as a professional not as a person redesigning programming it more a person helping people to understand things and programming was one of those and
Starting point is 00:09:57 Alan had a lot to say both about programming about how the human mind works. And he has a lot of really good ideas and work behind software artifacts supporting human understanding. Yeah, I've heard Brett say that people always give Alan Kay credit for being this technologist who invented small talk or object-oriented programming, but that drastically undersells him. Brett says that he's one of the greatest philosophers of our time. So could you maybe give us a kernel of Alan Kane philosophical wisdom to whet our appetites?
Starting point is 00:10:41 Oh, man. That is a tremendous challenge. I'll try and give something though. I would say Alan is not maybe the best philosopher, but one of the best systems thinkers of our time. He has a really deep sense of how important it is to be systemic thinkers. And these systems are like our political system, technology systems, education systems, systems in lots of different areas. And his vision, I would say, is something like a kind of really well-informed democracy.
Starting point is 00:11:34 He views democracy, especially like the American democracy, as one of the shining examples of something that was really hard to invent. And then once we have it, it's really important to hold on to and nourish and give rise to more of these beautiful kind of democratic ideals. And specifically, he would like that to happen through education, through people learning what he calls powerful ideas. These ideas that are not obvious to someone
Starting point is 00:12:08 just kind of growing up in a natural environment. Things like scientific thinking or democracy or just kind of basic human rights. That's a really weird idea in the span of history. Most people have not experienced human rights. And so he wants to nourish those through education and having really good educational experiences, especially for children. Yeah, I think that's a, I think you did. I gave you a hard prompt to like something,
Starting point is 00:12:39 you know, give me some kernel of Alan wisdom, but I think that was a great summary. And it reminded me of something that Brett said to me when I spoke to him in January. I was talking about how great Scratch is for kids and how, because it allows them to do the things that they want to do anyways, make games and make things dance and music. It allows them to do the things they want to do anyways but learn to code at the same time and um brett's response was that i don't i don't remember it exactly but it's something to do with he referenced the shit crayons essay that um that just because kids do creative things in scratch or minecraft doesn't mean that those things are are good tools um and it doesn't mean like kids are learning some form of programming,
Starting point is 00:13:25 but it doesn't, it's not that interesting because kids would make things move and play games anyways. They'd be doing those things anyways. Instead, we want to build tools and environments for kids to do things they wouldn't
Starting point is 00:13:36 be doing anyways, such as democracy or scientific thinking, the sorts of non-human universals. He said that Alan had that, this list of like the human universal things that people do anyways, like singing and dancing. And then of non-human universals. He said that Alan had this list of the human universal things that people do anyways, like singing and dancing, and then the non-human universals, the kind of enlightenment values
Starting point is 00:13:51 that we cherish. Anyways, kind of a little rant, but I thought this could be a good transition point to talking about Scratch, which I don't think is shit crayons, but I get Brett's point there. Yeah, I think that's a subtle, maybe not exactly subtle, but it's a non-obvious point that I'm glad that Brett has, although I also don't think Scratch is shit crayons. I want to acknowledge the amazing artifact that Scratch is
Starting point is 00:14:22 and what kind of concrete human good has come out of it agreed 100 so yeah i worked on scratch um as a contractor for it was only about seven months but it was a very long seven months in a good sense like i got really um friendly with the creators of scratch and i still talk to some of them to this day and I go back and visit occasionally and I kind of just downloaded the ethos of the space and got a little bit more sense of the design values of Scratch and I started learning a little bit about the history and the backstory of how Scratch came to be, which I think is very interesting. And from like, it, to me is one of the,
Starting point is 00:15:10 one of the like, top ideals, or the kind of best examples we have so far of what a good programming environment can do, what a good programming environment is like. And I think there's a lot to learn from both how Scratch is designed and how Scratch was made in the first place. Yeah, awesome. Let's get into that. So tell us the story. How did it come to be? This is all through my understanding.
Starting point is 00:15:41 So if I get any details wrong, I'm sorry. Sorry, Scratch team. understanding so if I get any details wrong I'm sorry sorry scratch team but so it I think it starts with Alan Kay actually so Alan had produced e toys in the think in the 90s and e toys was kind of a small talk specifically for children in some ways. It was this kind of all-encompassing software system that allowed you to do very powerful things within it and do this kind of simulations and other kind of programming tasks that Alan wants to help children be able to do. And one of the main programmers from that was John Maloney. And John came over to the Scratch team,
Starting point is 00:16:37 to the Lifelong Kindergarten group at the Media Lab, I think in the early 2000s. And Mitch Resnick was also talking with Alan and they had a bunch of different retreats. So there's a lot of cross-pollination between what was kind of Alan's group and was the not yet scratch, scratch group. And it started with this kind of like, you know, Mitch Resnick and i want
Starting point is 00:17:07 to say natalie uh rusk natalie was this amazing is this amazing designer who i think is a big part of why scratch is so important um or why scratch is so good because she's she is one of the people who started the Computer Clubhouse, which is a bunch of after-school programs for teaching kids how to use or having a creative environment for kids to use, like Photoshop and play music and try all these new digital tools that are coming out. And Mitch and Natalie saw this happening in their computer clubhouses which are now kind of nationwide or even worldwide at this point and we're like kids aren't programming
Starting point is 00:17:53 like how can we get them to program and that's when they started seeing e-toys and we're like oh i think there's something here with e-toys so they kind of brought john maloney in and started making their own thing inspired by e-toys and it feels important to say natalie sat down with children every week for two years and just like watch them use different iterations of scratch until it was like kind of airtight, this like, especially the first interaction with Scratch. Fascinating. Yeah. I had heard parts of that story before,
Starting point is 00:18:33 like the retreats that the labs kind of went on together. I think I spoke briefly with Mitch Resnick a few months ago and he, he almost made it like a bit of a competition between Scratch and eToys. Like Alan was saying, I want to teach kids scientific thinking, and eToys was a bit more serious, and Scratch kind of took a more playful video game-ish approach. And then I don't really know what's going on with eToys, but it seems like Scratch has certainly won the adoption game. Yeah. It's easy to set up that kind of... That's actually a quite common dichotomy, I would say,
Starting point is 00:19:19 is that I've struggled with quite a bit, which is the kind of Scratch approach versus the eToys and trying to understand how they're similar and how they're different and kind of what values each works on. And, you know, is it a good thing that scratch is so popular? I think in most, a lot of cases for me, yes. But I also hear Brett's criticism
Starting point is 00:19:42 and I know this is Alan's criticism, that there's kind of a sense of wanting to do more or that there's more potential to do that Scratch doesn't quite hit in some way. Yeah, so I guess maybe I want to ask kind of more explicitly, in what ways do you feel like Scratch points towards the future of programming? And then what are some of the places it leaves room for improvement? Yeah. So I'll tell a brief story. One thing I've done is teach programming to high schoolers as part of what's it's called it was called mission bit this was for it was a free after-school program for public high school students in san francisco and i mentored a few classes and taught my own class and i started with scratch because i like
Starting point is 00:20:39 scratch and there's this one particular moment i remember where I kind of gave like a three minute introduction to Scratch. It was like here's kind of generally how it is. There's the screen on the left. There's these blocks on the right. You put up the blocks together to do stuff and then I just told them okay go do the introduction. It's like kind of a sidebar thing that just pops out. Just kind of go through the step by step and then once you're done we'll come back and like figure out what to do next and they all completed it within like 30 seconds to a minute or something like that but then something interesting started happening which is they all started just spontaneously messing around themselves with no direction for
Starting point is 00:21:22 me i didn't tell them to do that. I didn't even suggest it. They just started making things on their own. Like I would say, I would call it productively messing around. And to me, that's amazing. Cause I was like, I had this insight right after that, which was like, wait, if this was JavaScript or whatever other programming language or environment, it would have taken them over six weeks to get to even close to the same space. So to me, something important about Scratch is that it took what could be a six-week or two-month or some really long amount of time interaction
Starting point is 00:22:02 and smushes parts of it down to like a minute or a couple minutes. And to me, that's a really a function of its UI. Like it really pushed down whatever that beginner learn learning curve is. So what's probably the bare minimum or close to it. And so, and what, how would like, how did it accomplish this? Would you like give the credit to the like no syntax errors, the shapes? What, what gives Scratch the magic? That is something I may write an entire essay on someday.
Starting point is 00:22:40 I think there's lots of really important parts, not just in UI, but also in the community aspects of the Scratch programming experience and the emphasis on doing things that children authentically find interesting in the realm of Seymour Papert or Piaget and these people who are focused on what children find meaningful. But just from a UI perspective for the moment, I think having a toolbox of options is really important. I think having the blocks that you can just drag out and are just kind of objects instead of having this blank text screen where you can put anything and having a kind of good starting point
Starting point is 00:23:33 of like here's a character and here's things you can do with the character give it like a pretty low on ramp I would say or low floor as Mitch likes to say kind of give it like a pretty low on-ramp, I would say, or low floor, as Mitch likes to say, kind of easily accessible to beginners experience. Yep, I agree. I don't think it's paralleled. It's the best in terms of the low floor. So I think now is a good time to switch gears a little bit and talk about your time at CDG and then I guess, which turned into dynamic land.
Starting point is 00:24:14 But first I'd be curious to focus a bit on CDG because as you said, it is kind of a secret organization that now doesn't exist anymore. So I'd be curious and probably listeners too about kind of what it was like there, what kind of things you and others worked on. Yeah. So it was a lab in San Francisco from I think late 2013 to sometime in 2017. I don't know exactly when it officially ended. It was the San Francisco lab was a building in south of market Soma in San Francisco. It's this beautiful building that we found and
Starting point is 00:25:02 it housed several of these research groups of the communications design group, which was basically, in my understanding, Alan kind of rounded up all the resources to make a research lab in the style of a park back from the 60s and 70s and 80s. And so there are several groups within that. That was CDG as kind of Alan kind of head of the organization,
Starting point is 00:25:36 but not actually in power, just kind of maybe spiritual leader or something like that. And he... It was a little bit cult-like um and especially because it was very radical in the sense of all the there's there's several different groups um led by different pis there was my group that was headed by brett victor there There was John Maloney's group who worked on a kind of successor to Scratch. There was Vi Hart's group, which was working with VR. They were called Ella VR.
Starting point is 00:26:16 And there was Alex Worth's group in LA. And he was working on a lot of different kind of future programming ideas. And I think Yoshiki was another group, although he was in LA and often worked with or around Alex Worth's group. But there's these several different groups and they're pretty much autonomous, but able to communicate. Um, yeah. Cool. Um, and so what kind of stuff did you work on while you were there? Uh, so the kind of dictum was, um, Brett was really interested in taking, he did the Media Lab talk, which was, do you remember the name off the top of your head? Oh, that was such a good one.
Starting point is 00:27:12 Was that Drawing Dynamic Visualization? I don't know. No, it was Media for Thinking the Unthinkable. Yes, of course, of course. that was Brett as I view it that was kind of Brett looking at his past you know five years of work or more and saying okay what is all this stuff he just made and what is it pointing to and it was pointing to him to this kind of really new idea which is now what became dynamic land but this like really big set of ideas around what dynamic media could mean, which is not a thing on a computer screen,
Starting point is 00:27:51 which is not a thing that is kind of inheriting old ideas of how media works, like static media, like paper-based media, things like that. And so Brett established this group to try and work in this new vein of like really wild, really new radical ways of working with dynamic content, dynamic media. And the group was called the Dynamic Medium Group. We also, we didn't know what that meant. We had Brett's work as a kind of template and he had published, I don't know if you've seen this document,
Starting point is 00:28:35 a floor plan and research agenda. Yep. It's combined. Yeah. Yeah, very long horizontally. Yeah, it was this huge poster uh basically it started as a pdf and then he needed a poster because it wanted to be a poster is is how he would say it i think but yeah it's this it's this giant document trying to lay out like the these different aspects of human experience and human media and trying to
Starting point is 00:29:06 capture things about how media today did not work well and how it could work well in the future yeah it's a beautiful document i find it very inspiring yeah and that was the kind of agenda of our group is to try and figure out what that actually means or to start making examples like little steps or big steps towards whatever this dynamic future could be maybe a future that's not so isolated to rectangles that became one of the the big like selling points i think of the division which is yeah why is all the computer stuff in this rectangle it kind of makes sense but like we have this whole world to work with we have these bodies we have such keen social senses we have all this like stuff that is not
Starting point is 00:29:58 supported at all by the dynamic medium as it exists today. It's true. Flat rectangles are flat and rectangular. Right. And Brett had his essay about the future of human interaction design. Yes. Yeah, something like that. That's a good one.
Starting point is 00:30:21 Where it's like, wow, we have all these hands, and these hands are amazing. Why aren't we using them? Sometimes I think he's at his best when he's complaining about stuff or like ranting. Like his future or his learnable programming essay is also one of my favorites. When he like takes something in particular and is like, this thing is so the opposite of what I think the future is.
Starting point is 00:30:40 Yeah, I like that kind of style of, Brad has made several things that like in that i've seen in person that are like uh yes more of this and no not this and often they're the form of pictures so when it's like a bunch of people hunched over their laptops at not looking or talking with each other he goes no not this that goes like the no column and then it's like a bunch of people cooking together and all like sharing you know a common space and working together and like looking at things together and collaborating in a more human way humane way that goes in like the yes column and i've seen like several of these kinds of yes this no not this kind of format i think it's just a helpful way of having like a bunch
Starting point is 00:31:33 of deeply felt principles but no like no concrete way to express them besides no no no not that and oh yeah yeah something like that so hearing you describe kind of the agenda of this group i'm a little bit surprised because i didn't realize how uh like dynamic landy the his group at cdg was i i didn't think you guys got 3d physical reality stuff until dynamic land so it like you guys is is my new understanding more accurate that you were like building precursors to dynamic land at cdg uh i think yes and no so that is the dream and that was the vision. But a lot of, especially the early things that came out of our group and CDG in particular were things that were more in line with Brett's work
Starting point is 00:32:33 pre-2013, I would say, or 2013 and before. So those were his main set of essays and videos around future of programming and new expressive artistic things and drawing dynamic graphics and explorable explanations and things like that. Got it. And so a lot of the things that I and many of the other people did were those kinds of projects. So that's where I came out with legible mathematics. And that's when I came out with a interactive multi-representation viewing of a civil rights documentary called Eyes on the prize and those were kind of in the spirit of explorable explanation things on the screen totally but eventually we started getting
Starting point is 00:33:34 you know brett got more and more into these ideas about dynamic physical media, so media outside the screen. And he was kind of like wanting to like pull us along with him is how I think of it sometimes. Awesome. And so then we started making, it really kind of, it started gelling together when Brett came, Brett and Robert Oxhorn created the kind of precursors to Dynamic Land, which was called HyperCard in the World.
Starting point is 00:34:08 And that was a system like Real Talk, which is what powers Dynamic Land, that allowed us to hook up lots of different inputs and outputs like cameras and projectors and processors and scatter those throughout our entire lab space and then create demos or experiences that could kind of talk with each other. So you could like,
Starting point is 00:34:42 we used a lot of laser pointers at the time. So like you could laser point on one wall a thing on one wall and it could affect something in a different part of the room because it was all one operating system and that's when the dynamic land like ideas were really starting to take off cool um before we continue on that timeline and get into like the dynamic land stuff, I want to talk a bit about your legible mathematics essay, because it really is one of my top favorite essays ever of all time. It's just amazing. I put it up there with like, you know, learnable programming. It's like I in my mind there, it's like almost an extension of that essay. Um, so, um, I kind of want to first acknowledge you for it because it's so great. And then also get, yeah, yeah. Um, get a sense of, uh, like, you know, from like me wanting to produce content, that's as good as it, like, you know, I want to kind of hear about how the ideas kind of came together and how long it took to work on it
Starting point is 00:35:45 and advice you'd have for writing really amazing content like that that points towards the future of programming. Well, that's complicated now. It was not as complicated when I wrote that essay, but my ideas have shifted and evolved as I've kept kind of working on this stuff. So for me, there was a bunch of things that I kind of felt awkward about in programming that I suspected did not have to be as awkward as they felt. And legible mathematics to me was the first kind of forays into imagining in this very, like
Starting point is 00:36:25 you said, learnable programming. It's pretty much modeled off of learnable programming, the essay. Kind of foray into different ideas talked about in a lot of it easier to understand how something is working if the symbols are augmented with like a more concrete thing, I would say a more concrete representation. So like you see mathematical symbols and it's just like, that looks like a bunch of symbols. What does this mean?
Starting point is 00:37:27 But then maybe you see examples of like the step by step execution of that mathematical formula and it's like, oh, okay. That's probably a little easier to understand because you can kind of go back and forth between the symbols and the concrete representation. And I ran into this many times, both while programming and in math class itself, where I was like, this feels weird. Those symbols could mean anything.
Starting point is 00:37:58 They mean a very specific thing often, but I don't really have a good sense of just coming into that, what that is, what it's actually doing, or what it actually means. So basically I brainstormed a bunch of ideas which most most of which went into legible mathematics about different ways of representing arithmetic such that you actually see what the data is instead of just having like the arithmetic um and i kind of got into the like you know what can we get just from looking like how can we design a mathematical expression so that just by looking at it we can get a whole bunch of understanding of how the structure of this thing is working so that that was really directly inspired by not just learnable
Starting point is 00:38:45 programming but also um magic ink of course yes to me a lot of what magic ink is just about you know the eye is so much faster than the kind of logical um thoughtful brain totally so being able to like put the put the kind of understanding in the representation itself i thought was very powerful and then once you had that there's a bunch of interactive things that one could do too put the kind of understanding in the representation itself, I thought was very powerful. And then once you have that, there's a bunch of interactive things that one could do too, like what if scenarios or seeing inside what the each sub part of the equation. And so that was just, to me,
Starting point is 00:39:18 that was a kind of early exploration of those different ideas, many of which I'm still kind of hammering on today. Yeah, and I want to get to that in a second, but I just want to acknowledge that I think you do a really good job in that essay of exemplifying the thing we talked about earlier in this conversation from Brett Victor's Magic Inc., the interaction considered harmful. You show like you have one visualization where you can expand a term to see how sub-expressions are evaluated. So that's kind of like an interaction based approach,
Starting point is 00:39:49 but then you show like another way to view sub-expression evaluation is just in line right underneath in the kind of a smaller subtle view. It's kind of hard to describe over audio, but I think you do a really wonderful job of applying Brett's principle that like eyes are very fast and efficient. You don't need to like add any interaction to make it better.
Starting point is 00:40:15 It's actually better if you do away with that. Yeah. And maybe instead of better, I would modify that to be like it has certain advantages depending on what you're trying to do of course yeah um so i guess one question uh is uh about legible mathematics is like how much of it do you see as being about the like drag and dropy nature of of it as opposed like versus like
Starting point is 00:40:43 textual syntax or or is it like you're really not about that at of it as opposed to like, versus like textual syntax or, or is it like, you're really not about that at all. It's more about like, what, what do these symbols mean? Definitely the second part. What do the symbols mean? Yeah. The, to me, the, I sometimes get confused. I thought it was about both. Yeah. For me, it's a lot more about the, the kind of understanding of what the symbols are doing and that that has been a theme that has followed me throughout my programming work which is
Starting point is 00:41:14 it feels kind of unreasonable to me on a deep level that there's you know these symbols are doing something and it's totally understandable what they're doing but we don't really get any help from the programming environment trying to like help us tease out like know exactly what he's doing or giving some some feedback especially in real time because it's you know quite often I have the experience programming where something happened, you know, 10 lines past where a bug has happened, but don't realize it for a long time. And then I have to go back and like I lose all the context.
Starting point is 00:41:56 And a lot of these bugs could have just been caught immediately instead of having to wait a long time to do it, to catch it. I guess just to play a devil's advocate, I was recently rereading No Silver Bullet by Fred Brooks, which is a great pastime for people like us to reread Fred Brooks. And he argues that software is inherently unvisualizable because it's so abstract and, um, sure you could take simple symbols and show concrete values that they represent. But once you get complicated data structures and abstract data structures, uh, it's hard to
Starting point is 00:42:36 pull this trick. Uh, so how would you answer, like, how would you respond to that? I think that saying software is inherently unvisualizable is a kind of self-fulfilling prophecy, where it may in fact be that lots of software or parts of software, especially in programming system, have alternate representations, which give us better information about how a system works than the very symbolic word-based or string-based or graph-based, maybe is another way of saying that, complexity of software systems.
Starting point is 00:43:39 And I think it's partly true that software systems are just enormously complex, especially big ones like many, like Microsoft Word is probably like, what, 20 million lines at this point? Like some huge number of just straight lines of code that, as Alan likes to say, if anyone tried to read all of that code,
Starting point is 00:44:08 it would take them a lifetime. Like, no one can actually read that many lines of code, which, if not one person can keep a thing in their head, you know, there might be some problems there. Or maybe not just one person keeping their head but like it's just a huge huge huge amount of information um and trying to cut back on that complexity i think is a really important task and one way we have doing that is by working with representations and representations that give us certain information
Starting point is 00:44:45 that might help us understand something in an easier or more complex way. So you're saying that if we had better representations, they'd lend themselves better toward to visualization i would say i would say it's a research project that i think is quite interesting and quite worth doing to try and to make software systems less complex or easier to hold in the human mind maybe it's another way of saying that i think representations are going to be the big one that helps us do that. And those could be visualizations, but I don't exactly mean visualizations.
Starting point is 00:45:33 Like text is a visualization, for example, or representation. But code is a particularly not great representation in a lot of ways, especially for human understanding. Like a lot of programming languages were designed for kind of the machine first to run and the human to understand second. And a lot of what my work is feels like it's about is kind of trying to do the opposite. Starting with, okay, what is a good human way of understanding this stuff?
Starting point is 00:46:08 And then let's try and make a programming system out of that. Is that possible? It may not be. So in like the Brett Victor, inventing a principle sense, how I kind of want to give you an opportunity to like rephrase your principle. It. Because it sounds like that's kind of what
Starting point is 00:46:28 you're saying. Something in what you just said is your principle. Or maybe I'm putting words in your mouth. Oh, I see kind of what you're saying. Let me think about that for one second. I'm actually not super principled about this. I would say that my heart breaks when people aren't given the potential or when people's potential is shut down. And I see that happen a lot with programming in particular because of bad environments, bad design decisions, bad languages, things that aren't meant for humans
Starting point is 00:47:14 or not like, you know, make it easy for humans who don't already understand programming or already have a super logical mind to kind of wrap their minds around so for me it's a lot more about the compassion of not wanting to see people suffer like that not wanting to like close people down to programming just because you know they need to install some python environment and then somehow that doesn't work and you know beginnings are so fragile and so wanting to like really kind of hold that kind of getting the sense of like a baby bird like really like hold and cherish and like
Starting point is 00:48:01 give like the most possible support to um that is more where i'm coming from rather than a principled approach yeah i i could see that i have a clearer picture it almost uh to me like the uh installing of. And there was another phrase you used, something about like, like having to know programming or having to like deal with random programming artifacts. To me, like the phrase that encompasses a lot of those things is incidental complexity or like machine complexity versus like the things humans care about. So I like the way you kind of put this common phrase of incidental complexity in terms of very like human compassion and like nurturing yeah i don't i don't know yeah for me that's the most important thing it's compassion and like all the kind of creativity kind of runs from there.
Starting point is 00:49:06 Because otherwise, you know, how am I going to know what I'm working on? Like for me, I struggled a lot with how do I figure out what is a good thing to work on? And if I just come back to compassion and like really what do I want for human beings? Then I have a kind of a huge amount of energy to work towards human benefit. If I just kind of, if I just connect with that compassion. Cool. I feel like this is an interesting transition point to talk about flow sheets, because I vaguely remember you talking about some problems that you were working on or saw others working on, and you thought that you could build a better tool to allow people to work on those sorts of problems and that's kind of how flow sheets came about um in particular i remember you mentioned that it was like watching jonathan bloom programming that got you inspired to do flow sheets um i know that your obsession with watching jonathan bloom program is also like an interesting interesting thing to talk about so i thought it's not there oh jonathan blow Blow. Yeah. Blow, sorry. Yeah, so FlowSheets, I worked on it quite a bit at CDG.
Starting point is 00:50:29 That was another one of the projects. And I made a couple different prototypes. The first one was in collaboration with Alex Worth, most notably, who helped build a lot of the first thing. And more or less, this was me understanding that I had a bunch of different kinds of similar programming tasks that were a lot about data manipulation that felt really not easy for me to do in Python,
Starting point is 00:51:06 which is the language I use quite a bit, or JavaScript, or something like that. And I imagined it would be a lot simpler if I just kind of got direct feedback, like I type a line and then do a thing, and it does a thing, and I see if it works, and then if it does work, I can go on to the next thing, otherwise I've got to modify the next thing. Otherwise, I got to modify
Starting point is 00:51:25 the thing I just wrote. Or I can like try things out. Like I could just imagine doing those kinds of tasks in a much more fluid way. And I took a bunch, like a pile of these programs that I had already written in Python, and redesign them in mockups at first, and then in a separate programming environment to see what it would be like if, you know, what it would look like and what it would be like to program if I was always looking at data as I programmed. And I never actually didn't have the option of not looking at data. Like I always had to be looking at concrete, something did something, rather than normal programs which are tend to be very abstract, or can be very abstract.
Starting point is 00:52:13 And that's where flow sheets came from. And I made the first prototype at CDG and the second prototype later when I left in I think late 2016 or early 2017 I think is when I made flowsheets version 2 and actually I would like to say one thing before I get to the Johnson Blow thing which is one important part felt like I really over-designed the first system. You know, Fred Brooks has like the second system effect. I would say actually I did that the opposite way, where I really over-designed the first one.
Starting point is 00:52:59 It was like imagining how every little thing was going to work. And then in the second prototype, I was like, you know what? I couldn't actually make any programs. It wasn't fun to make programs in that environment. What would it be like if I just threw away a bunch of my ideas that I thought I cared about and just tried to see what is it like to program with data?
Starting point is 00:53:21 Even if I have to type in little bits of Python, that's fine. Just I want to see what it's like to have data and it turns out it feels really good especially when you're doing like uh kind of data oriented like data transformation tasks and i made like a couple dozen programs in flowsheets version 2 and it feels great it's become my preferred programming environment to this point so So if I have a task that's very data transfer me, then I prefer to use that because I can see what's going on. It's like very, very clear. Yeah, and that's it's quite a claim. I'll just put that out there. But I will also put out there that it's a very easy claim to believe in it once you watch the FlowSheets video.
Starting point is 00:54:06 So if anyone out there who's listening to this hasn't already seen the FlowSheets videos, I highly recommend it. And you will believe Glenn's claim that it is a preferred programming environment for data-intensive tasks. I endorse it. Thanks. I don't actually have a claim about other people wanting to use this environment. I just have my very pure claim is that I really like using it.
Starting point is 00:54:33 Yeah. What I'm trying to say is that I don't believe you're deluding yourself and you just like something because you made it. I think that most people will. It would be a preferred environment for most people. Yeah. Or at least for me, I can say that. Yeah.
Starting point is 00:54:47 It feels good to use. And the like getting direct feedback on the data as you create the program, it, it feels kind of like a no brainer at this point to me. This is like, Oh yeah, of course we need something like this. This feels really good.
Starting point is 00:55:03 Like why would you not have this? Yep. Instead of like a lot of times I have to like guess what my program is going to do. And then it's like hard to get the information if it doesn't do what I expected to do. It's even hard to tell if it did do the thing I expected to do. So just getting the direct feedback, it feels great. And I think there's a lot of potential there too. I'm actually starting a software business based on flow sheets version two, which tries to make a more, I'll say consumer ready, consumer ready, like more accessible. So you're not having to type in Python, for example, but you could do more like drag and drop kind of things oh interesting um i feel i like not not uh like you know i'm sure you know this better than i do but i i liked flush's version two you type in python for the
Starting point is 00:55:54 reasons that you said you know like you can still do a lot kind of like in excel you type the equal sign you type your little formula you know like you don't need it doesn't need to be much more polished than that yeah the one of the big problems or the maybe parts that are incomplete is that um a lot of times you want to like have the program affect something in the world like make a network request or write a file to a disk or save some kind of thing. There's a lot of things that you'd want to do or run on a server every five minutes, things like that. And FlowSheets was not capable,
Starting point is 00:56:39 or the prototype I made was not capable of doing any of those things. There are probably ways to do that, but I didn't develop the prototype to that point. Got it. Well, so that's actually something that leads me to something that I've been working on for a while. So I wanted to get your thoughts on it because it's very related to flow sheets. So flow sheets makes a lot of sense for like one-way data transformations. You like import, like in your examples, you import a dictionary, you filter out some words and you map some words that all works beautifully. And that's a lot of what programmers do. That makes sense.
Starting point is 00:57:15 But there are some things that programmers do like reactive systems where they're like cycles, you know, data is update, like shows you some view and then people interact with the view and it updates some data that interaction thing, but vector doesn't like so much always. Uh, so, or, or just like network requests, like there are things that are more real timey that, that aren't like one way mapping. So, um, yeah. Do you have thoughts on how you would keep the concreteness with things that are kind of flow through time. Yeah. I think this gets back to me for the Jonathan Blow video.
Starting point is 00:57:53 So Jonathan Blow is the programmer who made Braid and The Witness, these two amazing games. And he's also the designer of the games. He sometimes does programming streams, and he shows him making the game engine for his games. I got very interested in watching him program for like a few weeks of last year. I was kind of watching him program obsessively because I think he is probably one of the best programmers that I've seen work. He has this like very sharp mind.
Starting point is 00:58:47 He knows his code really well. He has a really good eye for subtle details, like how things are mapped in memory and how that's going to affect performance. And he has pretty good senses of when there's a bug, what kinds of things will be the roots of those bugs. He still has a lot of issues tracking those things down, which I think, to me, is an opportunity as a designer, saying, okay, here's something, even one of the best programmers that I've ever seen has issues with. What can we do to help this person? And I don't know how to do that.
Starting point is 00:59:24 I have one prototype in that's a, I haven't, that's like, you know, like 20% finished or something like that, that I may try and submit to a live this November. Oh, sweet.
Starting point is 00:59:44 I'll, I'm planning to be there. So I will see you there. Yeah, I'd love to see you. Yeah, it's kind of a mix between a REPL and a debugger that lives alongside your code editor, and this is basically trying to do the opposite of flowshe in some ways where or bring the best parts of flow sheets into a larger code base because if you visualized every piece every the data in every line of code in you know a 40,000 line code base like Jonathan Blow is working on then you're just not going to be able to understand what's happening. It'll just be too much information.
Starting point is 01:00:30 It'll be a lot of irrelevant information. And so that, to me, I began to wonder, how do you bring some of these really nice feelings of flow sheets, like the kind of direct feedback and this good insight into data with live being able to try a lot of stuff out very quickly? sheets, like the kind of direct feedback and this good insight into data with like live being able to try a lot of stuff out very quickly. How do you get some of those benefits into a really large code base? And so that's this idea for kind of REPL or debugger, or I'm calling it replugger.
Starting point is 01:00:59 We'll see if the name sticks. Replugger. That is an elegant name. Thanks. But I think it's important because here's this expert programmer who still has lots of problems programming. He is extraordinarily smart and gifted and works really hard to do all this yet even he's having problems so for me it's not just making programming better and more accessible for beginners which i
Starting point is 01:01:34 think is really important like really really important but i'm also somewhat interested in of how do we make experts better? Yeah, I totally agree. And I am also someone who like oscillates on both ends of this problem. Like how do we lower the floor and also like raise the ceiling? I don't know if raising the ceiling is quite the right metaphor because we don't want to increase what people can do.
Starting point is 01:02:03 We want to kind of like increase like their ability to do the things i don't i don't know um so yeah i i agree with you they're both interesting problems and i think you and i probably are in the same boat and that we hope that like there's a kind of that you could use the same solution for lowering the floor and raising the ceiling if that makes sense like you could build something that jonathan blow would like and it would also help you know like you know new programmers at the same time that's quite possible i i worry about the kind of competing design considerations in that sense so for me personally i want to work on maybe one or the other or chunks
Starting point is 01:02:46 one at a time of each but yeah i i share that vision like a artist uses a pencil and a four-year-old uses a pencil totally i guess the the opposite side of that argument is like a lot of professionals have professional tools while beginners have beginner tools in other industries. Like kids play with shovels, but like adults use forklifts or whatever. Right. There's like an increasing capability that can come. Yeah. And like complexity, like kids use iMovie, adults use Final Cut Pro or Premiere or whatever. But I guess, you know, to criticize my own argument, iMovie and Premiere and Photoshop 10, or not Photoshop, Final Cut 10,
Starting point is 01:03:41 all look very similar. Like you just add a few knobs and you get the more complex interface so that could be kind of the the solution like they look similar but the adult one has like a little bit different design criteria than the kid one yeah and i'm a little wary of using final cut as they'll kind of end all of movie production software because there's a huge amount of problems with it. I used to know someone on the Apple design team who was designing the next versions of Final Cut.
Starting point is 01:04:20 This is one of the friends of the lab of CDG. And hearing some of the stories about how people use it and Apple's internal design process, it is far from perfect is what I'll say. Totally, totally. Yeah, well, Final Cut X was kind of like a disaster. The first version of Final Cut X, everyone left and went to Premiere. Because I was a filmmaker at the time.
Starting point is 01:04:44 I was in high school, but I was doing film stuff um and so we all switched to Premiere um and then but then Final Cut X kind of like you know like improved enough that I I think a lot of us switched back but but I'm not really a filmmaker I was just a high school filmmaker so I don't really know what I'm talking about. But still there. And to maybe, you know, I have like little versions of Alan Kay and Brett Victor in my head now after studying their work for so long. But I feel like an important part is to study the heights of human expression. you know they're not just exclusively like accessibility is still important but also trying to understand like what are the kind of greatest things that humans have made and is it possible to support humans in making those great things um and like what what kind of things would they need uh totally like expert tools like how do we empower scientists like solve global warming i know brett's
Starting point is 01:05:46 talked about building tools for that kind of thing yeah exactly and i don't have too many opinions about that but i think it is worth looking at the kind of amazing expressive expressive qualities that humans have and trying to support that in all its all its glory from its beginning stages to its you know completed stages yeah i'm with you i i feel like uh brent and or alan would might say that the extremes are the best places to work like allowing kids like glowing the floor for kids that's great uh raising the ceiling for experts that's great the middle the middle chunk the like the people who are working on snapchat like we don't need to make their lives easier well yeah because they're going to make snapchat they already made snapchat you know they already made that's true like from
Starting point is 01:06:36 a research perspective anyway uh less than not a business perspective those Those are kind of already done and people are going to continue making things like that. Whether or not we have them. And so there's a precious few of us working on pushing, it feels a little grandiose, but really kind of pushing the boundaries of what uis can do and who can program and how they program i think that's important for you know
Starting point is 01:07:14 it's hard to see computers getting any less uh like pervasive than they are now and we kind of understand that there's an inherent power that comes in programming whether that's through expression in scratch or through like simulating climate models in python or c++ or something and you know i've actually gone and talked with a scientist who was working on who was studying meteorites. He was like one of the foremost meteorite scientists that happened to be studying at UCLA. And I asked him about his kind of software tool chain,
Starting point is 01:07:56 like how he did his thing. And, you know, if you ever want to be inspired, go talk to a scientist who does any amount of programming or data, data munging. It is, it is quite, it is incredible the kind of horribleness that, that you'll see like the kind of spreadsheets that are chained together with
Starting point is 01:08:22 people manually updating things. And it's kind of amazing that the science is actually able to get done given the kind of their bad tooling, their bad tools. Yeah, that, that makes a lot of sense. I have a friend who's a scientist. And yeah, he just uses Python or maybe I Python. But, you know, unsurprisingly he's able to make it work because he's a scientist. And he just uses Python or maybe I Python. But you know, unsurprisingly, he's able to make it work because he's a genius. So like, it doesn't matter that the tools are so bad. Like, you know, or maybe I flip it. Because like the tools for doing science are so bad. In order to be a good scientist, you have to be a genius. Yeah, I think that's a big part of it yeah so it'd be nice if more people
Starting point is 01:09:09 could be scientists um i one thing i wanted to touch on that we kind of skipped over is um when i so i asked the question of of how we make things that are less obviously visualizable visualizable and so you talked about your, uh, what was it? Replugger. A repl plus debugger. Replugger.
Starting point is 01:09:32 Replugger. Got it. I missed the P. Uh, replugger. Um, it's almost as hard to pronounce as your last name. I'm just going to keep making you say it.
Starting point is 01:09:41 Replugger. Replugger. Okay. So, um, uh, so that's, I So I think it makes a lot of sense why you'd want to build something like a replugger. But the tact that I usually take when trying to visualize the hard things in programming, or the tact I'm taking now in my work, is I'm just trying to restrict the model of what's allowed in programming or the tact i'm taking out in my work is i'm just trying to restrict the model um like uh of what's allowed in programming like get rid of mutable state get
Starting point is 01:10:10 rid of side effects like kind of make it haskally almost um because my contention is that when you really restrict things like when you restrict the dimensionality of programming the sorts of things you can do uh it increases it like uh it allows it to be mapped onto a 2d plane better so um i just thought this would be a good time to see if you had any thoughts about that approach oh yeah feedback one thing i've thought about lately is that in modifying programming there's like a lot there's there, at least from my perspective right now, there's only two tacks you can take. And one of those is change the model of programming in various ways,
Starting point is 01:10:56 like you're doing with mutable state, or when someone invents a new language, they're at least slightly tweaking the model of how a programming language works. And you can also change the UI or the way someone interacts with that model. And that's the place that I've been working mostly, which is trying to change the UI. So right now the UI is mostly like a text editor or something like that.
Starting point is 01:11:28 And the representation, there's another part of the UI is a bunch of code, a bunch of text or a bunch of words and symbols. And so the thing that I'm interested in doing is how can we, it kind of doesn't matter which model to me, So the thing that I'm interested in doing is how can we, you know, it kind of doesn't matter which model to me, it doesn't matter which model of programming someone uses,
Starting point is 01:11:56 but if it's well represented or if like it's, it might just be obvious what the model is doing if given the right representation. And the one example I have of this is a friend was telling me that in Perl, when you iterate through like a hash table or something like this, I forget exactly what data structure was, it does it by mutating a pointer
Starting point is 01:12:18 to the thing that it's iterating over. And so if you break out of a loop, then that pointer is still in the same place. So it didn'tating over. And so if you break out of a loop, then that pointer is still in the same place. So it didn't get reset. And so if you start looping over it again, it will start from that place. Oh, boy. Yeah, that's the that's what a lot of programmers say when they hear that. And to me, that might be a reasonable design decision like i think at this point we've learned that that's kind of you know that's not great like that's kind of a bad model but i could imagine that actually not being a terrible model if somehow it showed you as you were doing this like
Starting point is 01:12:57 hey it is mutating this thing and it might get stuck in a place and if it could show you that that my contention is that'd be fine. Like as long as the programmer is aware that's what the model is doing, then hey, we're good. Like they know it does that and then they can work around that or use that to their advantage
Starting point is 01:13:18 or whatever they need to do. Interesting. I'm with you where my disagreement is that when you have something like you were saying, like Microsoft Word, the 20 million lines of code, and you're stuck with a model where, sure, you can understand it line by line, and I can tell you what each line is doing visually, or I can give you the values of each of the symbols, but you still have to go through the 20 million lines, which is going to take more, more than the years you have on this earth. So, um, constructing visualizations that allow for like greater comprehensibility, I think is important for like regular people to be able to understand complex software. What do you, what do you say to that? I am glad you said that. Um, I, so to be clear, I agree that your tack of working with the model, I think that's great and important because this is like the, the argument about Roman numerals versus Arabic numerals for multiplication
Starting point is 01:14:17 where, you know, this is a little bit of a, I can't tell if the Roman numerals versus decimals is the model or the UI part. I can't tell which way you're going to take this. That's a good point. You know, yeah, it's kind of both.
Starting point is 01:14:35 But I was thinking of the model. Like, oh, I can see how that's confusing, actually. But yeah, I think changing the underlying model is quite important because the model is like the main way we have of understanding a thing. And more powerful models just like simplify things vastly or can do that. Give you leverage. But, yeah. So, okay. but yeah so it's okay so given that you you're with me there um you would the way you the reason
Starting point is 01:15:10 you're working more on the ui is is why um because almost everyone is working on the model is one part of it sorry i i think you cut, uh, saying I think almost everyone is working on the model. Oh, okay. Uh, like that's why every new programming language gets created. That's why people get really stuck in compilers and type systems. And there's a lot of talk recently about like react and non mutable state and
Starting point is 01:15:44 all this stuff. And I think a lot of that's good, but there's a lot less work in trying to evoke what a model does as opposed to the model itself. And so to me, that's an important just kind of... It's actually quite easy to come into this field and start working on something like that and discover something completely new because no one's ever done it it's just a very
Starting point is 01:16:11 um not really it's not really like a field yet um but back to your point about Microsoft Word and 20 million lines. Yeah. So that, to me, that's part of this research is, you know, yeah, I wouldn't argue that line by line showing data is a good way to understand what Microsoft Word does. My apologies for struggling. Oh, no, that's fine. Just being clear. But I would say that, and this is partly what Alan's Steps project was about, which is different ways of organizing that software may make it a lot easier to understand in the same way that like this is again from
Starting point is 01:17:08 Alan like the pyramids of Egypt were a bunch of rocks stacked on top of each other in the kind of the most naive way and it took a lot of suffering and slave use and human power and human lives to create. Whereas something like the Chrysler building or the Empire State Building, you know, went up in several months and it's, you know, like a fraction of the weight. It took a fraction of the time.
Starting point is 01:17:43 It's almost all usable space as opposed to the pyramids, which had like a tiny amount of the time. It's almost all usable space, as opposed to the pyramids, which had a tiny amount of usable space. And something happened between the pyramids and the building of the Empire State Building that we kind of somehow got a way of organizing materials and having new materials that made it way more
Starting point is 01:18:06 efficient way easier to do way more doable and there might be something like that for software and this is to me I don't have any good like pointers yet because this is so new like I can't really argue that this is definitely the future, but I think trying to make these software systems more legible, more... I think to me that's a big part of it is understandable because if you can understand something, it's a lot, you can change it basically.
Starting point is 01:18:38 Yeah, of course. I'm totally with you there. So I'm glad you brought up the Steps Project. But yeah, to dig in more to me the steps project is kind of more on the model side um like it looked like a lot of what they were doing was creating new programming languages new programming languages models um like that um that vector graphics library that they created like nile and that was like a tiny amount of code, but it was super expressive, like other abstractions,
Starting point is 01:19:10 as opposed to like legible mathematics type of visuals or Brett Victory visualizations. So I don't know. Yeah, I think that is almost all in the model. But then, yeah, Brett came in and made the representation, almost all in the model. But then, yeah, Brett came in and made the representation, the UI for the model. Because as he pointed out in Media for Thinking the Unthinkable,
Starting point is 01:19:34 that if you read that code, it's just a bunch of symbols. But there's actually a beautiful underlying model to it, apparently. Yeah, I've tried to use Brett's tools to get at it but I wasn't able to do it yeah but to evoke the model there is some like UI that isn't necessary to like show here is what the model is doing here's why this thing is happening is this is fascinating because I really now I could see that I can contextualize my work as really being right on the center.
Starting point is 01:20:07 Like I'm trying to create models that lend themselves well to being visualized. So like I kind of, I'm constantly going back and forth. Yeah. Trying to create a new model, see if it's visualized. And I'm realizing how unique that is. Like people usually work on one side or the other, but I guess there's some people like you and me and Brett
Starting point is 01:20:23 and Jonathan Edwards who jump back and forth yeah and for me i would say i mostly work on the uh yeah representation of ui side like any to me any programming model is probably fine like it could be fine depending on what you're trying to do but yeah trying to understand and evoke what it's actually what the symbols are doing or how the model works or that there's a model at all because most beginners don't even get that when they come into a programming language yep yep um cool yeah this was a great great great little tangent discussion um but i think i want to move on um just in the interest of time to talk a bit about dynamic land and and and laser socks and um your adventure is there sure cool so um let's see i don't remember where we left off the conversation in terms of
Starting point is 01:21:19 how cdg turned into dynamic land i feel maybe Laser Socks is a good place to start. Oh, yeah. And I realized I didn't really describe CDG super well. So the one sentence summary is that me and the handful of other people in the group all made dozens of prototypes from little know from little things like taped together to kind of more software things trying to get at what this dynamic medium thing that brett was describing might be and so we had hypercard in the worlds which was set up throughout the room as a system that we could kind of play with and add things to.
Starting point is 01:22:06 And one of the researchers, Haim Gingold's decided he wanted to have a game jam, which is like, you know, like a one day kind of thing where we all just use this new system to make games in it. And that was really fun i should just say like we all like i think um about 10 people in total all created a bunch of different games in the system all kinds of different games
Starting point is 01:22:39 and it was interesting they were all multiplayer because they're all kind of out in the world we didn't like say that at the beginning but they all just kind of became multiplayer because that's what you do when you're in the physical world is you interact with other humans generally uh so we had all these multiplayer games and that's where laser socks came from where we had a lot of the system used laser pointers to do interaction and so we could like point to something across the room to make something happen with the laser pointer and i was like oh you can't there should be like a dueling game where you like shoot lasers at each other. But that's probably unsafe.
Starting point is 01:23:28 You'll probably hit people in the eye. And these were like pretty high power laser pointers. So I was like, you can't shoot at them. Oh, what if you just shot it at their feet? And so that's where the idea for Laser Socks came from, which is a game where you stand on these two game pads and shoot lasers at the other person's feet and they try and shoot a laser at your feet and once they hit it a camera detects that they hit it and it fills up a bar and once your bar is full then you've lost so whoever whoever whoever has their bar fill up first loses interesting i that makes a lot of sense that you thought like laser pointers and eyes are bad
Starting point is 01:24:09 and then like feet are kind of far from eyes. Yeah. Yeah. And so go ahead. I was going to say, so it's detecting that the laser pointer is not on this. How is it detecting that the laser pointer is on the socks? Oh, this is actually kind of one of the magical things.
Starting point is 01:24:30 I had a conversation with Haim about how do you get the laser, how do you get the system to detect when a laser hits a sock? And somehow, we both don't claim credit for this idea, but somehow this idea happened, where because the cameras had their exposure really low, and we're basically just looking for bright dots, we could use that fact to have a black gamepad, and so when you shoot a laser at the black gamepad,
Starting point is 01:25:02 it doesn't reflect very well because it's black, and when you hit, we had to buy a bunch of white socks and when it hits the white sock it lights up really bright and the camera sees it and so once that happens it once it reflects off the white sock and it reflects bright enough for the camera to see it, then it detects a hit and increases your, you know, your score. Oh, so easy. Yeah. It doesn't have to like know where the socks are in space and where the laser is in space. It's just like, is there a circle in this square or not? Exactly. Is there a bright dot in this particular square? And to make this system, it was incredibly easy.
Starting point is 01:25:51 It took me an afternoon to build it. And I basically taped some trash bags to the ground. And then you use the laser pointer to draw a rectangle around the trash bag or the gamepad. And then you say that that basically tells the system, this is an object of interest. And then it detects that object. And you can do things with that object. Like if there's a laser within this object, do something.
Starting point is 01:26:28 And so I had to write a line of code, or what would be a line of code. It ended up being like a dozen or a couple dozen lines, just because the system was imperfect. But you could imagine writing one line of code, which is when a dot is detected in this square, or when a dot is detected on this object, because it's an object-oriented system, increase the score. And then the score, you know, keeper thing just draws a rectangle, which is like draw a rectangle when the score increases.
Starting point is 01:26:56 And to me, that was like an interesting, from the future of programming perspective or the future of coding perspective, that was like a really interesting uh i'll call it a discovery it doesn't exactly feel like i made it but like i could program this thing that's a pretty new and fun game in an afternoon with trash bags and cardboard and laser pointers and socks and i could do that with like two lines of programming and it may like point out to me that there's like there could be something real here um or
Starting point is 01:27:34 something really interesting in bringing a system like that to a wider set of people like i wonder about the kind of creativity that would be unleashed if such a system like Dynamic Land had made it out and had a good corpus of information of like, here's the kinds of things you could make. Go nuts. Yeah, I agree with you that LaserS socks really does kind of point towards something like uh the ability to create multiplayer fun creative things very simply um there was an analogy someone used that i was looking for in preparation for this interview i couldn't find they compared
Starting point is 01:28:22 laser socks to something like it was like the killer app of dynamic land that kind of proved it do you remember what i'm talking about right yeah um brett said that laser socks was our space war and he was referring to um space war the like classic one of the first computer games that all the uh DARPA or sorry the ARPA researchers were playing and modifying and sending around it was like one of these like amazing this is like a really simple game about like shooting each other's spaceships on this really early prototype screens and stuff but Stuart Brand wrote an article about space war, about how like incredibly addictive it was and how people were like staying up all night to do it. And it kind of, it was like a Harbinger, um, of like,
Starting point is 01:29:17 here's something really new that computers could do that no one's ever really seen before. And that's the analogy Brett was making of like here is like a kind of game that's really fun at dynamic land like uh in this new medium that is pretty simple but it has this like interesting quality yeah I don't know if I quite agree with that analogy, but I'm flattered. Yeah, I can imagine. Brett's giving you quite the compliment there. So yeah, I'd be curious to hear your thoughts, pros and cons,
Starting point is 01:30:04 criticisms about dynamic land. Maybe if you want to go into why you left, that'd be interesting too. What do you think about the future of what, what dynamic land tells us about the future of programming? Yeah. So dynamic land was, so CDG started, it became clear that our funding was running out. And
Starting point is 01:30:27 I want to say in a really quick aside that the funding was pretty innovative in that it was just given to us. It was just money given to us with nothing expected in return. That's my understanding anyway. And that is the research model that Alan Kay would like to see more in this world of researchers who, you know, have some interesting ideas to just kind of let them go and follow their vision. And at the worst case, you know, you've paid their salary for a decade or something. In the best case, you get things like the internet or, you know, interactive computing or laser printers or all this stuff that happened back in the ARPA days. So it's a pretty small bet in comparison to like the huge amount of stuff that can come out of it. And I share some of that.
Starting point is 01:31:28 So that's just something I want to mention. But back to CDG. So the funding was running out and the whole set of all the researchers could no longer be supported by that funding source and so the dynamic medium group Brett Victor's group started trying to spin out and find different funding and kind of continue their research and that's how dynamically got created which is a nonprofit research group at this point and they have a building in Oakland and I was there for kind of the very last parts right before they they kind of had an office across the street from the current building that was under
Starting point is 01:32:13 construction and I left around kind of when it like the it was being designed and planned um and the reason i left was uh had really nothing it was the group was switching um roles a little bit to more the design engineering of real talk and to me that wasn't so interesting it felt a little bit more like kind of nitty-gritty flipping bits than i cared about yeah a little bit more engineering than i cared about and also my interests were shifting from computing at that point anyway and i was getting a lot more interested in maybe i'll say human happiness um yeah you dropped the uh incidental complexity stuff and you just focused on compassion and it's more pure sense yeah um like i personally i examined my work really closely and i thought
Starting point is 01:33:13 what would happen if this work succeeded wildly like if it like really took off and like the work that i personally was doing what would happen as results and like what kind how would humans be affected and really i asked would they be happier and i realized the answer to that was not really like i would like it if programming is more accessible and better for pro for expert programmers i would like it if people are able to make things like laser socks. I still think those are good and important. But for me, anyway, they didn't really have the like, grab like we all we have, you know, this, this is in some ways the age of wonder the we have these incredible things around us, like, we have supermarkets full of food, we're like, really, you know, pretty cheap food, all things considered. We have like amazing access to resources and plumbing.
Starting point is 01:34:09 And we have like this incredible entertainment and these amazing computers. And yet it doesn't seem like we've made a real dent in human happiness. So I wanted to work more directly on that. So i left to explore a bunch of things and decided i want to be a therapist and that's actually one of the main things i'm doing now to be a psych psychotherapist yeah fat fascinating pivot uh my girlfriend and i like to say uh like hard pivot whenever we like come up with a drastically different idea than we were thinking about um so one phrase so you use the phrase that like make a dent in the universe in terms of human happiness and so that makes that like would lead me to believe that you don't or while you may want
Starting point is 01:34:57 to do psychotherapy like on a one-on-one basis there's like maybe some sort of like a vague plan to scaling whatever you learn to achieve like large amounts of human happiness or creating a methodology or something. Or am I putting words in your mouth and trying to make a startup out of what you're doing? You're just trying to be a therapist for people one at a time. I have some thoughts about that I realize this isn't exactly about the future of programming so I'd be happy to go back soon but just to comment on that I think it's
Starting point is 01:35:39 it's worth not underestimating how important it is that one person has found some happiness. Like to them in this like one lifetime is actually, you know, it's the most important thing to that person to be happier. I think that's what, you know,
Starting point is 01:36:03 we're all going for. And so I try and frame it instead of thinking in this very like industrial, like, you know, you've inherited a kind of scientific industrial idea that like, we have to scale all of our efforts to many different people. And I think that's important and true in a lot of ways. But I also, and I'd like to do that. I don't know how to do that exactly for something so individual as therapy, yet I'm planning on working on it.
Starting point is 01:36:35 But I also wanna say that one person's happiness is actually quite important. And not incidentally, that one person being happy affects everyone around them in very very concrete ways they're not even that subtle a lot of the times and there's like a kind of wave that happens so that is my answer to, or part of my answer to, um, totally question. And I'm totally with you. Um, I just, just to kind of follow up, I just want to check, do you have any vague sense of scaling?
Starting point is 01:37:22 Like, I don't mean to say like, to, to like, as if I didn't hear what you said, I understand that helping one person do being, being a teacher or, or a psychologist has an enormous impact in the world. Um, just knowing, um, you, um, I was wondering if you hadn't just, if you had any hopes or vague sense of some sort of kickover. I don't know. Yeah, I do. Okay. Yeah, I want to bring happiness to everyone that I can
Starting point is 01:38:03 or help people find happiness. maybe it's another way of saying that and I would like to do that you know I I can't do that just by talking one-on-one with people so I'd like to put an eye towards or at least like some of my effort towards figuring out ways to help more people. One idea just to give you is to work as a kind of in-house therapist for organizations, maybe as a consultant or something like that. Maybe organizational therapist or something like that, which is a person helping the organization to achieve better results just like a therapist does for an individual
Starting point is 01:38:45 and also working kind of individually with the people in organizations so i think organizations are like the place of adult learning in our society the kind of most commonplace just like schools are for children i think the workplace environment can be a space of the primary space of adult learning. And so I'd like to help cultivate a culture of, you know, a growth culture or a personal growth culture within organizations. Cool. Yeah, that's fascinating. I watched the first episode episode of the tv show billions and i think there was a um organizational psychologist in that show it seemed like a
Starting point is 01:39:32 fascinating job yeah it's pretty interesting i have not yet done much with it yeah totally okay so to bring it back to programming um I wanted to give you some space to say what you liked and didn't like about Dynamic Land and how it points to the dynamic land exists. I think it's great work and it's really worth doing. I'm really happy that Brett and the team have found the space to do that. Personally, my heart goes out to them and I wish that I wish that the funding was easier I've heard that it's hard to get funding first you know it's like such a unusual kind of space that I my understanding is that they're looking for funding a lot of the times so I would really like that organization to keep continuing to do their thing because I think Brett is brilliant.
Starting point is 01:40:46 The team is brilliant. And I think it has a lot to say. I don't know if it has a lot to say about the future of programming necessarily. I think a lot of interesting programming things will come out of it. Like they, the team has been quite interested for a while now in making languages that are more like physical languages that sit on a table as opposed to code that is on a screen.
Starting point is 01:41:23 And they also invented like a kind of operating system that is pretty a screen. And they also invented a kind of operating system that is pretty amazing, Realtalk, that is kind of like an operating system kind of protocol, maybe programming language-ish
Starting point is 01:41:37 kind of thing. So I can imagine lots of interesting programming innovations coming out of just the team iterating and working on creating the next versions of Real Talk and Dynamic Land. And this feels a little... I'll say that something I worry about or wonder about is the technology at dynamic land being matched up with the ideals of dynamic land like i think brett in particular has had an
Starting point is 01:42:18 emphasis on um artists and inventors and scientists. And I think in Dynamic Land that shifted a bit in order to be more about everyday people, accessibility, making sure that the community can be involved. I think that's really important for programming in particular. But I do wonder about the kind of like, what exactly is the technology at Dynamic Land good for in some sense? Like what kinds of human experiences does it facilitate?
Starting point is 01:42:58 Is it just things like laser socks? Is it things like, you know, spreadsheets or business plans? Is it things like community organizing? Is it things like political intervention? Things like teaching, like lecture style? Like, I have all these questions about kind of how it's going to spread into the human world. But I'm more just excited to see where that goes. I don't know where that's going, and I hope it goes someplace good.
Starting point is 01:43:37 Yeah, totally. Me too. Cool. So the last thing I want to talk about is that your current project you mentioned that you're working on an interactive visualization of a library that you built yeah that's just the most current thing that i'm working on i started while working at the recurse center for one of their week-long batches in New York City, which I highly recommend. That place is awesome. Everyone there is really cool, and it was a nice space to work, kind of head down and just work on a thing for a week.
Starting point is 01:44:16 So yeah, I'm working on this representation of a JavaScript library that I ported to JavaScript from Python like five years or something ago. And I've never quite understood how it worked, even though I ported it. And yet it still kind of works. But every time I have to try and fix it, like fix a bug that someone reports, I keep running into, wait, what is this doing? How is this laid out?
Starting point is 01:44:53 Why is this code doing it this way? What will happen if I do this kind of thing different? And that's me, the maintainer of the library and so i can only assume that anyone who tries to like understand how this code works is running into even more issues i think this is a big problem is that for a lot of open source software it's open source in the kind of you can see the code but you don't really have insight into how the designers of the library were thinking about it, unless they have stellar documentation,
Starting point is 01:45:31 but that's kind of its own separate thing. And it's basically just hard to read code and understand what a thing is doing and why it's doing it the way it's doing it. And so... Totally agree. I feel like there's... I'm kind of working on an essay about this exact thing like code is open source but who cares nobody can understand it yeah and it's
Starting point is 01:45:52 useful like people do stuff with it but like as soon as you run into problems with the library it's just like looking into the code is a mess uh yeah there's just a huge number of problems with it so i'm trying to make a representation of this library that's like a little bit of an interactive explanation, but kind of shows the internal workings of the library, kind of like a, instead of like a black box, I think of like a clear box or something. Like the library is its own kind of artifact,
Starting point is 01:46:26 like its own separate thing. But within that, it has its own internal workings. And so I'm trying to just evoke those internal workings and really allow someone who doesn't know anything about how this library works not only to understand what the library does, but how it does it and how the different parameters work. Because this library has some parameters that you can tweak that changes the behavior of the library. You kind of can't really understand what they're doing unless you see the internals, because it's based on a mathematical model of cosine similarity.
Starting point is 01:47:12 So basically it just explains a little bit of the mathematical model and then just shows in both in these kinds of tables and interactive views so you can change things around and see how the behavior changes. And there's lots of like pre-built examples that you can play around with to understand what's doing. And it also looks like a fake, it looks like a GitHub page. I basically copied, saved a copy of a GitHub page and then just modified the documentation part of the page because GitHub doesn't allow you to like embed javascript in the documentation so i had to like fork off a page and it's it's kind of like a cheeky like okay i'm pretending this is github even though it's not but like this could be on github
Starting point is 01:47:59 like what if every library that you used had, like, some interactive documentation or interactive representation that allowed you to, like, play around and see what data was flowing through the program? And the author could maybe, like, add annotations being like, oh, and this is what I was thinking here and this kind of thing. The dream. being like oh and this is what I was thinking here and this kind of thing the dream well I think the final dream that this is pointing at is like I want to start with a representation that is like me trying the best I can to explain how this thing works in the best possible way that I know how and so it's very handcrafted. It's not automatically generated or something like that. But starting with at least one good example of a well-explained system, is it possible to get any lessons from that to be able to explain other systems with the hope that these things may just be automatically generated in the future or may become the way that the programs are authored in the first place working with a really good representation of that system that's really human understandable
Starting point is 01:49:12 instead of you know symbols and code i stand corrected that you're correct that what you just said that is definitely a dream yeah it's that's my dream, or at least something I'm trying to point out with this library. Totally. No, I have the same dream. We're co-dreaming here. Awesome. So in terms of this and future work from FlowSheets and the FlowSheets SaaS startup and et cetera. How should people follow you? What sort of ways are you interested
Starting point is 01:49:50 in interacting with listeners of the podcast, et cetera? Oh, I'm on Twitter. My Twitter is at Glench, G-L-E-N-C-H. I'll post about random programming things that I do, including this representation I just showed. I also have a newsletter about the future of programming on TinyLetter, and that's tinyletter.com slash flowsheets.
Starting point is 01:50:21 And I'll post things about the different... That's the main kind of venue. I'll talk about the different prototypes and things I'm coming out with. And my website is glench.com, G-L-A-N-C-H.com. And that's the kind of my repository of everything I've ever made. Yeah. And I don't know when my SaaS startup, my programming language startup is maybe another way of saying it.
Starting point is 01:50:53 I don't know when that will be coming out with a thing, but hopefully before the end of the year. Is there anything you're looking for, like investors, collaborators, employees, I don't know, early customers? Anything you're looking for? Is it too early? That's a great question. Thank you for asking. No, I'm not really looking for anything at the moment. I'm in the middle of doing a lot of customer interviews and really trying to understand what people are, what kind of data manipulation tasks people are doing,
Starting point is 01:51:29 especially in an automated way or wanting to be in an automated way. So things like I want this data manipulation task to run every 15 minutes and email me if some certain conditions happen. So if anyone has any tasks like that they'd be interested in telling me about, I'd be happy to hear them. Cool. And people should get in touch with you via Twitter, email? Yeah, Twitter works and email. My email is on my site. Cool. Great.
Starting point is 01:52:06 Well, Glenn, it was a pleasure. Thanks so much for giving me so much of your time. Yeah, this was awesome. Thanks for having me, Steve.

There aren't comments yet for this episode. Click on any sentence in the transcript to leave a comment.