The Next Generation of Scratch

The MIT Scratch Team shares what’s next and what it means for the community

By My Nguyen

Since the release of Scratch in 2007, young people around the world have programmed and shared more than 15 million Scratch projects — with more than 22,000 new projects being shared in the online community every day. The first generation of Scratch was an application that kids downloaded to local machines. With Scratch 2.0, the second and current generation of Scratch, kids create and share their interactive stories, games, and animations directly in web browsers.

Now, the MIT Scratch Team is preparing to support that creativity in new ways, with a project informally called Scratch 3.0 — the next generation of Scratch.

At the Google I/O conference held last month, the Team announced a collaboration with Google to develop Scratch Blocks, a “new generation of graphical programming blocks.” For the Scratch Team, developing new programming blocks is a first step in the development of Scratch 3.0.

In addition to making Scratch Blocks available to other developers, the Scratch Team will use the blocks themselves to create an even more intuitive programming experience and to continue to empower kids to express themselves through technology.

The Scratch Foundation sat down with Andrew Sliwinski (also known as thisandagain on Scratch), Engineering Lead for the Scratch Team, to learn more about the development of Scratch 3.0 and its importance for the global community.

Who are you and what do you do?

My name is Andrew Sliwinski. I’m a Research Scientist in the Lifelong Kindergarten Group at the MIT Media Lab. I lead the engineering team for Scratch.

A few weeks ago at the Google I/O developer conference, the Scratch Team and Google announced a collaboration on the development of Scratch Blocks. In one sentence, can you tell us what the Scratch Blocks project is?

Scratch Blocks is the very first step that the Scratch Team is taking together in collaboration with Google toward the release of Scratch 3.0 — the next generation of the Scratch editor.

What’s the relationship between Scratch Blocks and the development of Scratch 3.0?

Scratch Blocks really just refers to the interface for the blocks. So if you think about the Scratch 2.0 editor, you have the stage where your sprites live and move around; you have the area beneath that where you have your palette of sprites; then you have the toolbox of blocks; and next to that, you have your workspace, which is where you bring in all of the blocks and build your programs. Scratch Blocks is just that second half. It’s the toolbox and the workspace, and the pieces of the interface that you control in those two areas.

There is still a lot of work that needs to be done, but we wanted to release this little piece because it has such a huge impact on the day-to-day use of building programs in Scratch. It’s the thing we’re starting with first because it’s so important to the experience.

Our hope with Scratch 3.0 is that there will be changes to the interface not only to make it easier to manipulate blocks to create games, animations, and all of the things the community loves to create today, but also to be able to connect and control the physical world.

How is the Team thinking about designing for mobile?

With smaller and smaller screens, it can sometimes be hard to pack all of these different interface elements into a small screen. You can’t just scale it — you really have to redesign it. So there’s a lot of work going into making sure that the experience feels really good when you get it on your tablet.

Scratch 3.0 has what we call two “grammars.” There’s a vertical grammar — which is basically the Scratch you know and love today, with some minor design changes. Mostly, those design changes are to make those blocks work better on screens with touch interfaces, like tablets. The other blocks, which were shown prominently at Google I/O, are what we call the horizontal grammar. And that really is an evolution of what we initially built for ScratchJr.

There’s a lot of advantages to the horizontal blocks. They work really well for people who can’t read yet — so, younger children. They also work really well on devices with small screens.

Pictured are explorations of the horizontal and vertical grammars of Scratch 3.0, respectively.

The thinking behind having the two grammars is one part making Scratch easy to use for everyone — particularly focusing on people who are just getting started with Scratch — and the other piece really is finding a paradigm for the blocks that works well on mobile devices.

You mentioned localization. How is the Scratch Team engaging the global community in the development of Scratch 3.0?

We’d love to see more engagement with the international community. Already since we’ve released the initial code for Scratch Blocks last week, we’ve seen tons of activity in the GitHub repo as well as through email from developers all over the world. It makes me happy that we’re already beginning to see some movement with the larger international community, but we’d like to see even more.

My hope is that over the course of the next few of years, we will find a way to further our engagement with the international community and will truly move from being a project that cares about translation to being a project that cares about localization and globalization.

Tell us about the collaboration with Google.

Google has been a great partner to the team for years. A funny side note — a lot of global members of the Scratch Team used to work for Google, and couple of members of Google used to work for the Scratch Team, so there’s a long history of collaboration between the two teams. It’s all focused around introducing more kids to creative ways to express themselves through code. That’s the thing that binds the two teams together.

