Scratch + Google = Next Generation of Programming Blocks for Kids
By the MIT Scratch Team
On the Scratch Team, we joke about the number of hours that we put into every detail of the design of our programming blocks and interface. We believe that our careful (sometimes obsessive) attention to design is one of the keys to the success of the Scratch community — which now has more than 11 million registered members, with 15,000 new members joining every day, from all around the world. We work hard to make sure our designs align with the ways kids think and learn, aiming to make Scratch the most intuitive, friendly, and motivating way for kids to learn to code and to express themselves creatively with new technologies.
Our broader goal is not just to support Scratch itself, but to spread the Scratch approach to coding and learning. And that’s why we’re announcing today a new collaboration with Google, focused on helping other developers create high-quality coding experiences for kids. As a first step, we’re working with Google to develop a new generation of graphical programming blocks, called Scratch Blocks, which we hope will be adopted widely by developers of children’s products. The underlying code for Scratch Blocks will be made available as open source, so that developers can easily integrate the blocks into apps, games, and toys that they are creating for kids.
We see the Scratch-Google collaboration as a perfect match, with complementary areas of expertise and a shared set of values and beliefs. The design of Scratch Blocks is based on the Scratch Team’s deep experience in designing creative, intuitive interfaces for young learners, while the underlying code for Scratch Blocks builds on Google’s Blockly technology and the dissemination of Scratch Blocks will be supported by Google’s strong network of connections with software developers. At the same time, Scratch and Google share a common vision of coding, seeing it as more than just a set of technical skills but rather a valuable tool for everyone, empowering kids (and adults) to imagine, invent, and explore.
Scratch Blocks brings together two different programming “grammars” that we have designed over the past decade. The standard Scratch grammar uses blocks that snap together vertically, much like LEGO bricks. For our ScratchJr software, intended for younger children, we developed blocks that are labelled with icons rather than words, and snap together horizontally rather than vertically. We have found that the horizontal grammar is not only friendlier for beginning programmers but also better suited for devices with small screens (such as mobile devices).
Scratch Blocks will support both horizontal and vertical grammars, making it easier for developers to create programming experiences for a wider range of people and a wider range of devices. A developer preview of the horizontal grammar is being released today at the annual Google I/O developer conference, with the vertical grammar to follow at a later date.
In addition to making Scratch Blocks available to other developers, we are also using the blocks ourselves in our next generation of Scratch, which we informally call Scratch 3.0. The first generation of the Scratch programming language, launched in 2007, was an application that kids downloaded to their local machines. With the second generation, launched in 2013 and still in use today, kids can create and share projects directly in their web browsers. We’re designing the third generation with a special focus on mobile devices.
While we’re excited about our next generation of Scratch, we’re also excited to share our ideas and technologies with other developers, starting with the release of Scratch Blocks. Our highest priority is for kids to have access to great learning tools, whether developed by us or by others. Through our new collaboration with Google, our designs and ideas will become available to many more people, both developers and kids, around the world.
Scratch is a project of the Lifelong Kindergarten group at the MIT Media Lab.