links to this page:    
View this PageEdit this PageUploads to this PageHistory of this PageTop of the SwikiRecent ChangesSearch the SwikiHelp Guide
Last updated at 5:08 pm UTC on 1 July 2018
Scratch is a visual programming language and online community targeted primarily at children [Wikipedia]. It started with a first implementation in Squeak Smalltalk, then it was reimplemented in Flash (ActionScript, [http://scratch.mit.edu/]) and now a JavaScript (more links about Scratch see here).

The Smalltalk based implementation has been maintained and improved and is available under the Name 'NuScratch' to be loaded as an application into a Squeak base system. In particular it allows physical devices to be connected.

The Scratch version NuScratch is based on is Scratch 1.4 (= the Smalltalk version line).

NuScratch as a modernized and faster version for the Raspberry Pi

When the Raspberry Pi project was being developed it was decided that Scratch would be a nice logical application to include. Since the linux VM was easily able to be compiled for the ARM11 cpu used by the Pi it wasn't difficult to make a workable system. It was rather slow[1]. Thus at the end of 2012 Tim Rowledge was engaged to work on improving the performance and over the next several years made fairly significant bug fixes and improvements that resulted in Scratch 1.4 being able to run on the modern Cog/Spur vm on ARM and x86, along with a roughly 20x speedup in the actual Scratch implementation. A new bitblt specialised for ARM was added and for some important test cases that was 10-20X faster. Some new bitblt related primitives were added to make sprite collision detection dramatically faster. The core Scratch block interpretation code was significantly improved.

The Raspberry Pi Foundation was quite pleased by this; see https://www.raspberrypi.org/blog/scratch-performance-raspberry-pi/

At the end of 2016 the source package for the improved system was added to SqueakSource and SqueakMap as a Squeak 5.0//1 compatible package.[2]

Download and/or installation


NuScratch instructions

A Scratch Tutorial

Note: this may well be replaced by documentation referring to the Scratch 2 system at some point;
unfortunately in 2016 somebody managed to convince the Pi foundation education team that running a Flash application in a somewhat odd special case version would be a good idea)

There are a lot of Scratch released sites around. Googling will find them.

[1] Slow as in "oh my goodness this is barely usable what can we do"
partly because the original Pi was 'only' a 700MHz single-core ARM with a mere 512Mb of ram and partly because the code was in need drastic of improving
[2] see also NuScratch source on SqueakMap for the announcement email to the squeak list