Logo è il primo progetto “futuristico”, il primo linguaggio di programmazione per bambini. Sono tante le iniziative che hanno raccolto la sua eredità, come per esempio Scratch.

Scratch è un semplice ambiente di programmazione, gratuito, che utilizza un linguaggio di programmazione di tipo grafico e visuale, a blocchi.
In questo ambiente non bisogna digitare alcun codice, come avviene, invece, nella programmazione tradizionale. Per creare un programma, infatti, basterà trascinare dei blocchi di codice, preimpostati e divisi per colore, all’interno dell’area di coding ed unirli insieme seguendo un ordine logico.
E’ un linguaggio che consente a chiunque, anche a chi non ha mai programmato, di creare, in maniera semplice ed intuitiva, delle storie interattive, dei semplici giochi e delle animazioni.
Scratch è completamente gratuito ed è accessibile da qualsiasi browser. Anche se è stato progettato specificamente per i piccoli programmatori dagli 8 ai 16 anni, Scratch è un ottimo modo per introdurre alla programmazione anche quegli adulti che amano mantenere la mente allenata ed hanno voglia di imparare qualcosa di nuovo.
La prima versione di Scratch diffusa online nasce nel 2006 al Massachusetts Institute of Technology di Boston, sviluppata da Lifelong Kindergarten group, dei Media Lab sotto la guida di Mitchel Resnick.
L’idea di Resnick è quella di creare un modo facile e divertente di imparare a programmare, accessibile liberamente a tutti, perché, nell’era del digitale, conoscere i principi di programmazione ormai è diventato fondamentale per chiunque.
Citando la famosa TED Talk di Resnick Insegnamo ai bambini a programmare:
“Quando si diventa fluenti a leggere e scrivere non lo si fa solamente per diventare uno scrittore di professione. Poche persone diventano scrittori di professione. Ma imparare a leggere e scrivere è utile a tutti. Ed è la stessa cosa per la programmazione. La maggior parte delle persone non diventerà un esperto di informatica o un programmatore, ma l’abilità di pensare in modo creativo, pensare schematicamente, lavorare collaborando con gli altri — queste sono abilità che si sviluppano anche quando si programma con Scratch — sono cose che le persone possono usare, indipendentemente dal lavoro che fanno.“
Lo scopo di Scratch non è, quindi, quello di farci diventare tutti programmatori, piuttosto, è quello di insegnarci a pensare in modo creativo, mantenendo comunque uno schema logico e di farci capire l’importanza di collaborare con gli altri. Cose che possono tornare utili anche nelle attività di tutti i giorni.
Il nome di questo linguaggio deriva dall’inglese to scratch (graffiare), che definisce anche la tecnica dei DJ di muovere i dischi vinili sotto le testine dei giradischi per creare dei remix. Questo nome, ovviamente, non è per niente casuale e descrive con precisione l’idea base di Scratch, ovvero quella di unire insieme immagini, suoni e testi per creare un contenuto multimediale. E non solo, con Scratch siamo liberi di prendere i progetti degli altri e “remixarli” per creare qualcosa di originale, di nostro, proprio come fanno i DJ!
Pur essendo un linguaggio di programmazione piuttosto semplice, Scratch ci consente di creare un vasto numero di contenuti diversi, per esempio cartoni animati, animazioni e storie interattive, quiz e puzzle, ma anche dei semplici giochi arcade.
Si può creare un’orchestra, addomesticare un animaletto virtuale, creare un proprio gioco sul mondo della moda.
Certo, con Scratch un bambino non sarà in grado di creare un nuovo Minecraft o il prossimo Flappy Bird, perché, molto semplicemente, questo linguaggio non è abbastanza potente per poterlo fare ma il punto non è questo. Mentre con i linguaggi di programmazione tradizionali ci potrebbero volere ore ed ore di lavoro solo per far muovere un oggetto sullo schermo, con Scratch tutto questo si fa in un paio di minuti, semplicemente trascinando e ordinando i blocchi con i comandi.
Il risultato di questa programmazione, drag and drop, è praticamente immediato e visibile sullo schermo, questo premia gli sforzi del piccolo coder che, soddisfatto della propria creazione, è più invogliato ad approfondire lo studio e ad esplorare linguaggi di programmazione più complessi ed avanzati.