This article is about the library for building creative computing interfaces. For what blocks are specifically in Scratch, see Blocks. For the plugin used in the Scratch Forums and Wiki, see Block Plugin.

Scratch Blocks is a library of graphical programming blocks for building creative computer interfaces being developed by the Scratch Team in collaboration with Google. Scratch Blocks are designed to enable young people to code their own toys and a wide range of other objects.

Scratch Blocks are designed to support both horizontal blocks (with icons) and vertical blocks (with text).[1][2][3] 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.[4][5] The project is in active development and should be considered a "developer preview".[6]

The Purpose

Scratch Blocks are made for use beyond the Scratch online coding environment. Scratch Blocks can be easily implemented into many other programs, with the goal of providing a coding language that more kids can use across devices. 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[7]

Support for Horizontal and Vertical Orientation

Scratch Jr also uses blocks that snap together horizontally instead of vertically. Horizontal blocks use icons 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

Scratch VM

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.[8]

References

  1. https://medium.com/mit-media-lab/scratch-google-next-generation-of-programming-blocks-for-kids-5f377ec9ff0#.ykfhjictp
  2. https://github.com/LLK/scratch-blocks
  3. https://scratch.mit.edu/developers
  4. https://github.com/LLK/scratch-blocks/blob/develop/LICENSE
  5. https://scratch.mit.edu/developers#faq
  6. https://github.com/LLK/scratch-blocks#introduction
  7. https://medium.com/mit-media-lab/scratch-google-next-generation-of-programming-blocks-for-kids-5f377ec9ff0
  8. https://github.com/LLK/scratch-vm