Snap! è un linguaggio di programmazione visuale orientato agli oggetti di tipo drag-and-drop ispirato a Scratch, che implementa moltissime funzioni e strumenti che permettono di creare vere e proprie applicazioni.

Snap! marca gli stessi principi educativi di Scratch (leggi l’articolo) dando la possibilità agli sviluppatori di lavorare in un ambiente di sviluppo più professionale dove poter testare le proprie abilità informatiche. È ovvio che le conoscenze richieste per poter accedere agli strumenti offerti devono essere più profonde rispetto a quanto previsto dal team di Scratch.

In questo articolo parleremo delle differenze fondamentali tra Scratch e Snap! e forniremo i link di riferimento per poter accedere al materiale necessario.

Le  funzionalità aggiuntive che troviamo in Snap! Sono:

  • First class lists – Dalla versione 4.0.5 vengono introdotte le First class lists (classi primitive per gli “array”), questo rende possibile l’utilizzo delle liste bidimensionali su Snap! (array 2D).
  • First Class function or procedures – Secondo gli autori Brian HarveyJens Mönig (il creatore prima di BYOB e poi di Snap!) “l’idea della programmazione orientata agli oggetti viene spesso insegnata in modo da sembrare come se fosse necessario uno speciale linguaggio di programmazione orientato all’oggetto. Del resto, qualsiasi linguaggio che comprenda le funzioni tra le proprie classi primitive consente agli oggetti di essere implementati in forma esplicita; questo è un utile esercizio per aiutare a demistificare gli oggetti.” Come in Scratch, esistono 3 tipi differenti di funzioni: i Command type, i Reporter type e i Predicate type, solo che in Snap! vengono trattati come “Fisrt Class”.
  • Javascript – Permette di inserire del codice Javascript all’interno del programma, controllandone però le funzioni e limitando la condivisione del progetto per evitare la diffusione di eventuali malware.
  • Build Your Own Blocks (BYOB), possibilità di creare delle nuove strutture di controllo.L’immagine precedente mostra una struttura di controllo di tipo “for” creata utilizzando gli strumenti che troviamo all’interno del Block Editor.

Quando ho cominciato ad utilizzare Snap!, credevo di lavorare in un ambiente di sviluppo semplicemente migliorato rispetto a quello che viene messo a disposizione per Scratch. In effetti vi sono molti più strumenti per poter lavorare in modo veloce, ad esempio in Scratch non è possibile copiare una variabile direttamente dall’area di sviluppo o di correggere una modifica appena fatta premendo Ctrl+Z. Però Snap! non solo un ambiente di sviluppo “migliore”, bensì permette di creare veri stand-alone, i quali possono anche interfacciarsi con device esterni come Arduino o Raspberry Pi.

Di seguito dei link che vi aiuteranno ad entrare nel mondo di Snap!:

Share This