When we started to think about Scratch 3.0, one of the many things that we needed to build were the blocks — the actual things that you snap together to make your programs. Google has a technology called Blockly. It seemed like an obvious way to collaborate and work more closely with Google — to take the Blockly code that Google had developed and modify it, hack it, and create what we call a “fork” of it, specifically for the blocks engine for Scratch 3.0.

We’ve been working with them for the past four months to put this together. We’re excited to continue to develop the blocks with Google over the next year as we get closer and closer to 3.0.

The MIT Scratch Team announced the collaboration with Google at Google I/O Youth on May 17. Pictured here from left to right: Carl Bowman, Andrew Sliwinski, Kasia Chmielinski, Tim Mickel.

Why did the Scratch Team and Google decide to make Scratch Blocks available via Open Source?

Scratch has always been Open Source. What we decided to do with 3.0 is to make a couple of changes in the way that we approach the open-source process. We made the decision to release the software as we go, and to work in the open. With Scratch 2.0 and earlier versions of the Scratch editor, we worked away to try to make something that felt like a good experience, and then at the end, we released it as open source for people to use. What we’re trying to do with 3.0 is to work in the open — to develop all of these things in a way that is transparent to developers, and also to the community.

What has that process been like?

Sometimes, it can be tricky to do, because making things is really messy. But, by working in the open, we hope that we’ll receive more contributions from the larger community. We also hope that we can create something that’s more broadly useful to people who want to create their own forms of creative learning experiences. We’d like other developers to pick up the blocks and create their own applications, their own creative environments for kids to explore computational thinking.

Has the team done any testing with Scratch 3.0?

Google I/O starts out with this event the day before called Youth I/O. This year, kids from four different schools came to this place in Mountain View and got a chance to play with the very first prototype of Scratch 3.0 with LEGO WeDo 2.0. It was very, very exciting, and a little nerve-wracking because they’re playing with these raw prototypes that came right out of the lab.

Students play with a prototype of Scratch 3.0 to control a LEGO WeDo motor at Google I/O Youth.

It was great to see kids playing with the prototype, giving us feedback, getting stuck on some things. Generally, I think they had a good experience. It’s really great when we can do things like that. Our goal is to try to develop things in a way where we can actually see how kids will interact with it as frequently as possible.

Last November, Mitchel Resnick (who leads the Lifelong Kindergarten Research Group at the MIT Media Lab), wrote: “For us, coding is not a set of technical skills but a new type of literacy and personal expression, valuable for everyone, much like learning to write. We see coding as a new way for people to organize, express, and share their ideas.” How will Scratch 3.0 embody this different approach to coding?

Well, a big part of that is trying to make sure that Scratch is accessible to a large number of people who, today, don’t have access to Scratch. Internet connections are not necessarily pervasive, having a desktop computer. . .outside of the US and Europe, the adoption rate of desktop computers is really low. Increasingly, many more people have mobile phones, and tablets. A big part of Scratch 3.0 and our focus on mobile devices, really is around access. If we want more people to be able to have these types of creative learning experiences, we have to go where they are.

It’s another reason why we’re putting so much emphasis on localization, right to left support, and accessibility. Eliminating language barriers is a big thing that we want to do better with Scratch 3.0. Another place where we feel like there’s a lot of opportunity to explore is around accessibility. What does programming look like for a person with limited sight? What does programming look like for people with different cognitive disabilities? These are all big questions for us that we’re starting to explore. Google has been really helpful in helping us think through some of those big challenges because they have such a big emphasis within their team on accessibility and localization.

The other side is around pathways. A lot of the work that we’re doing in Scratch is thinking about interest-based pathways — thinking about different ways that kids can have entry points into Scratch. Today, one of Scratch’s biggest strengths is the stage. It’s building animations, it’s building your own illustrations, it’s building your own games. It’s very visual. So, how do we make the experience better for kids who are really into music or sound? How do we make the experience better for kids who are really into the physical world, who want to go run outside, or build something for their treehouse? How do we make Scratch 3.0 ready for those types of kids, who have different interests?

What excites you most about the next generation of Scratch?

It’s interesting and rewarding to work through the design and engineering process in the lab, but that is not enough. The moment that I really care about — the reason why I do what I do — is seeing these tools in the hands of kids. The next generation of Scratch presents us with an opportunity to further increase the reach of Scratch, and I can’t wait to see what the community makes with it.