- This article is about the fork of Google's blockly to be used by Scratch 3.0. For what blocks are specifically in Scratch, see Blocks.
Scratch Blocks is a library or graphical programming blocks being developed by the Scratch Team and Google. It has both vertical and horizontal blocks. Scratch Blocks are different than blocks in Scratch; Scratch Blocks may be adopted by other programs intended for teaching children to program. Scratch Blocks is licensed under the Apache 2.0 License. The project is in active development and should be considered a "developer preview".
Scratch Blocks are not just made for Scratch, contrary to the name. They are blocks that will be easily implemented into many other programs, as Google and Scratch share the common goal of bringing programming to kids of a young age. The Scratch Team described the purpose behind Scratch Blocks:
|“||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.||”|
– MIT Scratch Team
Support for Horizontal and Vertical Orientation
Scratch Jr first introduced blocks that snapped together horizontally instead of vertically. The blocks also used pictures rather than words to describe their purpose. It is believed this is easier for young children to learn:
|“||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).||”|
– MIT Scratch Team
The Scratch VM is a virtual machine library for running programs written with Scratch Blocks. It constructs an abstract syntax tree and keeps its state.