Guida alla Programmazione Visuale

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
SIMATIC Controllers
Ambiente di sviluppo per la programmazione dei PLC Siemens
Licenza: P
Siemens
Minibloq
Ambiente di sviluppo per la programmazione di schede Arduino, robot ed altre piattaforme
Licenza: L
Julián da Silva
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  Vai all'articolo...
(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)
Ambienti web e sviluppo applicazioni
OutSystems
Un linguaggio di modellazione visiva per sviluppare e modificare tutti gli strati di applicazioni web aziendali.
Licenza: P
OutSystems
App Invetor 2
VPL che permette di creare applicazione per Android
Licenza: L
Google, MIT Media Lab
(P = licenza privata, L = licenza libera)
Ambito educativo
Scratch
VPL creato per aiutare i giovani ad imparare a pensare in modo creativo, e a lavorare in collaborazione.
Licenza: L
Mit Media Lab  Vai all'articolo...
Snap!
Estensione di Scratch
Licenza: L
Jens Mönig  Vai all'articolo...
Open Roberta
È un VPL basato su cloud che permette di programmari piccoli robot come LEGO Mindstorms e programmare schede Arduino
Licenza: L
Fraunhofer IAIS, Media Engineering Department
(P = licenza privata, L = licenza libera)

Corsi DevAcademy

  • Programmazione G con LabVIEW
  • Sviluppo App Android con Java
  • Programmazione multipiattaforma con Java
  • Sviluppo App Ios con Objective-C e Swift
  • Programmazione multipiattaforma con C#
  • Programmazione C/C++

Iscriviti alla nostra newsletter

Commenti recenti