We typically feature projects from people sharing what they’ve learned while building something for themselves. But our community has a healthy contingent who deploy their skills for the benefit of future generations, developing a child’s natural curiosity for play into interest in understanding the technical world they will grow up in. This field is where MIT’s release of Scratch 3.0 can open up interesting possibilities.
Scratch is a block-based programming language designed for elementary school children, letting them learn fundamental concepts while experimenting in an environment filled with visual and audible feedback. In an effort to make Scratch more widely available, version 2.0 in 2013 moved to the web. But it was built using interactive web technology of the time: Adobe Flash. As Flash has fallen out of favor and scheduled to be phased out in 2020, Scratch 3.0 used React to make the shift to HTML5.
The most immediate benefit is that Scratch can now be used on tablets, which all have modern browsers but very few of which have Flash. Another common educational hardware platform is the Raspberry Pi, which supported Scratch 2 via a convoluted software stack that was far from ideal. Now any hardware with a modern browser can run Scratch, no Flash binaries or custom wrappers are required. The Raspberry Pi foundation certainly seemed excited about this change.
But a more exciting and longer term benefit is Scratch extensions, a mechanism for Scratch programs to communicate with external hardware and online resources. This has evolved in parallel with Scratch 2.0 under the experimental ScratchX umbrella and version 3.0 brings it into core. The launch featured a few official extensions (for connecting to micro:bit, LEGO Mindstroms EV3, etc.) with the promise that custom third-party extensions will soon be possible. This will significantly streamline building a Scratch interface for kid-friendly programmable hardware. Something we’ve seen done for a drone, for exploring SDR, and even for a dollhouse. We’ll be keeping an eye out for the official release of Scratch 3.0 custom extension API, but anyone not afraid of working with fluid pre-release code are certainly welcome to dive in right now.
What a coincidence. My kid just got a book on how to code in Scratch he’s exicted to use. I wonder how different the UI in 3.0 is… will he be lost, or will that book be compatible with 3.0 I wonder. We’ll give it a shot and see…
We developed Scratch 3.0 to not be a radical departure from 2.0. The UI has been rearranged, but in a way that we think improves it and is recognizable to anyone who has used 2.0 before. Books that show methods and patterns for 2.0 should also work in 3.0. Goodluck and Scratch On!
the trouble with scratch 3 is that it is all web based – and using it compared to scratch 2 (offline) is quite frustrating even on a fast computer and network connection.. They also haven’t updated the functionality much..
I simply haven’t understood this whole move to browser based software – sure you can run it anywhere, but it runs like you are back in 1995…
That’s why I installed Scratch 2.0 running locally on the STEM machines at the local school on top of lubuntu. Fast, even on 8 year old hardware, and no internet needed, so less distractions for (ahem) inquisitive types.
yep – it’s a shame nobody on the team at goolge/mit has used scratch much with kids, otherwise they would have spent the last few years building a real leap forward…
Hi Ian, thanks for your thoughtful response. The Lifelong Kindergarten Group here at the MIT Media Lab is spends a lot of time with kids and adults researching learning methods and practices. The lead of the group is Mitch Resnick who recently wrote the book Lifelong Kindergarten: Cultivating Creativity through Projects, Passion, Peers, and Play. I recommend picking up a copy to understand the background behind the design of Scratch itself both 2.0 and 3.0.
There is a native (non-browser) Scratch available for Windows and Mac, or so I’ve read. If anyone knows about that, or the status for Linux — especially attractive for the Raspi crowd — I’d like to hear about it.
https://scratch.mit.edu/download/ ?
Windows and mac only.
Wont run on Raspberry Pi or any linux distro.
Only Windows 10+ and OSX 10.13+ needs to support older versions of those OSes and linux.
On windows versions 7,8,and 10 all use roughly the same APIs.
Tried it under a Windows 7 seems to work fine so it should work under other versions.
Might see it it runs under wine and QEMU.
A great question! as mentioned by elwing and Gordon, we do have an offline editor that is 3.0 specific and currently is available for Windows and Mac only (the online version works great with Chrome + Linux). We are a relatively small group of engineers and we are a non-profit. We currently do have an offline Linux version planned. A port of the Scratch Link software to Linux is in the works. Scratch 3.0 is the outcome of about 3 years of work, with a primary goal of keeping all previous Scratch projects compatible with the new release as well as improving the overall UI and individual experience with Scratch. We aren’t done and now that we are seeing what millions of Scratchers are experiencing with their individual environments, we’re following up with fixes, improvements and new development.
There’s always the possibility to do Scratch 3.0 as a Chrome extension, or (shudder) an Electron app…
The “offline” aka downloadable version of Scratch 3.0 is an Electron application.
I eagerly look forward to an offline Linux version. Keep up the good work!
You can install Scratch 2.0 on Linux, but it requires some pericombobulation. I put it on 6 x 2.4GHz 64 Bit Intel boxes with 2GB of RAM a few weeks ago and it works beautifully. None of the machines need network connectivity to run Scratch and the multiplicity of other education applications under Linux, which was a MAJOR plus from the school’s perspective.
It was easiest to install on lubuntu. The problem is that you need to install 32 bit libraries to get the flash player and scratch 2.0 to work on 64 bit machines.
By not allowing standalone Scratch 3.0 on FOSS operating systems like Linux, MIT is effectively imposing forced (and expensive) hardware upgrades on educators who can ill afford it
I donated my time to get the computers up and running for a STEM lab; the school shouldn’t have to pay a Microsoft, Apple or hardware tax to educate.
See
http://www.computacaonaescola.ufsc.br/?page_id=55&lang=en
Here’s a cheat sheet of sorts that I used at the local school on some older boxes they had running Win 7, which now run lubuntu :-)
————————————————————–
# install i386 necessary libraries
$ sudo apt-get install libgtk2.0-0:i386 libstdc++6:i386 libxml2:i386 libxslt1.1:i386 libcanberra-gtk-module:i386 gtk2-engines-murrine:i386 libqt4-qt3support:i386 libgnome-keyring0:i386 libnss-mdns:i386 libnss3:i386
# install keyring
$ sudo apt-get install libgnome-keyring0:i386
# make keyring visible for Air
$ sudo ln -s /usr/lib/x86_64-linux-gnu/libgnome-keyring.so.0 /usr/lib/libgnome-keyring.so.0
$ sudo ln -s /usr/lib/x86_64-linux-gnu/libgnome-keyring.so.0.2.0 /usr/lib/libgnome-keyring.so.0.2.0
# Download Adobe Air
cd ~/Downloads
wget http://airdownload.adobe.com/air/lin/download/2.6/AdobeAIRSDK.tbz2
sudo mkdir /opt/adobe-air-sdk
sudo tar jxf Desktop/32bitScratch/fromDownloads/AdobeAIRSDK.tbz2 -C /opt/adobe-air-sdk
sudo tar xvf Desktop/32bitScratch/fromDownloads/adobe-air.tar.gz -C /opt/adobe-air-sdk
sudo chmod +x /opt/adobe-air-sdk/adobe-air/adobe-air
sudo mkdir /opt/adobe-air-sdk/scratch
sudo cp Desktop/32bitScratch/Scratch-456.0.1.air /opt/adobe-air-sdk/scratch/
sudo cp ~/Desktop/32bitScratch/AppIcon128.png /opt/adobe-air-sdk/scratch/scratch.png
cp Desktop/32bitScratch/Scratch-456.0.1.air /tmp/
cd /tmp/
unzip /tmp/Scratch-456.0.1.air
sudo cp /tmp/icons/AppIcon128.png /opt/adobe-air-sdk/scratch/scratch.png)
sudo cp ~/Desktop/32bitScratch/Scratch2.desktop /usr/share/applications/
Oh, I forgot, there is an offline version of Scratch 3.0, currently available for Windows and macOS.
Warning, swearing!
https://youtu.be/bZDE6I5B9-E
“Program characters to speak in other languages with the Google Translate extension, or to talk out loud with the Amazon Text-to-Speech extension.”
Is it just me, or is it a bit worrying that MIT is so eager to sell the kids’ privacy to Amazon and Google?
No information about who is using Scratch is passed into Google or Amazon’s systems for the extensions. So, no, MIT is not selling anything to anyone.
Wow – even in the “native” download you still need an internet connection to use scratch-link. FAIL. It could have been so cool..
Linking to the local system reliably currently is best achieved by connecting to the local system over the “localhost”. Until browsers provide better support for connecting to USB and/bluetooth that is the best way we have found so far.
It should not require an Internet connection. If you are runking into an issue there please let us know at https://scratch.mit.edu/contact-us
My daughter is heartbroken – she’s extremely resistant to change, and being quite used to the 2.0 version, the new 3.0 UI is intimidating and upsetting.
Hopefully once she can get past that it’ll be a nice upgrade.
I love the functionality in the Scratch 3.0 and its ability to connect to the Lego Ev3 and other real world hardware. Do you know if there are any plans to incorporate the Tello drones in the Extensions as was available in Scratch 2.0. I loved being able to connect to the drone with Scratch and miss it.
The Stage Position is Flipped. It’s hard to shift from Scratch 2 to 3. But once it’s done, then it becomes easy. Scratch 3 has some glitches which are DANGEROUS.
Scratch is so COOL! We can coding all of games and works!