So is Scratch *real* programming, you ask, or have been asked?
The next time someone raises a dismissive or patronising eyebrow when you say you are using Scratch (or Snap! or such like) with students, or announces wearily ‘oh we’ve done Scratch’ as if that was the end of that, here’s a three minute video featuring an explanation software developer Bernat Romagosa that may give you some serious ammunition for your side of the discussion. It was made at the Scratch conference in July 2017, and I have quoted from it many times since. It should have been transcribed and uploaded before this, but today it can be a timely Fáilte for the new Leaving Certificate Computer Science professional development being launched in Ireland tomorrow. Good luck to all involved.
At the start of the Scratch Conference in Bordeaux, July 2018, video producer Jeannette gave me the task of finding someone to interview who would make sense, to a non-professional, of why Scratch is such a powerful tool. At the very end of a very busy conference, Catalan programmer Bernat Romagosa (Snap!4Arduino, Beetleblocks) provided us with a clear, simple, comprehensive answer. (Zoot, the cameraman, can be heard approving of the answers, so they must have been making sense.)
[vimeo 231915964 w=640 h=360]
Mags – What is your explanation of what good Scratch is – why is it different to what people think computer programmers do – what good is it – how wonderful is it?
Bernat – Basically I think there are two parts to this…the first part is the visual part of the equation, which is what many people only see in Scratch…the blocks based interface, the cartoonish IDE and the 2D microworld where sprites interact with each other; but the actual interesting part to me is the fact that the system is live, you can modify programs while they are running, you can click on any piece of script, even a single block at any given time, and get back a result or have it perform an action, so you can test things live…and you have parallel vision…so eight year old kids are doing parallel programming…whereas I left university without doing that as it was too difficult. Basically I think that’s what there is.
Mags – And I need two questions answered now – you’re a computer programer, you’re qualified – what is an IDE and what is parallel programming?
Bernat – an IDE* is basically a programming environment, but in Scratch the lines get blurred…because the programming environment, the language, and the result of the language are all in the same interface…that’s in part inherited from live languages like Smalltalk
Mags – So you mean the screen we see when we open Scratch – these different panes – you don’t normally have all those open together?
Bernat – No – so usually in – I hate the word – traditional programming languages or mainstream programming languages – you use a program to add in the code and the result of what you’re doing appears somewhere else, and in many cases you cannot see in real time the result of what you’re doing; you have to run to a complicated process – more or less complicated depending on the language – which translates that into an output. It is usually linear, which means you can only do one thing at a time. What parallel programming means is you can have the program do more than one thing. This is usually a very complicated thing to do in other languages, but Scratch makes it really easy with scripts that can be run at the same time by clicking on them or having them be triggered on Space Key press or Green Flag press or on receiving a message.
Mags – So now I understand for the first time, as a non-professional programmer, why I find Scratch easy to use. Whoa! You’ve done something for us here – thank you Bernat.