Linguaggi di programmazione visuali, cosa sono è perché impararli.
a cura di Sandro Fioravanti
“Words are words, but when you draw a box around them and connect the boxes with arrows, you have a model.”
Paul M. Muchinsky
I linguaggi di programmazione visuali (VPL – Visual Programming Language) sono linguaggi che convergono dal tradizionale metodo di programmazione a riga di comando, in quanto la sintassi viene sostituita del tutto o in parte da dei “blocchi funzionali”.
I “blocchi funzionali” sono dei contenitori di codice che il programmatore manipola e assembla tra di loro creando strutture grafiche in grado di rappresentare il codice sorgente. La maggior parte dei VPL si basa sull’idea dei “boxes and arrows” dove ogni box (scatola) rappresenta un blocco funzionale ed ogni arrow (freccia) rappresenta il “ponte” tra 2 o più blocchi.
Da questa descrizione un programmatore, anche alle prime armi, può scorgere una similitudine con il metodo di rappresentazione degli algoritmi chiamato diagramma di flusso. Infatti i diagrammi di flusso (flow chart) altro non sono che una raffigurazione sintetica del processo logico di un programma, le quali singole parti sono raffigurate da “scatole” e la direzione del flusso da “frecce”. Ogni singola parte o un insieme di loro, personifica la sequenza di eventi, di attività, di cicli e decisioni trasformando input in output all’interno di un sistema.
Questo tipo di approccio alla risoluzione degli algoritmi di un qualsiasi progetto, viene utilizzato sempre maggiormente in ogni campo lavorativo. Infatti non è un caso che la Microsoft sviluppi e venda da più di venti anni il suo software di creazione di modelli per grafici e diagrammi chiamato Microsoft Visio Professional.
Rimanendo comunque in tema ci si chiede, quali sono i vantaggi della programmazione visuale? Eccone alcuni:
- Curva di apprendimento inizialmente ripida – Data l’assenza spesso totale della sintassi, e la semplicità di utilizzazione degli ambienti di sviluppo dei rispettivi linguaggi, risulta facile per chiunque l’approccio alla programmazione
- Maggiore controllo dei bug – Possibilità di visualizzare lo stato del programma durante le fasi di debugging con strumenti atti a sondare i dati durante la loro manipolazione ed il trasferimento
- Calcolo parallelo implicito – La programmazione parallela viene gestita automaticamente dall’ambiente di sviluppo e per il programmatore diventa una soluzione intuitiva.
- Maggiore comprensione – Dato che le varie parti del codice sono raffigurate graficamente con colori ed immagini, lo sviluppatore ottiene una visione d’insieme più chiara
- Maggiore velocità di “scrittura” del codice – Oltre a non soffrire di problemi di tipo sintattico, spesso gli ambienti di sviluppo offrono dei menù contenenti gli oggetti utilizzati per la programmazione (funzioni, terminali, oggetti grafici etc…), i quali si possono addizionare al progetto semplicemente trascinandoli al suo interno (drag and drop)
- Sviluppo della creatività computazionale – È ormai dimostrato che i VPL aiutino la crescita personale dal punto di vista del pensiero computazionale. Alcuni VPL sono stati infatti pensati per essere utilizzati nelle scuole come aiuto ai giovani per sviluppare vari aspetti dei loro processi cognitivi e, personalmente credo che, se un metodo può essere di aiuto per i giovani lo può essere anche per gli adulti.
Di seguito verrà mostrata una lista di alcuni VPL e IDE, open source e non, attualmente disponibili:
Ambienti di sviluppo dedicato alla programmazione di specifiche schede o componenti Hardware | |||
EICASLAB Generatore di codice per differenti famiglie di hardware Licenza: P |
EICAS Automazione S.p.A. | ||
Flowcode Generatore di codice per microcontrollori come PIC, AVR, ARM. Licenza: P |
MatrixTSL | ||
Sysmac Studio Ambiente di sviluppo per la programmazione dei PLC Omron Licenza: P |
Omron | ![]() |
|
Keysight VEE Viene utilizzato in varie industrie, segue le varie fasi del ciclo vita di un prodotto, dal design alla convalida fino alla produzione. È ottimizzato nel controllo degli strumenti e nell’automazione con dispositivi di prova e misure quali strumenti di acquisizione dati come voltmetri digitali e oscilloscopi e dispositivi di origine come generatori di segnali e alimentatori programmabili. Licenza: P |
Keysight Technologies | ||
LabVIEW Ambiente di sviluppo grafico multipiattaforma principalmente utilizzato per programmi di acquisizione e analisi dati, controllo di quasi la totalità dell’Hardware esistente in commercio e degli strumenti prodotti dalla National Instruments, generazione di rapporti, o più generalmente per tutto ciò che riguarda l’automazione industriale. Licenza: P |
National Instruments | ![]() |
|
(P = licenza privata, L = licenza libera) |
Ambienti di sviluppo per la programmazione grafica e l’analisi dei dati in campo scientifico | |||
IBM OpenDX Software per la manipolazione grafica e la visualizzazione di dati scientifici Licenza: L |
IBM | ||
MeVisLab Framework modulare per la ricerca e lo sviluppo dell’immagine, utilizzato in campo medico. Consente di integrare algoritmi e sviluppare prototipi di applicazioni cliniche. Licenza: P |
MeVis Medical Solutions AG | ||
Orange VPL impiegato per l’analisi e l’estrazione dei dati statistici e l’apprendimento automatico (machine learning) Licenza: L |
University of Ljubljana | ||
Simulink Supporta la progettazione, la simulazione, la generazione automatica del codice la verifica di sistemi embedded. È integrato con MATLAB Licenza: P |
MathWorks | ||
(P = licenza privata, L = licenza libera) |

Sysmac Studio – PLC Omron
La Omron Corporation è una azienda con sede a Kyoto, in Giappone. Oltre a dedicarsi alla produzione e vendita di apparecchiature mediche, sistemi automobilistici e componenti elettronici, si dedica anche alla produzione di apparecchiature riservate al mondo dell’automazione industriale come: sensori, interruttori, componenti di sicurezza, relè, componenti di controllo, apparecchiature di monitoraggio dell’energia elettrica, alimentatori e PLC.

Snap! 4 Arduino – Progetto Orologio Binario con Firmata Library
Snap4Arduino è un progetto laterale al linguaggio di programmazione visuale chiamato Snap! (leggi l’articolo) che come obbiettivo si prefigge strumento per l’insegnamento delle materie tecnologiche dalla scuola primaria in poi.

miniBloq
miniBloq è un linguaggio di programmazione visuale open source in fase di sviluppo per Multiplo ™, Arduino ™ e dispositivi fisici di calcolo e robot. Minibloq nasce nel 1997 quando lo sviluppare Juliàn da Silva Gillig pubblica Minibloques, una versione gratuita ma non aperta utilizzata nelle scuole elementari e medie in Argentina.

OutSystems
OutSystems é una piattaforma usata da aziende di tipo PaaS – Platform as a service che necessitano di gestire velocemente applicazioni mobili o web.

Snap!
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...