Programmazione visuale: introduzione

Il modello di programmazione tradizionale si basa sulla scrittura di codice sorgente secondo una struttura logica e ad una sintassi ben definita e dipendente dal linguaggio di programmazione prescelto.

L’idea di sostituire questo modello con uno fondato su una interfaccia grafica sulla quale trascinare dei blocchi funzionali predefiniti, manipolandoli ed assemblandoli l’uno all’altro quasi fossero dei mattoncini del LEGO, data dalla fine degli anni ’80 a livello commerciale e si basa su ricerche iniziate già negli anni ’60. Questo cambio di paradigma aveva l’obiettivo di rendere la programmazione accessibile anche ai non iniziati, permettendo di insegnarne i rudimenti già ai bambini della scuola elementare.

Ma non voglio farla lunga e rimando chi fosse interessato ad approfondire l’argomento a questa eccellente infografica e alla bibliografia alla fine del post. Ricordo solo che anche in questo campo Apple ha fatto da apripista con il suo HyperCard, il primo ambiente visuale di programmazione uscito dal chiuso dei laboratori di ricerca.

A parte HyperCard, finora l’unico linguaggio di programmazione visuale che ha avuto un vero successo è stato LabVIEW (Laboratory Virtual Instrument Engineering Workbench), un ambiente di programmazione grafica sviluppato dalla National Instruments per il controllo della strumentazione di misura, l’acquisizione dei dati e l’automazione dei processi industriali.

Un linguaggio utilissimo in un ambito professionale molto specializzato, ma decisamente molto lontano dall’idea di programmazione per i ragazzini. E nato anch’esso, non a caso, prima sul Mac alla fine degli anni ’80 (ho usato a lungo su un Macintosh II la prima versione di LabVIEW divertendomi moltissimo) e portato solo in seguito su Windows e poi finalmente anche su Linux e OS X.

Ma allora perché trattare di programmazione visuale? Perché mentre preparavo i post sull’implementazione in BASIC e in Python del Crivello di Eratostene mi sono imbattuto in tre diverse implementazioni di linguaggi di programmazione visuali derivanti chiaramente da Scratch, il più noto linguaggio di programmazione visuale per insegnare la programmazione ai bambini:

A differenza di Scratch, questi linguaggi sono utilizzabili direttamente dal browser e non richiedono nessuna installazione sul proprio Mac (o quasi).

Leggendo la descrizione delle caratteristiche dai rispettivi siti web mi sono chiesto quanto fosse facile implementare un algoritmo semplice come quello del Crivello di Eratostene in uno di questi linguaggi rispetto al Python (o al BASIC). Ma perché chiederselo soltanto, senza provare direttamente?

Nel seguito ho riassunto le mie considerazioni personali su Blockly, i prossimi post saranno dedicati rispettivamente a App Inventor 2 e a SNAP!

Blockly

Su Blockly ho già scritto qualcosa: mi è bastata una mezz’oretta di lavoro per implementare in Blockly l’algoritmo del Crivello di Eratostene a partire dalla versione originale in Python (e in BASIC).

Usare Blockly è divertente ed è abbastanza facile capirne la logica di funzionamento. È chiaro che conoscere già dei rudimenti di programmazione in un linguaggio tradizionale aiuta parecchio, ma imparare ad usare Blockly non dovrebbe essere troppo difficile anche per chi è del tutto a digiuno ma abbia voglia di applicarsi e di sperimentare un po’.

Purtroppo il codice Python (ma anche JavaScript) generato automaticamente è troppo verboso rispetto ad una versione sviluppata direttamente in uno dei due linguaggi. La ragione principale è che il linguaggio cerca di prevedere esplicitamente i diversi casi che possono presentarsi a seconda del segno delle variabili utilizzate, complicando notevolmente l’implementazione del ciclo. Un aspetto che probabilmente verrà migliorato con il tempo.

Il codice del programma che implementa il Crivello di Eratostene in Blockly (Fig. 1) è accessibile al link https://blockly-demo.appspot.com/static/demos/code/index.html#d93qba, e da quanto ho capito, ogni volta che vi si accede da un browser diverso Blockly crea automaticamente un link diverso, permettendo di provare a modificare il codice senza danneggiare la versione originale.

Tutto sommato Blockly è un bel giocattolino.

Implementazione del Crivello di Eratostene in Blockly.

Implementazione del Crivello di Eratostene in Blockly.


Bibliografia

Advertisements
Tagged with: , , , , , , ,
Pubblicato su programmazione

Rispondi

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...

Informativa
Questo sito utilizza cookie di terze parti per inviarti pubblicità e servizi in linea con le tue preferenze. Se vuoi saperne di più o negare il consenso a tutti o ad alcuni cookie, clicca qui. Scorrendo questa pagina, cliccando su un link o su qualunque altro elemento o proseguendo la navigazione in altra maniera, acconsenti all'uso dei cookie.
Follow MelaBit on WordPress.com
Categorie
Archivi
%d blogger hanno fatto clic su Mi Piace per questo: