MITCH RESNICK: Hi, I'm Mitch Resnick. I'm a Professor of Learning Research here at the MIT Media Lab, and I also direct the MIT Scratch Team. JOHN MALONEY: I'm John Maloney, and I was a researcher for about 11 years working on the Scratch Project as the lead developer. MITCH RESNICK: We call our research group the Lifelong Kindergarten group because we're inspired by the way children learn in kindergarten. The classic kindergarten, children are playfully designing and creating things in collaboration with one another-- buildings towers with wooden blocks, making pictures with finger paints and crayons. As we developed Scratch, we wanted to capture that kindergarten spirit for learners of all ages. JOHN MALONEY: One of the big motivations for Scratch was this project that Mitchell and Natalie had started called the Computer Clubhouse. And they saw a lot of kids doing stuff with media tools like Photoshop and various sound production tools, but they weren't doing any programming. The kids weren't doing any programming, and we looked around and said, well, why aren't they doing it? The answer seemed to be that there wasn't a tool that was appropriate for that setting. MITCH RESNICK: As we were developing Scratch, I was inspired by some of the ideas of my mentor, Seymour Papert, who developed the Logo programming language. Seymour always used to say that it was important for a new technology to have a low floor-- meaning it's easy to get started with-- a high ceiling-- meaning you could do more and more complex things with it. We also wanted to have what we call "wide walls," meaning there are many different pathways, that you can do many different things with the software. It's not enough just to be able to get started easily and do complex things if everyone's doing the same thing. We want to have many different pathways because we know different people have different interests, and we wanted everyone to be able to work on projects that grew out of their own interests. JOHN MALONEY: I'd like to say that we probably-- there's-- we considered about 10 times more commands and features than have ever ended up in Scratch. We would have endless debates about exactly what wording to put on blocks and things like whether the default direction of the sprites should be up or to the right. So we thought about all of these things, especially the very early experiences that people would have with Scratch and trying to make it so that things could be discovered just by experimentation. MITCH RESNICK: When we were first designing Scratch, our target audience was ages 8 to 16. JOHN MALONEY: On the low end of the spectrum, we found that much younger kids were using Scratch than we ever anticipated. I still remember one-- the first Scratch day, I think, that we had, this little six year-old guy came in. On the upper end, I've been surprised at, for example, the use of Scratch in college classes like CS50 because we didn't really think of Scratch as a language for teaching computer science to computer scientists. Another surprise is how many adults are using it. We found that people who are like full-time programmers enjoy programming in Scratch as sort of a hobby. And so we've seen people on the Scratch website create projects that do, for example, ray tracing 3-D rendering systems. I couldn't believe it when I saw that. MITCH RESNICK: As we started to work on Scratch, we want to make it different from previous programming languages in order to make it accessible to a much wider range of people. So we had three core guiding principles. First, we want to make it more tinker-able, so you could build up programs much like putting Lego bricks together. So we had the visual programming blocks that snap together. Second of all, we want to let people work on more meaningful projects, things that were personally relevant for them. That's why we make Scratch so media-rich. Third of all, we want to make it more social because you know a lot of the best learning experiences come when we interact with others. So we added the Scratch online community from the very beginning, right when we launched the software so that people would have an audience for their creations and also get inspired by what other people created. Since we launched Scratch, there have been around 4.5 million projects that have been shared on the Scratch website. JOHN MALONEY: So I actually joined the project by sort of pleading to Mitchell. I asked to join when I heard about it because I thought it was going to be such a cool thing, and I wanted to help. But my favorite language was Smalltalk, and I had helped develop this version of Smalltalk called Squeak. So I said, well, I'll come and do this work as long as I can build it in Squeak. And Mitchell said, oh sure, I don't care what it's made in. Just make it work. And so that's how it got to be written in Squeak. So with Scratch 2.0, we thought that we would try to make Scratch reach out to more people by making it a cloud-based app. And although there was a version of Squeak that ran in the browser, it required downloading and installing a plug-in. And we knew that a lot of people would have trouble doing that, either because it was a complicated process or because their administration at their school or whatever wouldn't allow it. So we wanted something that was kind of built into the browsers or was kind of by default there on most browsers. We considered Java. We considered Silverlight. We considered JavaScript, and we considered Flash. At that point, Flash was really on the ascendancy. Adobe was really pushing it, and we didn't yet know, you know, that it was going to be such a problem on iOS and mobile devices and so forth. So we went with Flash, and in retrospect, you know, it would've maybe been nicer if we'd gone with JavaScript because that's become the dominant language. But I don't think there's any way we could possibly have seen all the things that were going to change between then and now. It takes three years or so to put together something like this, so you make your best guess and hope for the best. MITCH RESNICK: One of our new projects is called Scratch Junior, trying to have Scratch go down to even younger kids. It's being aimed at age five to seven year-olds, like kindergarten to second grade. The first version of it will be on the iPod, and we plan to have it come out in the middle of 2014. So Scratch Junior will be a somewhat scaled down version. It'll have somewhat fewer features and also make things more developmentally appropriate for younger kids. JOHN MALONEY: I enjoy the fact that Scratch 2.0 especially is sort of secretly higher performance than you might imagine. By default, when you're doing animations and so forth, you're limited to the frame rate of the-- sort of the update rate of the screen, and we've designed it deliberately so that it only does a little bit per frame so that if you say repeat 10 move 10, you actually see it move in 10 little step-- 10 little increments. However, there's a sort of hidden mode, called turbo mode, which you can get by Shift-Clicking on the green flag, and that basically lets it run kind of as fast as it can. So this is what lets you do things like the ray tracer, and you don't have to-- the original ray tracer, you had to wait about half an hour to see the results because it was kind of chugging through one frame at a time. But with the Shift-Click thing, you can get the results in something like 20 seconds. So, all of a sudden, you can do sort of high level things in Scratch, but it's a hidden feature.