Future of Coding - Coding On (the) Beach: Jason Brennan

Episode Date: December 29, 2017

Jason Brennan is a Canadian computer scientist focused on education and computing. He’s worked at Hopscotch and Khan Academy. We discussed his experiences building multiple programming language ...platforms, the incomprehensibly large vision of Alan Kay, and his new project Beach. http://futureofcoding.org/episodes/20Support 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. This is Steve Krause. The episode today has a slightly different structure than usual. In the past, I've had two different types of episodes, interviews and reflections. I realized recently that the reflection episodes haven't been that valuable for me. I derive most of the value reflecting via writing, but ended up spending hours recording and editing the audio versions for no additional benefit to me. Hopefully I don't have many listeners out there who loved those episodes. Now you'll have to either read them with your eyes on my website,
Starting point is 00:00:32 or send them to an app with text-to-speech, like Pocket. So instead of a new episode every week, I will go to a bi-weekly cadence of only interview episodes. And for these interview episodes, I will add a housekeeping section to the episode before I introduce my guest, where I spend a few minutes discussing updates for the podcast and my research as necessary. If you haven't noticed, we're in a housekeeping section right now. I'm copying this format from Sam Harris. As far as my research goes, I don't have much to report. It's difficult to control my schedule
Starting point is 00:01:08 when I'm with family and on vacation. So I end up not finding much time for work, which probably isn't the worst thing. I fly back to New York on January 4th and hope to get back into the swing of things soon thereafter, let's say January 8th, which I think is that Monday. I'm currently in the middle of a two-week reflection
Starting point is 00:01:26 on my research, which you can see in my newly created slash reflections folder. It's at futureofcoding.org slash reflections slash 10, the number 10. And if you want more daily updates, because for whatever reason you're obsessed with me like I'm obsessed with all sorts of people in this world. You can get those at futureofcoding.org slash log, which is newly a beautiful page, which you can check out yourself. So anyways, without further ado, let me introduce my guest. Today I have Jason Brennan on the podcast. Jason is a Canadian computer scientist focused on the intersection of programming and education. He's worked at Hopscotch, the coding platform for kids on the iPad and the iPhone. You may remember Hopscotch
Starting point is 00:02:14 from my episode with its creator, Samantha John. Jason has also worked on Khan Academy's Learn to Code team, and he's currently working on a new programming environment called Beach, which we talk about on the show. Without any further ado, I bring you Jason Brennan. So welcome, Jason. Thanks for being on the show. Hi, Steve. Thanks for having me. Looking at your background, you've worked at some of the most innovative education companies around. You've worked at Khan Academy and you've worked at Hopscotch, which listeners of the show will be familiar with. So can you tell us a bit about what got you interested in working in education in the first place? Yeah. I graduated from computer science in 2012. I had done some like iPhone development at that time. And I actually still do a lot of that these days. But I kind of started like looking for more, like looking for what I could
Starting point is 00:03:03 do with my degree and my career and like, like what could be done with a computer um that that we're not really doing right now and i i i stumbled upon two major people who were kind of interrelated i stumbled upon alan k's work and alan uh people listening probably already know but anybody who doesn't alan is partially responsible for things like the desktop metaphor that we use for computing and object-oriented programming and stuff like that. He worked on a team in the 70s doing that. So I started, I just like read voraciously through all of his papers as much as I could find. And he has a lot of talks on the internet as well that cover similar ground. And so I found his stuff and I just kind of fell in love with it.
Starting point is 00:03:45 And one of Alan's big visions isn't really about computers at all. It's more about education. It's more about people being able to learn in better ways. So being literate in science, being literate in systems and stuff like that, that is's hard to do on paper and books. And so that got me really excited. So there was Alan Kay. And then I also stumbled upon Brett Victor's work. So I also suspect that listeners of this podcast will be fairly familiar with Brett's work. But a lot of his work at the time, this is like 2012, 13, focused on understanding, on visualization as a means to understand things and thinking in systems. And so a lot of similar things to Alan. And I just kind of became obsessed with these ideas. And that led me to the first company that I worked with
Starting point is 00:04:42 in education, which was Hopscotch. I found this blog post that they wrote about a Brett Victor essay. He had written this essay about learnable programming and hopscotch had this, this kind of follow-up blog post on their thoughts on, on it. And, uh, I was like, what the hell is hopscotch? So I, uh, I, I clicked through to the website and, and see that they're in New York city, which is where I was and that they were hiring. And I was like, Oh my God, this is a, this is a job. Like I could do this for money. And, and then I, I talked to them and worked with them for a while after that. So that's kind of how I got my start with all of that. Fascinating. So yeah, I have, I have a lot of different questions about what you've listed. So I guess one of my first questions is,
Starting point is 00:05:29 it sounds like you went from Alan Kay to Brett Victor. Is that how that you found them? I think so. I can't remember the exact order, but it was probably a little interrelated. I think my first major waking up moment was when I read Brett's Magic Ink paper, which still kind of kicks my ass today, like just mentally. He talks, he talked in that paper, which is from like 2005, I think 2007, maybe. The crux of the paper is that a lot of what we do, or what we did at least with computers at the time, was about information. So I would go to Yelp, or I would go to Amazon, or I would go to the map or whatever. And a lot of these activities are really about seeing with our eye. And computing at the time
Starting point is 00:06:18 really focused, and still does today, focus on interaction. So thinking about, well, how am I going to use this? How am I going to play with this? How am I going to click this and so on. And Brett's paper was basically saying that for a lot of software that we use, using it is the least important part. You know, we do need to navigate it a little bit, but what we really care about is seeing with our eyes. And that kind of just, that really opened me up to a new way of thinking. So that was fun. Okay. So you fell in love with Alan and then Brett. One of the things I was curious to ask you about, given that it sounds like you're a
Starting point is 00:06:54 real Alan Kay fan, is I, so I, a few weeks ago, I spent two weeks reading every paper I could that had Alan's name on it. Nice. And that, it took two weeks and it was like a really fun project. I watched a few videos, but I kind of skipped the videos just assuming that I get it in the papers. But then looking through some of your notes,
Starting point is 00:07:12 you linked to a number of Alan Kay videos. And I was struck by how much are in the videos that aren't in any writing that I could find. So I'd be curious to know, would you advise me to go back? You know, I'm not done. I have to go and watch all the videos. Are there some videos? How would you kind of meta advice on how to wrap my head around Alan
Starting point is 00:07:29 Kay's vision? So how to read Alan Kay? It's a tough question because I don't think we have the technology yet to really capture what Alan is trying to say. That's the point, I guess. Yeah. I joke with people that I don't think we're really going to understand Alan for another hundred years or so. Um, you know, and I mean that as a compliment, you know, that you can tell when he's speaking that there's just so much, he's trying to get out at all at once and, and trying to pass that all through, through just basically voice in a few, a few slides is, is almost impossible. Um, and you know, Q Q recognizing the irony of us having a podcast conversation about
Starting point is 00:08:11 that, uh, right now. Uh, but yeah, we don't even have the slides, but I think that to, I can't, I can't completely recommend like watch all Alan K talks because there's a lot of repetition and he'll admit that too. Like he gives talks catered for specific audiences and usually I can't completely recommend like watch all Alan Kay talks because there's a lot of repetition. And he'll admit that too. Like he gives talks catered for specific audiences. And usually he doesn't assume that the audiences have seen his previous talks. So, you know, there's a lot of stuff that he will repeat over and over again. But then there's also like something slightly different in every talk.
Starting point is 00:08:41 So I happen to really admire him. So I usually just watch every one in every talk. So I, I happen to really admire him. So I, I'll usually just watch every one that I find, but, um, you can, you can definitely, I think, get his major themes through reading his papers and, and seeing, you know, a talk here or there. Um, but I, I think they just keep getting better pretty much. You know, he, there were a few that came out this year. Um, and it's also fun if you're looking him up on youtube he's not the one who is a survival person like you know some history channel youtube clip thing um there's another man named alan k who's popular on youtube right now uh so so yeah i mean watch those if you if you're interested in
Starting point is 00:09:18 that but you'll get a very different message um yeah yeah it's hard to say. I think, I think that, you know, kind of mixing the two and, and I've also found what's helpful is, is, I mean, Alan and Alan and Brett are both all about context. They're all about like learning things in context. And, and that means unfortunately, like the painful, the painful act of, of reading all of their back references and books and so on. And it's not that you have to do all of these things to actually understand what they're talking about, but it does augment, uh, augment reading, reading them just like it augments reading other, other authors who contribute to a body of work. Yeah, I'm totally with you. So, um, I I've, yeah, I've been making a bit of a project of that kind of
Starting point is 00:10:07 walking up the tree i think seymour pappard is like an obvious next step to go if you're like trying to understand brett and alan um i think i saw you you like you also are a big fan of mindstorms which makes sense in this context i actually just reread it again a few weeks ago and it it it's it's funny it's a different book to me every time I read it. Same. It's a wonderful read. So what did you get out of it this time? What did I get out of it this time?
Starting point is 00:10:33 I think the big thing was just the love that he has. I think I hadn't picked up on that as much. Like the love that he has for learning and for for people basically like the the empathy that comes along with that of like you know there really aren't any bad learners there are just bad learning environments for the most part and that that kind of stuck out to me a little bit more i'm not i'm not sure why like what headspace i was in to read it that way this time but but that um that has really lasted. That's left a lasting impression on me.
Starting point is 00:11:08 So last kind of very theoretical kind of influences question for you. Sure. Recently, I've been thinking about Brett's inventing on principle talk. And so Brett kind of articulates his principle, connecting creators to their creations,
Starting point is 00:11:28 like fast feedback loop. I was trying to come up with a quippy principle for Alan. I was having trouble. Like you were saying, his vision is so big and we're not going to understand it for 100 years. So I'd want to compress it into like a sentence or so it might just be impossible. But I was wondering if you had any thought on what his.
Starting point is 00:11:51 Yeah. I think my, my like Alan K elevator pitch is basically like everybody thinks scientifically, every, every child grows up a scientist. And, and I think, I think that's kind of his ethos as far as I understand it. And, and again, like you said, summarizing somebody, distilling somebody down to a sentence is hard to do, but I think that that's a major, a major
Starting point is 00:12:19 thing of what he's after. And, and, and, and it's important to, to have, again, the context of what he means by science. It's not, it's not like somebody in a lab coat, you know, mixing potions or whatever, like, like our kind of TV version of a scientist. It's about somebody who, who is literate in the thinking of using tools and media to get around what's wrong with our brains. Because we're all kind of damaged human beings, barely functioning because of wrong with our brains because we're all kind of damaged human beings barely functioning because of like how our brains represent reality to us. So, you know, just nice light reading material,
Starting point is 00:12:54 but it's important and it's obviously hard to communicate. That's like a complex thing to get across to many people where many people are just like, how do we, you know, many people's focus on improving education, say, is just like, how do we, you know, many people's focus on improving education say is just like, how do we get it? So kids are better prepared for jobs. And, and it's hard to argue with that when people are struggling financially that it's like, well, no, that's not really what the focus of education is. But I mean, Alan's point is like, we, we have, um, Alan, Alan and his research group,
Starting point is 00:13:28 I think Vi Hart was the one who kind of summarized their research in the sentence like, we have to make sure that human knowledge exceeds human power, basically. And I think what she was saying there is like, you know, now we have the technology to blow up the planet with nuclear bombs. But our brains are still the same brains that like revenge and like, like, prejudice and so on. And so we need to like, make sure that every human being every child grows up to an adult who's equipped to deal with that reality. I kind of think that's what it is. So that's a little bit more than a sentence but i think that sums him up yeah that makes a lot of sense and i i can see how he's had a similar like an influence like that on brett victor one of brett victor's recent tweets was i think it was
Starting point is 00:14:18 like seven billion scientists by 2050 yeah i think, I guess it makes sense that they're, that they're friends given that they have such similar visions. I think so. And it's nice to, um, from Alan, Alan, I think holds people in high esteem, especially the people whose work he respects. And you know, I, I it's, it's fun to kind of watch Alan give a talk sometimes. And, and, you know, I, I, it's, it's fun to kind of watch Alan give a talk sometimes. And, and, you know, if he doesn't like something, he'll, he'll make it clear that he doesn't like something. He thinks that this thing is done wrong. And there's lots that he thinks is done wrong in the software industry today.
Starting point is 00:14:54 Um, but you know, when he likes something, he equally is, is affectionate to it. And it's really nice to hear him talk about other people whose work he respects. And Brett, Brett is one of them by heart is another. And like, it's just, it's, it's funny because Alan comes off as a curmudgeon a lot, but he's also identifies as an optimist. And sometimes on the surface, you're like, no way you're, you're just cranky about everything. But when you actually listen to him, like he, you can't have a vision of, of like what Brett said, like 7 billion scientists by 2050 without being an optimist. So that that's nice to hear for me.
Starting point is 00:15:31 Yeah, definitely. I imagine if your vision for humanity is so optimistic and you look around and you see what, what reality we have, I guess that could be why you come off as a curmudgeon. Yeah, exactly.
Starting point is 00:15:42 So speaking of Alan, I saw one of your projects, I think it was Druthers1, was inspired by eToys. I think that's what I read. That's right. So I am a big Scratch fan. And so Scratch and eToys are similar. They were actually kind of conceived at a similar time. I was talking to Mitch Resnick about that recently.
Starting point is 00:16:02 And they kind of took different strategies. And I don't know much about eToys. I know Scratch has been very successful. I don't know where eToys has been adopted, and I don't really know how it was different. So given that you built something inspired by it, I'd be curious to hear how you got exposed to eToys and what you like about it. Yeah, so eToys, I think I heard about through Alan's talks. He, a lot of his presentations are actually done in eToys. So like he doesn't use Keynote most of the time he uses
Starting point is 00:16:34 eToys, which is interesting. Yeah. And I might be, I might be a little imprecise here. It might not be exactly eToys. So eToys is built on top of Squeak, which is a small talk, a modern small talk that was, well, modern, a small talk that was written in C in the 80s at Apple by, by Alan was a part of it. I think it was Ted Kaler who wrote it. I might be, I might be getting the name wrong. But anyways, somebody who is working with alan helped write squeak in the 80s um at apple and and e-toys is kind of built on that foundation like i think underneath it's running squeak um which is why i think one of the icons for it is like a mouse so it's still the squeak squeak icon um anyway so so i kind of i kind of like found it it through Alan's presentations.
Starting point is 00:17:30 He gave a TED Talk a while ago where he was, this was I think 2007 or thereabouts, and he was showing off the one laptop per child, the laptop, the XO laptop that was being built around that time. And boy, I've had this blog post drafted for a while about the one laptop per child and, and the, the, it was also called like the a hundred dollar laptop. Yeah. And, uh, it's interesting. We, we have a hundred dollar laptops now, but they're like Chromebooks. Yeah. I'm talking to you on one. Yeah. And, and in my opinion, I think it's not that they're, they're not marketed the same, but i think the idea that a hundred dollar laptop uh running like a chrome os is just like offensive to the idea of of the hundred dollar laptop project and again i i'm i i have to couch this by saying i don't think anybody at google is
Starting point is 00:18:20 trying to say this is a replacement for alan's's vision, or this is, this is, um, this is fulfilling the one laptop per child idea. I don't think that's what they're saying, but it's, it's interesting to compare the two ideas. Um, because the one laptop per child, $100 laptop thing that, that I'm digressing off of here is, uh essentially eToys. The operating system is similar to eToys and it's designed as a dynamic authoring environment for children. So it's designed where you're not using somebody else's operating system. You're using your own notebook that you can do whatever you want with. You can change objects. You can meddle with things. You can exchange with other children.
Starting point is 00:19:07 And that's the complete antithesis of Chromebooks. Like Chromebooks are all about top-down management. If you go to the Chromebook website for Google's education stuff, it's all about like, hey, manage your students, do automatic grading, like manage data and see what's in their Google drives and stuff like that.
Starting point is 00:19:24 Like it's all about like the authority and the bureaucracy of the education system. Which, which is like the complete opposite. The, the one laptop per child laptops had a mesh networking, so they could even like do an internet without any other computers. Like it was, it could just be an internet amongst the OLPC laptops, which is, you know, the complete opposite of a Google owned cloud system, you know? Yeah. Anyway, so all of that is an aggression around,
Starting point is 00:19:57 that's I think where I found eToys originally. And that idea was very appealing of like, hey, there's this system for children that it's not like a learn to code environment. and uh and that idea was very appealing of like hey there's this system for children that that it's not like a learn to code environment it's just it's just the environment it's just what computing is for these children and that that has really appealed to me and and you know as i talk a little bit more about some of the stuff that i've worked on and am currently working on um that will probably uh come back up again so You are working on a programming language of your own right now called Beach.
Starting point is 00:20:28 So I'd be curious to hear a little bit about that. So when did you start working on it exactly? Yeah, I started working on this, I guess, in the spring of this year. That's when I got a notebook. I basically don't start working on something until there's a notebook dedicated to it, uh, is, is usually how I work. Um, and, and so that was probably, that was probably in April or March of this year. Um, and, and the idea, the idea came from pretty much what I've been working on for, since I joined hopscotch, you know, the idea of, of making, uh, an environment for children to think and learn in. And, um, so it's a new
Starting point is 00:21:15 iteration on that. Um, and it, I had given this talk, I gave a talk at a conference called playgrounds in Melbourne, Australia this year in the spring. And the talk actually just finally got put online last week. I'll send you a link to that if anybody's watching. I was very nervous while giving it, but it was still a fun talk. Anyway, the talk was about the stuff that I care about. It was for an audience of primarily iOS Swift developers. And I decided to give it so that the conference was called Playgrounds, and that's named after Apple's newest programming environment called Playgrounds. It's Swift Playgrounds. But I decided to give the talk in the context of talking about, I pitched the talk to talk about Apple's original programming environment called Playground, um, from, from the
Starting point is 00:22:05 1980s. Um, this was something that, um, Alan Kay and, uh, shoot, I'm blanking on her name. Um, Alan Kay and a few other people at Apple did, and it was under the Vivarium project. And essentially it was, it was a programming environment for thinking about ecosystems. And I think I figured correctly that most Swift developers had not heard of this research project that Apple did in the late 80s and early 90s. And so I wanted to use that as kind of a stepping off point to talk about programming research and education research, especially with like what Apple's done, but more broadly, like why it matters at all. So I gave this talk and it was kind of,
Starting point is 00:22:52 it was kind of broken up into two parts. One was what is the purpose of, of education? And the second part is like, what can program, what should programmers do about it? And I'm not going to explain the whole talk here right now, but essentially a lot of it draws on Alan's work. And the basic crux of it is, you know, we got to come up with tools for getting around what's wrong with our brains. And so programmers should help with that. We should make media for children so that they can, they can like work in, in a, uh, work in an environment that's better than, than paper or Google slides or whatever.
Starting point is 00:23:31 And that's, that's really what drove me to, to like start working on beach. You know, I, I gave this talk and it went over really well. People, people in the audience really enjoyed it, or at least the 90% of the people who came up to talk to me after the talk. Um, and I was, I was just really feeling fired up about that. I was like, okay, I gotta, I gotta like get back to work. I gotta do something. I gotta make this real. And so that's, that's kind of where it started. Um, cool. Yeah. Great. Yeah. That sounds, I could definitely see why you'd have uh the motivation to get started something like this after a good reception so um given that it sounds the inspiration at least sounds similar to a lot
Starting point is 00:24:14 of tools that people like uh who listen to this podcast would know about i'd be curious to hear what is like some of your insights that make it unique? Yeah. So one major thing that, that I've decided to go on with, with beach is that I'm trying to think how to, how best to summarize it. I think one of the big things for me about the, my positive experiences with computers has been a lot of my work has been bringing things together, like associating things and seeing things in new contexts. So again, I'll get back to the context word. And I think that
Starting point is 00:25:01 having, building a lot of context is kind of hard to do. Usually we have to do it manually, right? We have to read a lot of books or we have to learn deeply about a subject. We have to dive in and kind of gather. You do this on your website, I see. You'll do a deep dive on a certain topic or a deep dive on an author or something like that on their work. And you'll try to summarize it and bring it all together.
Starting point is 00:25:27 And that's wonderful work, but it seems, it seems really hard. Like it seems like it's, it's taxing to do that. And, um, so one thing that I wanted to do is to make it really easy to, um, make it really natural, I guess, to bring together context, to bring together related work, to bring together comparisons and contrasts, to be able to... Edward Tufte, the data visualization person, he's written a lot about data visualization. He talks about kind of like two major rules. One is show the data and the other is show comparisons. Those are like the two kind of laws of tufty almost. And in computers, like we have a few ways of making associations and we have some ways of seeing data, but we don't have great ways of really combining the two. So that's what I've been trying to do.
Starting point is 00:26:20 And while thinking about this, I'm designing the app in Sketch. Sketch is a graphic design app that a lot of software designers use to draw pictures of user interfaces that then they hand off to a developer who has to translate the Sketch file into a thing that the computer can understand, which, as you can tell, I think is an absurd conceit. But we don't have good tools to do that for us yet. So anyway, I'm using Sketch. And one thing that I absolutely adore about Sketch is that it's on an infinite canvas. It is this zooming infinite canvas, kind of like a map almost, like a Google map or something. And I really love that. I absolutely adore that because it's really easy to put things in context. It's really easy to put things in context. It's really easy to just like copy an object and put it beside another object. Now you can like see which version you like better.
Starting point is 00:27:12 And it's really easy to be like, oh, I worked on this thing like a week ago. And you zoom out and now you see a high level view of everything that you've worked on in the last little while. And then you kind of spot like a mini version of it up in the top corner. So you zoom into there and you're like, yeah, that was the thing I cared about. And you're like, wait, what are these things beside it? And you're like, Oh, I'll grab all this stuff. And then you draw a rectangle around it and you just copy it. You zoom back out to your overview. You zoom back down into like where you, where you're currently working and you paste it. And now it's
Starting point is 00:27:40 there. And now that you have that context and that is like us that's just really underappreciated in my book as like a way of gathering and just like just just grabbing stuff together quickly your stuff has a physical place like it's yes it's a fictional computer interface but it's it's there it's up and to the left or it's it's down and to the right or wherever it is it's it's it's there and it stays there and you can kind of rely a little bit on your spatial reasoning because you your your sketch document is a map it's and it works the same way as a a map of the earth would yeah well it sounds like uh the memory palace technique it just kind of maps directly onto
Starting point is 00:28:20 how your brain stores information what's the the memory power? I'm not familiar with that. It's a, like a thousand year old technique for, uh, uh, increasing the size of your memory. So you, you think of a place,
Starting point is 00:28:34 you know, really well. And so you're trying to memorize something. And so you go to a place in your memory palace and you put thing like mentally, you put something in that place. And so then when you try, when you're trying to recall whatever you're trying to recall you kind of walk through your memory palace and see what you put in various places because you know human brains are very
Starting point is 00:28:52 spatial right that's fantastic i've never i've never heard of that before but that's really interesting and and kind of as a meta note like having this conversation will by talking about it with words is is a little challenging to like, keep all the hops in mind. Right. But like, if you had this document, you'd just, you'd see it, you'd see it right beside each other. And maybe, um, so I was thinking a lot, I was thinking a lot about that. And I thought like, like, okay, one thing that would make sketch better is if you could, um, use hyperlinks, If you could like zip around a little bit, you know, still have the zooming,
Starting point is 00:29:28 but like let you zip around too. Sounds like Prezi. And then, what's that? Sounds like Prezi. A little bit, yeah, a little bit. And then I was like, well, what also would make it great is if, you know, these shapes that you see and work with
Starting point is 00:29:42 are like actual objects and like you can program them and stuff. So that's, that's what beach is. Beach is there. Um, so it's, it's a graphical environment. Um, I'm kind of loathe to call it a programming environment in some ways. Like it, it is, you do program in it, but I, I worry that attaching the word programming environment to it, uh, brings up a lot of things in, in most people's minds. You know, these days programming, when you say it's like a programming environment for kids, they're like, oh, sweet, learn to code. And I'm like, no, no, no, no, no, it's not. Please do not use this as a learn to code environment. That is like one of my biggest fears that somebody will
Starting point is 00:30:17 use this as a way to like teach for loops to children in like a, like in a one December hour, they will do this. And I, I disagree with that vehemently. Um, I, I would love, I would love to have teachers use beach when it's, you know, when it's ready and usable by, by everybody. Um, I would love to have teachers use beach, but I, I would, I want them to use it as a way to teach science or to teach art or to teach, you know, anything but programming, essentially, you know. I like that framing. Yeah. And that doesn't mean that you won't learn programming, some programming skills while using it. Like, you're going to give behaviors to objects in the system to make it do stuff.
Starting point is 00:31:03 And that means you have to program something. But the point isn't like, oh, like learning what an if statement is or learning what a loop is or anything like that. That's like learning what a comma is or a semicolon in an English writing class. They're useful in as far as it helps you get your job done, but it's not the point.
Starting point is 00:31:24 Like if you read Kurt Vonnegut and all you take away is how he uses semicolons, like you failed. You've completely failed at learning what's important about Kurt Vonnegut. And similarly, like if you teach programming and all you teach is for loops and if statements and stuff, you failed at teaching what's important about programming in an educational sense, at least. Yeah, that makes sense. Because for me, Kurt Vonnegut, ho-hum is really what he's about. There you go.
Starting point is 00:31:52 There you go. So I'd be curious. It sounds like I get your perspective now on being very anti-learn-to-code, and I see why. And I'm curious how your thoughts have developed here because unless I'm mistaken, I think I saw you developed in a one hour like code org week of code exercise. Yeah, that's a deep, this is it.
Starting point is 00:32:17 We're going into Jason Brennan deep cuts right now. I did that when I was at Khan Academy. That was the first project I worked on at Khan Academy. I joined their computer science education team. Was this pre or post Brad Victor Learnable Programming essay? This was post. But you knew what you were getting into. Oh, yeah.
Starting point is 00:32:37 And that was fun because I came in kind of as an outsider of like, you know, so, so for those who haven't read the essay, the essay, um, Brett had this talk that came out earlier in 2012 and it was called embedding on principle, which, which Steve already mentioned earlier. Um, and, and in this talk, Brett shows off a few demos of his principle. His principle is creators need to have an immediate connection to what they're creating. So usually that means they need to see it. And one of his demos was a programming example where you had like a picture on one side and you had the code on the other and you would like type in the code box and it would change immediately.
Starting point is 00:33:13 The stuff would update on the picture immediately, which is different than how most programming works today. And like it builds something and like it build something and like it build and then like wait for your program to run. So anyway, Khan Academy saw this and at least what they what they put out publicly about is they saw this and they were like great like let's just use that let's make a programming environment that does that that's awesome and it is an awesome environment but they kind of didn't in my
Starting point is 00:33:39 opinion they didn't take what um what brett was really about, which was like, again, context. Like the Khan Academy thing just has like a JavaScript function and then like, you know, maybe it's like draw ellipse and then it's like 50, 75, 75, 100 as the arguments to that function. And the Khan Academy teaching thing was kind of like, look, you can drag on these numbers and change them and see what happens in the picture. And I think that that was like anathema to Brett. Brett didn't, Brett was not a fan of that. So he wrote this learnable programming essay that was kind of talking about, about what he meant, like giving it more context of what a learnable programming
Starting point is 00:34:19 environment would actually look like. And, and the summary is it's not, it's not about dragging numbers and seeing things update instantly. That's like a minimum barrier, like necessary, but not sufficient sort of thing. Uh, what's really important is like, well, what, what the hell do these numbers mean? Uh, what, like, how can we show what these numbers mean? How can we give context to learners such that they don't have to like randomly press buttons and drag things around to, to like see what, what things mean. Um, so anyway, I, um, I joined, I joined that team that, that built the thing that Brett was critiquing. Um, I joined that about two years after, after the whole critique thing. Uh, and, and it was really interesting to come into that team with, with, you know, my, my clear adoration for Brett's work and to see what they're up against.
Starting point is 00:35:09 They came from a background where they were very focused on teaching JavaScript. They taught it using... Processing JS. Processing JS, yes, that's right. And so they had very specific goals in mind of like, that's what they wanted to teach. And it's kind of hard to teach that, to teach processing JS or JS at all well, when you're trying to apply principles that really don't agree with standard programming. Um, so anyway, it was fun working on that team. I worked on, on a weird, weird project there. It was, it was a, a blocks based version of their hour of code stuff. So they, they made, we, I designed, um, the ugliest thing it was, Oh my God, it was ugly. Um, I designed this, this like blocks based drag and-and-drop JavaScript environment
Starting point is 00:36:05 that we used to do an hour of code experiment on iPads in Safari. And it was fun. I mean, thankfully, I was working with this guy who was pretty good at JavaScript. His name was John Resig. He was on the team. Yeah, I bet he's pretty good probably. He was all right.
Starting point is 00:36:24 He was okay at programming JavaScript. So that was nice. That made things a lot easier. And so obviously he handled it quite well, every design that I threw at him. We can say for people who don't know, this is a creator of both JavaScript and Processing.js. No, no, sorry, the creator of jQuery and processing JS.
Starting point is 00:36:45 Oh, sorry, and when I, my Freudian slip there is, for a while, jQuery, like, kind of was JavaScript, but JavaScript has caught up, and now JavaScript is, you know, we don't need jQuery as much. But anyways, continue. It was a fantastic contribution, and it was well needed at the time, and I think, like, it's nice. I think it really set the stage for JavaScript for the last 10 years, basically, And I think like, it's nice. It's set it, I think it really set the stage for
Starting point is 00:37:05 JavaScript for the last 10 years, basically, which is like, what an accomplishment. Like you, it's hard, it's hard to argue with that. Yep. So anyway, it was really interesting to work on this project because it was kind of a battle between like, well, this was a hastily done project and we didn't know what exactly what our priorities were. We just kind of wanted to experiment, like getting something out. Could we do drag and drop in the browser? And on an iPad, that's extra challenging because the iPad has all these screen gestures.
Starting point is 00:37:37 So if you're trying to do something where you move your finger from the left side of the screen or the right side of the screen or from the bottom of the screen in Safari on an iPad, that's going to invoke basically a gesture that's out of your control. So we originally had like a library of blocks, like you might see in Scratch or Hopscotch or a similar language on the left-hand side of the window. And you would drag one of those blocks into your like block canvas. And then you'd see the picture update on the other side.
Starting point is 00:38:08 But it turns out if you're trying to drag from the left-hand side of the screen on Safari and an iPad, that's going to actually invoke the back gesture in the browser. So now you've lost all your work. And so, and we couldn't really do it on the right-hand side of the screen either, because there was a forward gesture there sometimes. So we ended up having to like put the, the tool box in the middle of the screen, which just like doesn't make any sense if you're looking at it and unless you try to use it. And so there were a lot of it was a it was a hard project, but it was just kind of fun to push the limits of the browser at the time. Yeah, so it was good. Cool. So at the time you were working on this project very much in the teach kids to code space,
Starting point is 00:38:46 did you feel the same way then that you do now about teaching kids to code an hour of code or have those feelings kind of developed over time? I did. And I was excited to join that team in a position where we could explore new things as well. I was really excited about thinking about programming as like an educational tool, essentially. Not as like education to think about programming, but programming to think about education. And so I was looking forward to experimenting
Starting point is 00:39:18 with that down the road on like exploring that, essentially. So that's where the, uh, the aforementioned druthers project came from. Um, that was, that was a hack week project that I did at Khan Academy. That was like, if I had my druthers, I would be working on this. And this was a very passive aggressive naming. This was a programming environment on the iPad. That was, it was an app and it was, it was, you know, inspired by eToys. I was mostly trying to learn, like learn what works, what gestures work, what, what makes for, um, what, what can I do in a week essentially? And then it's hard to build a programming environment in a week. It's hard to build one in a year, but, uh, it was still very,
Starting point is 00:40:00 it was a good learning experience for me at least. So was this pre or post hopscotch for you? This was post hopscotch. This was the, this was a few months after hopscotch. So, so it had all stuck with me. You know, I, it's kind of like an unbroken, an unbroken line the whole way through. I was wondering if we could go into some technical questions about beach, but maybe now that I hear that you're maybe still in the sketch prototyping phase, they're a little bit premature. Yeah. Um, I, I can talk a little bit about that. Um, because some of it, some of it matters, some of it doesn't. Um, so it's, it's right now a research project where you're right. It's a lot of prototyping. But I also have made the mistake in the past of prototyping things too much and not getting them into people's hands ever.
Starting point is 00:40:54 And that usually paint yourself into a corner when you do that because you're like, oh, I know how it works. But you have to do like it's broken and you have to do this weird jump through these hoops to get it to do anything. And it can really only do the specific things that I've programmed it to do like it's broken and like you have to do this weird, like jump through these hoops to get it to do anything. And it can really only do the specific things that I've programmed it to do. So it's, it's good. It's good in some ways to like get a few ideas out into the world, but I think to really learn an effective, um, to learn if you're effective, you have to let other people use it.
Starting point is 00:41:21 So I, I, my intention is, although this is a research project to get it into the hands of, of people so that they can use it and play with it. Um, so my, my current, uh, technology stack is, um, I'm, I'm targeting the Mac, I'm targeting a Mac app and I'm, I'm doing this because I think that there are certain things that are really hard to do on, uh, on an iPad, on a tablet, you know, there are things like pointing accurately with a, like with some sort of pointing device. And while it's great that you can like pretty naturally point your fingers at things on an iPad, um, it's hard to pinpoint something. And the Apple pencil is a great way to do that, but not everybody has an Apple pencil
Starting point is 00:42:02 who has an iPad. So it's, it's, it's kind of hard to design that you, you, you often for iPad apps have to go with the lowest common denominator with like what people are going to have. Um, but with a Mac, you, you know, that every single Mac user has a pointing device, whether it's a mouse or a trackpad, they have one. And so that enables you, that lets you do a few extra nice things of like getting accurate pointing so that you can, you can which brings me to another thing that the Mac can do that an iPad can't easily do with hover. Of course.
Starting point is 00:42:33 Yeah. Hover is like, hover is the unsung hero of the personal computer. It's it's a way that you can, I mean, I know what, I know everybody knows what hover is like when you move your mouse over something, but why, why I love it so much way that you can, I mean, I know what, I know everybody knows what hover is like when you move your mouse over something, but why, why I love it so much is that you can interact with things without like committing to them. So you can, um, you can just roll your mouse over something and kind of explore data without actually clicking it, which means you can explore it really quickly. And you get this, this really nice feedback loop of like your eye sees something and then your hand
Starting point is 00:43:04 just moves slightly and it updates what your eye sees in your eye. You can then decide which way you want to move your hand more to explore this data set without like clicking, clicking, clicking, navigating, navigating, navigating. You're just like really, really kind of casually exploring stuff. And I think that that is that's really underappreciated in terms of information software or anything that you need to like explore a system. Um, and, and it's really hard to do on a tablet. The best you can do is, is do like a long press where you like hold your finger down on the screen and then like maybe move it. But then that kind of makes it harder to click on something because like you have to wait and there's just like a lot more hoops you have to go through. But yeah, so right now I'm targeting, I'm targeting the Mac and I'm targeting a desktop app instead of a web app, just because for practical reasons, like I'm better at developing
Starting point is 00:43:54 Swift apps than I am at developing web apps. And I, I don't really want to fight a browser right now. I want to just, I want to fight Swift if I have to fight anything. It does limit, you know, in some ways it means that not every, not every child who has a computer is going to be able to use this because they don't have a Mac necessarily, or not every child has access to a computer these days. But I do right now believe that out of, out of the desktop and the tablet, the desktop is a better environment for thinking right now. I don't think it's the ultimate environment for thinking, but I think it's better, better for thinking than a tablet. Oh, wow. Okay. Well, that's interesting coming from someone like, you know, someone like you, who's an expert on it's cause I know it so
Starting point is 00:44:34 well. I know it inside out and I've learned the shortcomings over the years and it's not that it's bad. It's not that, you know, there's nothing that you can do. I'm not one of the people who believes that you can't create anything on a tablet. You can, you can create lots of things on a tablet. I just think that you can create with a little bit more deftness on, on a computer if you're, if you're skilled with it. And I think that getting skilled with it is, is important. And that's obviously a hard thing to do. I have the advantage of being like, I've used computers for like 25 years, pretty much. And so I have a lot of experience that maybe eight year old children who don't have a computer won't be as experienced with. But I hope that, you know, this is hard fun. I hope that if it's
Starting point is 00:45:16 hard to learn that it's it's worth it. And that that's kind of my intention here. Got it. Yeah. Okay, cool. So that's good good i was i'm curious if you could go into um some of the like computational model so um i guess like one of the things uh one of the easy questions is is it a block-based programming environment text-based more direct manipulate direct manipulation based kind of like some of bre's demos? Have you thought through some of that stuff? Yeah, I have thought through that stuff a lot. And it's, it's an ongoing challenge. Right now, it's it's a combination of a direct manipulation and and sort of blocks. So it's direct manipulation in the sense that like, if you've used a drawing app, like sketch, or you or you know, paint or something like that, you'll feel right at home you have objects on the screen you can you know you have rectangles
Starting point is 00:46:08 and circles and lines and paths and stuff you can click on them and manipulate them like you would in in sketch or any other app like that um so which makes for like a really fun hello world hello world is just like drag a text object onto the screen and like type hello world and that's your hello world um but in terms of like how you actually program things it is currently right now more of a more of like a drag and drop blocks system um i i'm i'm trying to not make it look like blocks as much as i can because um i'm trying to draw a lot on on paper graphic design here. So if you look at like a newspaper or like a magazine, like it's this is a graphic design. And a lot of the time when you compare that to a computer, a computer is very boxy. Like there's a lot of lines drawn around
Starting point is 00:47:00 everything on your computer. Like I'm looking at my email right now and I've got like a line between every email in my inbox and I've got like a line where the message is and I've got a line around every button and I've got a line around like the search box and so on. And so like we've kind of, there's this trope in computer design where it's like, oh, the only way to separate objects is to draw a box around them.
Starting point is 00:47:21 And that's like what blocks are. Blocks are like lines of text that have like a box around them. And that's like what blocks are. Blocks are like lines of text that have like a box around them and usually a garish background color. And I find that that can be a little distracting. I think that the blockiness of blocks is not what's important about them. What's important about them is that like,
Starting point is 00:47:38 you don't have to type anything. The absence of syntax. Right, you know, there's literally, there's no syntax even. There's not even no syntax errors. There's no syntax because there's nothing to's no syntax even there's not even no syntax errors there's no syntax because it's there's nothing to like well there's no punctuation but there's words right there's words and there's there is an ordering but like the thing about blocks is like the the big thing about blocks is that like the the design of the ui um enforces
Starting point is 00:48:02 that like you it's like any other app. Programming is like this insane thing where your program is broken 90% of the time when you're working on it. Can you imagine if your Photoshop document was literally corrupt 90% of the time? Maybe not Photoshop, but can you imagine if your Sketch or Word document was
Starting point is 00:48:20 corrupt 90% of the time? You couldn't see any text. You couldn't see any text. You forgot a comma, you forgot a period somewhere. The first letter wasn't capital time. You couldn't see any text. You couldn't see any text. You forgot a comma. You forgot a period somewhere. The first letter wasn't capitalized. You can't see any of the other words or sentences. Right.
Starting point is 00:48:32 And that's only not absurd to us as programmers because we're just so used to it. That's just like what our reality is, but it doesn't have to be. It's just a choice. It's a choice because we've decided that that's acceptable and it's not as far as I'm concerned. So anyway, that's what appeals to me about blocks.
Starting point is 00:48:46 It's not the rectangularness of it. It's that. So a lot of this right now is drag and drop, but it's also on a big canvas so that you have a lot of space to put your program. It doesn't have to be really compact text elements. A lot of Scratch or Hopscotch even like still reads a lot like, like code, like it, it's graciously, you don't have to type it, but you know, there's
Starting point is 00:49:14 still like where you put the parameters is still kind of like, looks like parentheses, almost like it's a rounded bubble. And, and it kind of reads like, it reads like, like it's still a text programming language because we're so used to it. In designing Beach, it's been a constant experiment of being like, oh, wait, I actually don't have to do that anymore. I don't have to do this the way that we did it in Swift or JavaScript or whatever because I don't have to like, I don't have to build it this way. So one, one thing is like, um, in, in a text language like Swift, um, everything has to have a
Starting point is 00:49:53 precise name. So if you want to refer to a symbol, you have to use the exact same set of characters everywhere. You need to refer to that symbol, like its name or whatever. So if you call it, if you call the variable, like is hidden or something like that if you call it, if you call the variable like is hidden or something like that, you have to type is hidden everywhere. And you have to, with the same spelling, the same capitalization and everything, you have to keep it the same to refer to the same object.
Starting point is 00:50:15 But in a block space language, that doesn't make any sense. You could call it is hidden in one spot or shows the button in another spot or whatever. It doesn't matter because all that, like, that's just what we show to the user, to the programmer. But as far as the computer is concerned, like these can be the same object there. They point to the same address in memory.
Starting point is 00:50:37 The label is just a label like, and, and that, so it's stuff like that, that I keep having to go back to the drawing board and be like, wait, wait, wait, I can get rid of that. This is all a relic of a typed programming language that I don't need to have anymore. And that has been fun and challenging and has pushed the boundaries of what I've done a lot for my sense, myself at least. Yeah, I definitely feel sympathy with that view. I think if you look at my conversation a few weeks ago on this podcast, I was talking with my buddy Joe Cohen, and he was saying how in a lot of other industries,
Starting point is 00:51:16 we have good environments like Photoshop and Sketch are pretty good. And iMovie is like a pretty good piece of software. Yeah. But we don't have the equivalent of iMovie for programming. And potentially the reason is that when, like if you hired me to create a photo, a video editing software, I just, you know, believe you.
Starting point is 00:51:35 I'd say, oh, okay, like I don't know how to edit videos. I'm just a programmer. Like tell me what to do. But like when programmers are developing apps for programming, we design them, you know, we think we know how to do it because we know what programming is. And so that like, they all end up looking very much like, you know, the programming languages we already know. So it's almost like we need
Starting point is 00:51:52 non-programmers to help us and be like, none of that makes any sense. Like you have to make it more intuitive. Absolutely. Absolutely. And, and you have to adapt it for, for where people are in a way, like, um, it's kind of like making a door or a chair or something like that. Like you have to, you have to, when you're, if you're an industrial designer and I'm, I'm not, so I'm probably wrong about this in subtle ways, but if you're an industrial designer, you have to care about like what people are like, what, what size they are, how they move, how they, how they sit and so on for the goal that you're trying to accomplish. So if you're building a door, you have to make sure the doorknob's in the right spot
Starting point is 00:52:26 and that it opens in the right way and so on, that a person can operate it. And that involves having a lot of research and learning about how people work. But I don't think we really do that in programming languages very often. So one thing that Hopscotch did really well when I was there, and I suspect they still do it is we, we tested with people. We would literally go out into Madison square park and with just paper printouts of our current designs and ask people, ask strangers like, Hey, how would you like open this thing? How would you do this? And so on. Um, and I think that that's sorely lacking in a lot of, a lot of programming research. You know, a lot of it is a, a lot of programming research is about efficiency or like, how can we like make sure this metric goes up or how can we make like type safety better?
Starting point is 00:53:14 And those are great things for, for software languages that like professional developers use, but they're like terrible for like a children, a child who's trying to create something or explore a system or something like that. Like that's not what a kid needs at all and shouldn't be either. Yeah, I couldn't agree more. And I can actually vouch for the fact that Hopscotch tests with real live users because when I worked at the coding space, the afterschool program I helped start in New York, Hopscotch came, sent some engineers to do user interviews with my students. So it was really fun to watch.
Starting point is 00:53:49 And the students loved it. They were so excited to get to try a new programming environment and talk to the people who created it and give their feedback. So it was good all around. Yeah. And I think one of my goals, and actually I have to, again, credit your earlier podcast and the episode with Samantha John on it. Sam's episode was fantastic.
Starting point is 00:54:10 If you haven't heard it, you really should. She's she's a brilliant thinker. And she talks about she talks about some of the designs that for the new hopscotch hop that they're currently calling it and she talks about how she had this this this kind of like list of of things that you should be able to make in hop uh like with without a whole lot of guidance and and one of the things was um a video game so i think she was talking about candy crush and she talked about i won't spoil the whole thing but she was talking about how like getting a child to do game design is so interesting because it forces them to think about how people learn and how people can like learn to play a game and how they should,
Starting point is 00:54:49 like what affordances you need and so on. And she also talks about, um, making a programming language in hop. And I, I have to, I can't recommend that enough to people that whether you're doing it in hopscotch or whether you're doing it in Swift or JavaScript or whatever your weapon of choice is, that building a programming language, especially for children, is such an eye-opening experience. It will expand your mind in so many ways, both in terms of what I've been talking about of like, you'll get to learn how children think and how they learn and so on. But even just in terms of implementing one, just learning how to implement your own programming language is, is kind of a, it's a very mind opening experience to, to think about how it works on the inside. And, um, I used to find programming languages very intimidating. You know, I took a compiler class in school and I ended up dropping it because I couldn't handle
Starting point is 00:55:40 all the type theory and I couldn't handle, you know, formal languages and stuff like that. Um, but the beauty of how something like hopscotch works is there's no, there's no real like compiler in it. There's no like parser. There's no like formal language thing that goes through. It's essentially, um, to, to grossly simplify it. It's essentially just working on an abstract, abstract syntax tree at all times. So you're, you're like view hierarchy of blocks where they're nested in and so on.
Starting point is 00:56:07 That's just like your tree and you just go down that tree of views and execute things. And that's like how you make the programming language. So that part, once I came to that realization, like once Sam explained that to me of like, oh no, there's no magic here. Like that's just what we do. It kind of blew my mind
Starting point is 00:56:24 and it also made it seem that much more approachable to me. And so I want to get that message out to anybody who's listening, who's maybe on the fence about trying to do their own, that you really should. It's a great experience. And it's not as hard as it seems, or it's not, it's at least not hard in the way that it seems, I think, at first. So yeah. Yeah, I would agree with that. And and obviously there are like ways to start making programming languages uh that are slightly easier for example making a programming like a library or framework that's what i ended up doing with like this this framework wolf js i guess like jcord like or react when you make a like a javas framework, that's like, because of the deficiencies
Starting point is 00:57:05 in JavaScript, when you make a, like a kind of an all encompassing framework, it's, it's almost like creating a language. Uh, so that's, that's like a good way to get started. And that's, and that's probably why there are so many JavaScript frameworks out there. Well, I, I will say there's, there are a lot of benefits to reinventing the wheel sometimes. I would say reinvent the wheel while educating yourself about the wheel. Yeah, there you go. Reinvent it to learn about how wheels work, not just to be a me too. I kind of like to use the analogy of as programmers, we reinvent things a lot of the times just because we think we can do like one aspect of it slightly better.
Starting point is 00:57:48 And, but I think that's kind of like, you know, like a to-do app or something like that. But I think that's akin to like opening your own restaurant because, because you think you can do huevos rancheros better than like other restaurants, which is like, you know, maybe true, but also you have to open a whole restaurant in order to do that, like to get to that point. This metaphor has gone pretty far, but my point is that like sometimes it's worth doing it for the sake of learning, but, you know, maybe don't pour all of your effort into like reinventing something that exists exactly the same way just so you can make your own,
Starting point is 00:58:24 unless you're doing it to learn would be my kind of preachy advice here. Yeah. So one thing to ask maybe another question about Beach, I'm curious to hear about the computational model. Oh, yeah., as much as possible, everything is an object in beach, which is like a, it's like a fun catchphrase now for programming languages. Where have I heard that before? Yeah. Now I say as much as possible because I'm not yet willing to go to the extent that something like small talk does like small talk is militant about everything is an object and for good reasons,
Starting point is 00:59:06 but it's also probably out of my wheelhouse right now to do that. So Smalltalk, like literally everything is an object. Like the whole operating system is an object and it even like writes itself. Like I think Smalltalk is written in Smalltalk but it like knows how to generate a C project that will compile into itself or something.
Starting point is 00:59:26 I still don't quite understand it. I haven't taken enough drugs to fully grasp it yet. So the idea is that everything you see on screen in Beach is an object. So your shapes and colors and labels and everything like that, those are objects, which means you can select them and you can do stuff to them and you can program them and you can, uh, manipulate them in, in any kind of way that you could program something normally. Um, and the benefit is that, um, you know, the, the language is automatically homo iconic because even the objects that you program with are objects. So like your script.
Starting point is 01:00:06 So if I make a typical basic learning to program script of like move forward and turn, and then do that in a loop, so you make a circle. That's kind of like a very straightforward beginners program. I have two objects here. One is like, well, I have multiple objects, but I have two parts of my script. I have like a move instruction
Starting point is 01:00:30 and I have a turn instruction. Well, both of those objects are themselves, like both of those instructions are themselves objects. So when I'm picking like who to send those messages to, like the move message and the turn message, I can pick an object in my canvas. Um, but because everything is on the same canvas, I can also like pick the instructions themselves. So you can write a program to move things in circles that moves that program in
Starting point is 01:00:54 circles if you want. Uh, which like, it's not useful, but it's, it's really fun. It's like really fun. And you can break, you can break the app in some very, very funny ways that way. Um, so, you know, you, I, I made a script the other day that was, um, that was like following my mouse cursor. Uh, so it would make an object just turn towards and move, turn towards and move towards wherever my mouse was at the time. And I was just sending it to like a rectangle on the screen or whatever. And then I was, I was thinking about it. I was like, well, I can, I can actually do this, um, to the, to the whole canvas itself. So now like, as I move in my mouse, like the script is turning and like coming towards my mouse and like everything is following my mouse in the canvas that I like send this message to. So it's, it's
Starting point is 01:01:41 kind of fun that way. Um, the purpose, the purpose isn't just for antics. The purpose is that like, it's a holistic thing. Like everything in this environment is for you to fuck around with basically to mess around with. Um, yeah. If it's for kids, you got to use appropriate language. Oh, I'm just kidding. I think kids have heard worse, but again, all in context, those words are fine. if you're using them in the right place in the right way. Parents may disagree, but that's my philosophy on it. But I want to get to a point where even the window of the app you can mess around with.
Starting point is 01:02:19 And the reason why I want you to be able to mess around with this is partially because it's fun, partially because I want you to feel like you're the authority, like you're, you're in charge of your own world. Um, and that's important in learning. Um, that's another thing I glean, I've gleaned from Mindstorms, Seymour Papert's Mindstorms book is the idea of like giving children a sense of autonomy and, and like really examining the power structures that a computer imposes on you. You know, um, this is another thing that I've gleaned from Brett's work is that like, you know, I, I use a computer, but it's not really mine. It's Apple's computer. I own it, but I can't control the operating system, you know, in every way.
Starting point is 01:03:03 And that's, that's disempowering in a lot of ways. And most computer users are fine with it because that's what we're used to. But like, I think, you know, you have to, for me at least there's so much positive, like the computer for me as a child was so empowering. So obviously it could be more empowering, but I think what I got from Seymour's work. And when I say what I got from Seymour's work and when i say what i got from seymour's work as a as an adult was like reading about how how it switched the power dynamics so like i don't need a teacher i can teach myself things with a computer but as a kid i got those things because i was learning logo as a kid and i really got those things viscerally because i felt
Starting point is 01:03:39 very disempowered especially in math classrooms um it was the worst but then you know learning math on a computer with logo i was so empowered so um right to me yeah like i think what you were saying it's like a pessimism versus optimism thing to me it's so powerful and then it sounds like what you're doing is you're taking logo and you're making logo even more customizable yeah yeah i i really want to get get into the ethos of like make your own tools. So I want to supply some basic drawing tools and editing tools and stuff, but I really want to encourage kids to make their own. So maybe I'll include a stamp tool or something like that, where you can make an object stamp itself somewhere else. But I would encourage children to make maybe like a mirroring tool that will draw a stamp,
Starting point is 01:04:26 but in a mirrored mode so they can make their own kinds of like kaleidoscope drawing apps and stuff like that. Like I want it to be a natural thing where that's, it's as easy as programming anything. It's like augmenting your environment so that you can make these new tools. And they don't even have to be great. It can be a throwaway tool. It can be like, oh, I just like, I'm doing this project with an anthill or something. And I need to make like a really good, like duplicate tool that makes sparkles come out of the ant's butts
Starting point is 01:04:52 when they, they spawn or something like that, you know? And I, I just want to make that very straightforward so that children can like add these and more importantly, they can share them. Um, so that's, that's like the big missing component right now is having this be networked. That's like my goal. It's not, I don't have anything working yet for that. But the idea is that, you know, this is hypermedia and it's hyperlinked
Starting point is 01:05:16 not only within itself like a wiki, but also with other people's projects. And just like I was talking about earlier, you can navigate your sketch file and like see something up top and to the left and then like copy it and bring it back down into where you're working. I want you to be able to do that with other people's projects as well. I want you to be able to say like, Oh man, Steve made a really cool anthill and I want to like steal, I want to like put it into mine and compare it. So now I can just like go to your,
Starting point is 01:05:43 your beach and like that you've published your beach. I see. I wanted to beach and, or, you know, I'm not sure if that's, that's quite what I'll call it, but for now we'll call it a beach. And I want to go to your beach that you've published and say like, Oh, I really loved his anthill. So I'm going to like grab it and put it in mine. And then because everything is an object, I can just like shrink it down like a graphical object, like scale it down and then put it in an active essay. I'm doing up my final report for my project and I'm like, OK, here's how anthills work. And I've dragged pictures in. But I've also and I've got my simulation at the bottom and then I've got Steve's simulation at the bottom, too.
Starting point is 01:06:17 So I can compare the two. And then, of course, I can like link the data from those simulations into my active essay so that like when my teacher reads it, they can, they can see like what exactly I'm talking to and like go to specific scenarios of like, this is what the anthill does when there's no food. And this is what it does when there's lots of food and see Steve's handles better than mine. And like, here's the things that I can learn from Steve and so on, you know, that's, that's kind of like the vision that, that I'm after with this. Like that's, that's to me what a computing environment should be. And anything less than that is just, it's a shame. Like it's, it's a shame that I can after with this. Like that's to me what a computing environment should be. And anything less than that is just, it's a shame. Like it's a shame that I can't do that right now, that children can't grow up doing that.
Starting point is 01:06:53 And I want to fix that. Yeah, very empowering. Yeah, it sounds almost like, yeah, like a combination of Scratch and explorable explanations. You know, because for me, I'm very familiar with Scratch. I'm very familiar with Brett's work. So it sounds like a kind of a combination of a lot of features from both of those kind of schools of thought. And that's like one thing that Scratch just excels at is their community.
Starting point is 01:07:20 Their community is fantastic. And it's so generative. You know, like we had a community at hopscotch when i was there it was it was a we were starting on it and it it's good now it's great now my goodness i have my students who some of my students all my students are scratch kids because that's kind of like scratch is like the big centerpiece of our curriculum um but we have a few who just you know they're like scratch is the worst hopscotch best. Really, really into the hopscotch community and winning awards. Yeah, I think they're doing a great job over there right now. Yeah, and so that is like such an exciting thing as a kid to have this source of ideas,
Starting point is 01:07:57 to have this source of encouragement, to, you know, to discuss what you're working on, to ask for feedback, to ask for help, to be able to see what other people are working on. Um, and, and you get to encounter big ideas too. Like one thing that, that we learned early on in the hopscotch community was that like some kids are taking issue with our stance on IP on intellectual property, where they're like, Oh no, she copied my project. I worked really hard and she stole it. And we had to be like, well, this is in, in our community, we've decided that this is open and that everybody can copy everything. And like, uh, that, that is something that children may have not encountered at that point. And like, that's really cool to like have discussions about that and to get a kid thinking about that there, they might not think about that
Starting point is 01:08:38 before, you know, the whole, uh, I'm not sure if you've seen the talk, uh, or the video, everything is a remix. Um, Everything is a Remix. You should check it out. It's not programming related, but it's about media and how it works. It sounds like it's a talk Mitch Resnick would give. Yeah, I'm sure he would. It's definitely in the same vein. And anyway, it's a fantastic talk. Scratch, remixing others' games.
Starting point is 01:09:01 Right, right, right. It's called Scratch because it's scratching records. Wicked, wicked. Yeah, yeah. remixing others games right right right called scratch because you know scratching records um yeah yeah um anyway it's really exciting to get to get kids to confront these things and to to work through them and you know maybe some kids generally feel like i don't want other people to use my project and that's that's a real concern and that's a valid concern but it's also about it teaches them a literal sense of community of like, okay, well, if you want to participate in this, this is, these are the rules of our community. This is how, how we get along. And we would like you to, we would like you to, to learn and make that work for you as best as you can, uh, is, is really exciting. And so, you know, I'm not quite sure what shape the beach community will take. Um, I, I'm not really a fan of streams. I think that a lot
Starting point is 01:09:47 of things like the Scratch community and the Hopscotch community is kind of still stream-based. It's kind of like you have this scrolling list, this infinitely scrolling list of stuff that happens in time. It's a reverse chronological usually. And that works for a lot of things. It's good for getting people to come back to your app a lot, but it's also not the only way to look at information. So I, I take after the web and the web is a, a web. It's a graph of,
Starting point is 01:10:12 of different things. Whereas the stream is just kind of like a list. A web is interconnected parts that maybe are ordered in a, in a stream and a list, but not necessarily. And that's, that's like where I'd like the beach i'm kind of now imagining the beach community kind of built in beach and like you you just like land on the
Starting point is 01:10:31 main beach and then you kind of can go to other beaches from there yeah yeah um and i mean beach is such a i'm gonna toot my own horn here um it's it's like a really fun metaphor to the, the name beach. So I chose the name beach, not because of any of the following metaphors, but I liked it anyway. So I stuck with it. So the, the real reason why I called it beach, um, there's a, uh, a song on an album on a Neil Young album called on the beach. And it's, it's my favorite Neil Young album. And I was listening to it and I was like, you know, a beach would be a cool name for, for my programming project. Uh, and then I thought about it some more over the next like couple of album. And I was listening to it and I was like, you know what? Beach would be a cool name for my programming project. And then I thought about it some more over the next couple of days. And I was like, no, beaches are great.
Starting point is 01:11:12 It's a place where people come to play, usually children. You can make models in the sand. It's very accessible for that. It's usually wide. A beach is usually wide. So you've got a lot of like breadth and you get as much depth as you want slash as your ability allows you to have. So you can wade into the water and it's usually a gradual experience of the water getting deeper
Starting point is 01:11:35 as you grow with it. And as you, you get better at a beach. And so with like all of those things in mind, I was like, Oh, this is a great name. So I'm going to, I'm going to stick with that. And plus it's, it's short and catchy and most people like beaches. So it worked out well. Yeah. Yeah. That, that sounds great. So I have maybe one or two more questions for you. I want to be mindful of the time here. So, so this, this is, at least for me, this is always the hardest question. So sorry to save it till last. So I also have uh
Starting point is 01:12:06 designed programming language type things for kids and the biggest challenge that i have is allowing it to make things that kids actually find uh in intrinsically motivating to make and something that they don't have to make for class so at this point i almost find that like making games and animations is like a little tedious for kids that like a lot of don't have to make for class. So at this point, I almost find that making games and animations is a little tedious for kids. A lot of my kids want to make things that are actually in the App Store or that they can charge someone's credit card for. Or a lot of my kids want to make hacks or phishing websites
Starting point is 01:12:38 where they convince their friends to put in their email credentials. Kids want to do all sorts of nefarious things with computers that yeah like i wouldn't condone like you know i don't know if parents and you know creators of programming languages for kids would be happy about so i i always struggle so if you're going to really eschew the programming you know teaching kids to code for the sake of teaching kids to code and you really want to let kids do what they want to do with computers which i think scratch did really well i'm curious want to let kids do what they want to do with computers, which I think Scratch did really well. I'm curious what sorts of kids and what sorts of activities your, you know, Samantha John talks about like how there were 10 things that she wanted, you know, she had in mind
Starting point is 01:13:14 for the creation of Hop. So what are like the 10 or five things like to do MVC apps that you have in mind that you want to enable kids to be able to create? Yeah, that's a great set of questions. Well, I'll start by saying that after I listened to her podcast episode, I basically just cribbed that I just like made a list of things that I wanted to do. I was like, this is a great technique. I'm going to do this exactly. And, and, and I started with her examples. I started with like a game. I did a Tetris attack or Pokemon puzzle league. It's a, it's basically like a
Starting point is 01:13:46 tetris style it's similar to candy crush where you have like things on a screen you have to rearrange them and get three in a row or more to like make the blocks fall away or whatever um so making games is making games is one i kind of sketched out like doing like a programming language in beach like how would you do like a lisp in beach or something like that? That one seemed not as fruitful because I, I decided I'd just come back to it later. Like maybe it's not a thing that a 10 year old wants to do. That'd be impressive.
Starting point is 01:14:19 If you could do that though, that would be cause like for me that what that says is like, you know alan k or influence talks about how the the like mccarthy one pager of list or lisp is like the maxwell's equations of software you know if you could do a lisp in beach you know you can do anything in beach really yeah that'd be cool yeah um and and yeah so what i realized while kind of thinking about that, or the conclusion that I came to, at least, was that, you know, there's like two parts to writing a Lisp. So I wrote one in Swift just to see, to get a feel for it. And there's kind of like, there's two parts. There's one is like parsing the text into a syntax tree. And then the second part is evaluating the syntax tree. So walking the tree. And so right away that stuck out to me is like,
Starting point is 01:15:11 oh, well, you probably wouldn't do the first part in Beach. Like the first part should happen. There should all be objects. It should already be a tree. Right. And so what that really means is the creation of a Lisp program in Beach doesn't really make sense. You would be doing some sort of beachy lisp you you would have you know you make maybe you
Starting point is 01:15:30 make your own blocks or something like that um and with with the system that i have of like hyperlinking you know um following a graph is just like programmatically following links between things so you like literally make a linked list of objects um and so that's that's how you that's how you would like navigate the syntax tree but the the real crux of the problem is like well now the the if a kid is trying to do this the the crux of the problem is like how do they design an interface so that you can program this structure so that you can like assemble this structure? That's like where the real meat of the problem is. And I would, I would think I would want to hire any kid who could do it because that's
Starting point is 01:16:13 like what I do. I have to make a structure so that people can make a, make an abstract syntax tree. Um, so that was like a fun thought experiment that I need to revisit at some point. But that's like asking a lot. It's not just like, run this, like figure out how to solve this equation or whatever. It's like, figure out how to design this interface, design and build this interface in Beach. And I will say something else that like most software developers, I suffer from the slight delusion that like everybody is going to use my software in the best way possible all the time and that it will never be harmful in any way.
Starting point is 01:16:59 So, you know, when you think about, you think about a company that's like, we're going to change the world. And like, what does that mean? That usually means like, we're going to change the world. And what does that mean? That usually means we're going to redistribute wealth to us somehow. And usually that means in order to do so, we're going to grab large amounts of your attention to do so. So anyway, what I'm saying is that things that sound innocent in our industry often aren't.
Starting point is 01:17:24 And it's not that the people who are doing it are necessarily nefarious. It's just that they had a view that all of their, all of their users, all of the people who are using their software fit a certain mold that would behave in a certain way. Like, like, let's get back to my comments on my website that we were talking about earlier. I, uh, you know, the reason why I did that, the reason why I put a limit of like, you must have X many characters before you can submit this comment, was because I've seen comments on the rest of the internet where it's awful. YouTube comments, it's just vitriol.
Starting point is 01:17:57 It's just like 200 pages of vitriol underneath every video on YouTube of the worst stuff imaginable because the people who design the comment system were like, Oh, I'm going to put this text box here so that people who watch the video can write nice comments to the creator of the video. And like, they can like learn more about it and stuff. And that's a really optimistic view of what will happen, but it's also a naive view. And I think most of us in the software industry suffer from that. So, so yeah, your question of like, how, like, what am I going to do? So like, what do I want kids to do with beach? And like, what do I do if they want to do nefarious things? Like, that's a great question because I'm sure somebody will having a, having a network service means that
Starting point is 01:18:39 there's going to be bullying and that there's going to be divulging of personal information. And there's going to be all of these, these things that I have to pay attention to if I want to like build software, that's good for people. Um, and that's a hard problem. So, uh, I think we, we talk a lot in our industry of like, Oh yeah, like this framework is great because you can build this app in a weekend or whatever, but that's horrible because like you can't, you can't build a proper app in a weekend. You can't build a proper app that's accessible, that, that is dealing with abuse, that is like, uh, localized for different cultures. Like you can't do it right in a weekend. You can maybe make an MVP that capitalism is fine with, but you can't make one that like
Starting point is 01:19:19 empathy is fine with. And, and that's like something that I care deeply about. So I don't really know yet. I don't really know how to stop, how to stop kids who may be misguided or who may be, uh, being abusive to other children on that. And that's, that's something that like, I will find an answer for before I unleash it on the world. Um, but yeah, that's, that's, that's a great question. Okay, great. Well, I got one more for you, also kind of on the difficult end of things, but I think it's relevant to a lot of people who do this kind of work.
Starting point is 01:19:53 So I'd be curious to hear about how you're thinking about, if this is like part-time work for you, full-time work, how you think about financially supporting this in the long term, is it for--profit and non-for-profit. It seems like it's a, it's very similar scratch and it seems like you're very concerned with morality. So it sounds like it's either a big corporation or a non-for-profit.
Starting point is 01:20:13 I'd be curious to hear about how you think about all of those things. Yeah. A lot of it's still up in the air right now. It's a side project right now. It's in my, when I, when I get an extra cycle that I can, I can focus on this, which unfortunately means it takes a lot longer than if I had full time to dedicate
Starting point is 01:20:30 to it. Um, I've, I've thought about turning it into a product of some sort, you know, selling, selling it for 30 bucks a pop or something like that. Um, that's pretty hard to do, uh, in this day and age, it's, it's hard to sell any kind of software, like even software that people are already clamoring for are already like, I need this software to fulfill this specific need. It's still hard to sell software to them. Let alone an app that's like, well, it's for children who don't generally have money. And it's also like not filling a specific need. There's no kid that's like, I need a computing environment where everything's an object and it's hyperlinked.
Starting point is 01:21:06 Like no child has ever asked for that, probably. And I am not great at marketing. So that right now is not quite where I'm headed. As I said earlier, this was started as a research project. And the idea is kind of twofold. One is, well, it's like threefold, I guess. As I said earlier, this was started as a research project. Right. And the idea is kind of twofold. One is, well, it's like threefold, I guess. One is to get this thing out into the world because I think it should exist.
Starting point is 01:21:37 And I think that children are being shortchanged with computing and thinking experiences that they have available to them. So I want to fix that. Another is I had been kind of rusty on this, you know, I, I, I had been working on some other projects and, and I, my line of work shifted a little bit where this was no longer my day job, just because of necessity. And, um, and so I wanted to kind of get back into the field to get back, contribute to research again. And, uh, and then the third, the third, like the third part is, is, um, you know, I, I have been very interested in working with, um, Alan Kay's research group, the Hark human advancement research community augmentation. Um, I was really excited and I've
Starting point is 01:22:21 talked to Alan a few times about, about collaborating and, and it didn't work out at the time for various reasons, but I was hoping, you know, to use this as a, as a way to say like, Hey, this is something that I'm working on. And if like, I'd love to, to work together with this, um, the group unfortunately shut down a few months ago. Yeah. Funding got pulled. I think, I don't know all the details and it's not important, but, um, so that, that group is, is currently not, not available. And so that, that Avenue has, has gone under construction for a little while, but, um, for them, for them, most part right now, this is a nonprofit. Um, it's not even an official nonprofit yet, but if it ever becomes a thing, it will be
Starting point is 01:23:08 some sort of nonprofit. I'm kind of scared of capitalism. I think we all should be. But I think that that's the best way to make humane software, which is what I think a lot of people on your podcast and a lot of the people who you talk to, uh, are really interested in. And it's not that you can never make a profit on this. It's just that I think, I think it's developing it as better served when you, you're not focused on profit for it. You know, if this, if this sparks something new that somebody else turns into a profitable thing, like great, let's talk. But that's not where I want my priorities to be right now. Yeah, that makes a lot of sense.
Starting point is 01:23:52 Yeah. Cool. Well, yeah, sounds like a really interesting side project at the very least. I would love to see it at some point when it gets more developed. So I hope that you find ways to work on it and get it out to do more. Cause I would love to play with it myself and see,
Starting point is 01:24:10 and I'm watching kids play with it too. It sounds like a really compelling vision. Yeah. And you know, I actually, I go back and forth on this a little bit on like, when should I share more stuff about it? Because you know,
Starting point is 01:24:21 it, there's a part of me that just wants to put up everything that I think every, every time I like do something new in a prototype that I think is nifty, I want to like put it on Twitter. I want to like share it with people. And, and so I think about that a lot, but I also think that, um, first of all, it's, it's so bad right now. It's, you know, it's ugly and it's got, you know, art only a programmer could love and it needs a lot of love. Um, but it's also, there's so many bits that are disconnected right now that I don't want to put something out that's like half baked in a way that will be misleading to people seeing it. But I also
Starting point is 01:24:58 at the same time care deeply about seeing people's process. So like, it's fascinating. It's fascinating to hear how people make something, how, you know, for, for anything. So I, I care a lot about programming languages design. So it's fascinating to see like, how was scratch design? How was small talk design? You know, how, how do these people go from day to day? Like, where do they get their ideas? How do they, how do they, like, what are their works in progress? Like, what did they throw out? Like what didn't work and why? And like, I'm really fascinated by all this stuff so i document everything i take i do screen caps of everything that i make i do i do kind of like a diary i just like write in a text file every day of like when every day that i'm working on this i write in a text file like
Starting point is 01:25:39 what did i do like where am i stuck what am i thinking and the idea is like one day when i when i feel a little bit more confident to publish this stuff that, that yes, I'll publish it in a more baked way, but I also want to release kind of like a, how, how I made this, like, how did I get from nothing to this? Cause it didn't, none of this just pops out fully formed. And I think that that's a like revealing, revealing how stuff is made is, is not done enough in our industry, especially in the programming for education space. So I want to do that more. I want to share that with more people. So that will come, but it's going to be a little while yet.
Starting point is 01:26:18 It's actually fascinating to hear that because, as I think you may know, I do something similar. You do? Well, almost the exact same thing in that I document almost every single thought. I have a journal that has thousands and thousands and thousands of words. And so you may have seen. So I do commit directly to a GitHub pages site. So it's all public, you know, every commit and push.
Starting point is 01:26:41 So it differs in that respect. And, you know, i thought i was doing something kind of unique which clearly it's not as unique as i thought um but uh but yeah i think it's fast if you zoom out like the the um i think there are a few other people i i stole this idea partially from jamie brandon who you may know he does work in this space too and i think it's kind of fascinating that we all do, that we all think our process is so interesting. I think we're all so interested in the process of people who've come before us like Alan and so we're, so we figure maybe someone will be interested in what we do one day. So we might as well keep track for them.
Starting point is 01:27:20 Absolutely. And you're right. Like I think what's important here, it's less about whether it's public or private. To me, what's so rewarding about keeping a beach diary is that it's not just about documenting my stuff. It's also I think through writing. Oh, of course. Same you know, there, there's no like idea fully formed in your head that you then transcribe. Like that's how I used to think it works, but I don't think it works like that. It's the act of writing it that, that puts that thought into words and, and then you see it out and you react to it and maybe you come back later and it means something totally different to you when you read it like a month later, you're like, what the hell was I thinking? And, and anyway, so that these kind of like meta processes are like so valuable. So I think it's great that you do.
Starting point is 01:28:06 I think you're setting a great example for other people who stumble upon your work. And yeah, it's a great idea. Yeah. If I may say so myself. Yeah, I think we're on the same page on that front. So anyways, I took up plenty of your time. Thanks so much for spending so much time with me.
Starting point is 01:28:23 This has been a lot of fun. You're welcome. This is great. Okay, well, spending so much time with me. This has been a lot of fun. You're welcome. This is great. Okay. Well, I'll talk to you later. Bye.
Starting point is 01:28:29 All right. Thanks. Bye. you you you you you you you you you you you you you you you you you you you you you you you you you you you you

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