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. Avviato nel 2013 dal...

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 sviluppatore Juliàn da Silva Gillig pubblica Minibloques, una versione...

OutSystems

OutSystems è una piattaforma usata da aziende di tipo PaaS - Platform as a service che necessitano di gestire velocemente applicazioni mobili o web. Compatibile con qualsiasi dispositivo di ultima generazione, le applicazioni create vengono distribuite in...

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

Scratch

Scratch è un linguaggio di programmazione visuale sviluppato dalla MIT Media Lab al fine di aiutare i ragazzi ad imparare il pensiero creativo e quindi iniziarli alle basi della logica computazionale ed al costruzionismo. Viene usato principalmente da...

LabVIEW

Tra tutti i Linguaggi di Programmazione Visuali esistenti ed esistiti (sono oltre 100), LabVIEW è forse l’unico che si sia distaccato e che sia entrato nella top 50 dell’indice di popolarità dei linguaggi di programmazione TIOBE. LabVIEW nasce nel 1983...

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
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  Vai all'articolo...
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...
Snap4Arduino
progetto laterale a Snap! che implementa funzioni per la programmazione di schede Arduino.
Licenza: L
Bernat Romagosa  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
Minibloq
Ambiente di sviluppo per la programmazione di schede Arduino, robot ed altre piattaforme
Licenza: L
Julián da Silva  Vai all'articolo...
(P = licenza privata, L = licenza libera)
miniBloq

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 sviluppatore Juliàn da Silva Gillig pubblica Minibloques, una versione...

leggi tutto
Snap!

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

leggi tutto
Scratch

Scratch

Scratch è un linguaggio di programmazione visuale sviluppato dalla MIT Media Lab al fine di aiutare i ragazzi ad imparare il pensiero creativo e quindi iniziarli alle basi della logica computazionale ed al costruzionismo. Viene usato principalmente da...

leggi tutto

Iscriviti alla nostra newsletter

Adsense

Share This