Scratch 3.0 has arrived!

Jim Cash
Scratch Mathland
Published in
8 min readJan 21, 2019

At long last, the new version of Scratch is now live at scratch.mit.edu. It launched officially on January 2, 2019. Scratch 3 is a complete redesign of not only the editor but also the code ‘under the hood’ that runs Scratch. The advantage is that Scratch 3 now works on virtually any device that is connected to the internet and runs a modern browser. The experience is not identical across all devices but it is close. If you are used to Scratch 2 but want to get quickly oriented to Scratch 3, then this article is for you.

It is quite important to note right away that the core of what Scratch is, and what it can do for children seeking to have fun being creative and exploratory, has not changed. Unlike some other popular coding tools, Scratch has always been about being wide open in terms of having a multitude of options for children to be creative, express their ideas, and follow their own interests and passions (wide walls). Also, the new Scratch continues to not only support beginning programmers with very simple, quickly constructed projects but also support programmers who are progressing and using more sophisticated programming (low floor, high ceiling). Scratch 3 dovetails beautifully with a positive, nurturing approach to learning based on child-centered Scratch projects (rather than assignments or puzzles) where they can playfully and collaboratively create, design, share, remix their ideas.

Improvements and Enhancements

No coding blocks were removed in Scratch 3; Scratch 2 projects work seamlessly in the new Scratch 3 environment. Some blocks might look a little different in Scratch 3 because of a new colour. 12 blocks are either new or have been tweaked in the lastest Scratch:

Scratch 3 also contains a host of improvements and enhancements:

  • Code blocks are larger to facilitate dragging and dropping on mobile screens
  • New left to right flow in the editor, stage is moved to the right-side
  • New sounds, costumes and backdrops added in the libraries
  • Some blocks have moved to the extension library such as those for pen, music and video sensing
  • Built-in editors for costumes (paint) and music have been dramatically improved and enhanced
  • The Scratch 2 show/hide tips window on the right hand side is gone but it has been replaced by a tutorials library

You can take a look at the Scratch FAQ and the Scratch 3.0 entry in scratch-wiki for more detailed information about these changes. If you are looking for even more, why not check out the Spring 2019 edition of Hello World magazine (free to download) which includes five articles about Scratch 3 (the first one starts on page 14).

Key improvement — Extension Library

I’m very enthused about the way the extensions library works. I think it makes it easier to understand how the core Scratch tool works and how it can be extended to do new things. From what I remember from the sessions at Scratch@MIT 2018, the developers mentioned that the new Extensions Library in Scratch 3 makes adding new capabilities and functionality with existing and future peripherals much easier.

A great example is the BBC micro:bit extension. The ten blocks included in the extension provide basic access to certain functions of the micro:bit. In order to use this extension with your micro:bit, you need to do three things first (more details on the Scratch microbit help page):

  1. Install “Scratch Link” on your device (currently, only available for Windows and macos)
  2. Upload the Scratch micro:bit HEX file to your micro:bit
  3. Add the micro:bit extension library to your Scratch project and connect your micro:bit

What is actually happening is the Scratch HEX file uploaded in step 2 controls bluetooth communication between the Scratch device (your Windows or macos computer) and the BBC micro:bit. The code on the micro:bit never actually changes as it does with other micro:bit coding environments (such as the popular Microsoft Makecode editor for micro:bit). This makes the experience a little more intuitive because continuous uploads of new HEX files for each change to the project are not needed.

Here is an example of a project (called micro:bit Maze Game) where the micro:bit is used to control the player in a multi-level maze game:

In terms of a wish list, I think it would be great to have a generic Scratch extension library that included blocks to sense and control things like voltages and data flowing through USB connections which might make possible some open ended projects that connect Scratch to any ad hoc electronic project. It might also be interesting to have a touchscreen extension library with block that handle sensing events based on a touchscreen. This would facilitate project interfaces that allow a user to touch sprites (acting as icons) to control events such as games or drawing programs. Finally, I would love to see an extension to provides an interface to either a local or network (like Google Drive) folder so that data could read from, or written into, a file.

Key improvement — HTML 5 + Javascript

Scratch 2 executed Scratch projects using Adobe Flash which meant that projects would not run on non-Flash capable devices such as iPads (which are one the most popular mobile devices used in homes and schools). This limitation is no longer an issue with Scratch 3. This is a significant change and will positively impact iPad-rich schools allowing students to access their Scratch projects via a (modern) browser app.

One of the interesting new design challenges of this improvement will be that students can explore authentically the development of projects that run on a wide variety of both hardware and software environments, an issue in computer programming called cross-platform software development. A given Scratch 3 project does not necessarily appear or work identically across different platforms. The experience is close but not identical. The ask and wait block is an example. The look and feel of the video sensing blocks is also variable with hardware you are using.

Cross-platform development is nothing new. Almost every web site has straightforward code that checks to see what device / browser is being used. It then makes adjustments on the fly so that the user experience is optimal for that device / browser. Scratch 3 does not have these kind of detection blocks built in but different versions of projects could be developed for different devices / browsers so that a project runs optimally. I wonder if a device detection reporter block could be in works?

Key improvement — Drawing and Sound Editing

There have been big improvements in the both built-in editors for bitmap and vector painting and for sound editing. These improve the quality and speed of editing so that users can focus more on the creative aspects of the images and sounds they want.

Some of the things I like the best about the new paint editor is that vector is now the default mode. Also, I am enjoying the new colour picker — I feel I now have a far greater command of colours. For a detailed overview of the new paint editor, take a look at its entry in the Scratch wiki.

The sound editor is so much smoother and so much more fun than before. The filters really make it fun for children to experiment with audio and give them the power to create the sounds they want for their project. Recording and trimming are also more intuitive. For a detailed overview of the new sound editor, take a look at its entry in the Scratch wiki.

Wish List

I have been using Scratch 3 (now and in beta) with students for a while; there are a few things on my wish list:

  • Right-click block help — In Scratch 2 there was a very handy and built-in reference that explained the function and use of any block, including parameters, and a code example. A simple right click on any block would bring up this option. Students used that quite a bit for reference.
  • Retractable Code/Costumes/Sounds window — There are many times when it would be great to have more screen real estate to look at more code at once. Zooming in and out on code is easy in Scratch 3 but I would also love to see a button that would retract the Code/Costumes/Sounds tab on the left side to reveal more of the space for scripts. One might ask, why do you need that — are you not always needing code blocks? No. Not when walking through code or remixing and trying to understand someone else’s code. And no, not when reorganizing and optimizing my own code. In my experience, there are clearly times when I would like more space.
  • Real time x,y coordinate position of mouse arrow — One thing I do miss from the editor in Scratch 2 was the indicator, in real time, of the x,y position of the mouse arrow on the stage. I often used that as a quick estimate of where I wanted a sprite to be placed and then I fine tune it later. It’s not a big deal… one can get the same effect in by moving a sprite to a position on the stage and then look at the x,y indicator… Nevertheless, it was often quite handy to be able to see a live x,y coordinate read out of the arrow tip’s position.

Resources about Coding in Education

Articles I’ve written (re: using coding as a tool to think with)

Various Resources (using coding as a learning/thinking tool)

Videos (for professional learning)

Books (coding to learn, creative learning, design thinking)

--

--

Jim Cash
Scratch Mathland

Finding and sharing ways to help young people develop as creative thinkers and makers.