Squeak
  links to this page:    
View this PageEdit this PageUploads to this PageHistory of this PageTop of the SwikiRecent ChangesSearch the SwikiHelp Guide
Scratch
Last updated at 8:25 pm UTC on 4 September 2017
The original Scratch is an environment built on Squeak in the spirit of Etoys and SqueakLand but geared more towards making games and simulations.

Scratch is a project of the Lifelong Kindergarten Group at the MIT Media Lab; the original proposal document can be found at - http://web.media.mit.edu/~mres/papers/scratch-proposal.pdf and is interesting reading.

Briefly, it was described as
"A Networked, Media-Rich Programming Environment to Enhance Technological Fluency at After-School Centers in Economically-Disadvantaged Communities"

Core features



Scratch 2

The second version of Scratch from MIT was a rewrite in Flash, of all things; nobody really understands why moving from a completely open development system to proprietary and massively buggy one was considered a good idea. To further complicate things, Adobe has end-of-lifed Flash and so a further rewrite had to be done; this time in .. well, who cares. You can find out about this at http://scratch.mit.edu

Scratch 1.4 is still alive

The good news is that the original Squeak based Scratch (generally known a Scratch 1.4) was released in source form and can be improved and extended. There are several variations built by people, mostly not related to the general Squeak community, which is a little surprising.

NuScratch and the Raspberry Pi

When the Raspberry Pi project was being formed 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], 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. 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.

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]

A downloadable runnable NuScratch

http://files.squeak.org/scratch/NuScratch20170821-general.zip
You will need a 5.1 VM installed; the appropriate all-in-one should do the trick. On a Raspberry Pi the vm is already there - but then so is the image.

A Scratch Tutorial


https://www.raspberrypi.org/learning/getting-started-with-scratch/ (NB 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 mourned. Googling will find lots.



Some other versions & useful websites



[1] Slow as in "oh my goodness this is barely usable what can we do"
[2] see also NuScratch source on SqueakMap for the announcement email to the squeak list