Parlare con la vostra tecnologia moderna non è mai stato così facile, ora che potete letteralmente parlare con Alexa o Google Home e far riconoscere il vostro discorso da un programma basato su cloud. Ma per molto tempo, “parlare” con il tuo computer ha richiesto di imparare la sua lingua – un linguaggio di programmazione. La maggior parte dei linguaggi di programmazione sono basati sul testo, permettendo ai programmatori di digitare comandi, estrarre informazioni e condividerle con i loro computer.
Quando descriviamo la “programmazione visiva”, ci riferiamo in generale ai modi di “parlare” ai nostri computer moderni con grafica e immagini, piuttosto che con il solo testo. La programmazione visiva esiste da decenni e rappresenta un altro livello di astrazione dal linguaggio macchina che i nostri computer usano quando comunicano tra loro.
L’obiettivo principale della prima programmazione visiva era di rendere più facile l’interazione con il computer. Dopo tutto, le prime interfacce grafiche (GUI) offrivano un’esperienza molto più semplice rispetto alla digitazione di linee in una finestra di terminale, al punto che la maggior parte delle persone oggi compra un “Mac” o un “PC” e non pensa nemmeno ai propri computer come distinti dai loro sistemi operativi visuali.
Prima, la programmazione visuale per la costruzione dell’interfaccia utente era un facile gioco da ragazzi. Al giorno d’oggi, ci sono molti sofisticati strumenti visuali di sviluppo web front-end come Wix o Squarespace per creare siti web e strumenti di progettazione come Figma e Sketch per creare prototipi.
Ma per costruire la logica computazionale, come quella che si potrebbe trovare in una complessa applicazione web, il valore della programmazione visuale è stato controverso. Gli scettici sosterranno che è quasi impossibile che la logica della programmazione visiva possa rivaleggiare con la potenza di un linguaggio basato su script. I linguaggi di programmazione visuale non si sono avvicinati alla popolarità dei linguaggi di scripting per costruire la logica back-end… fino a oggi, forse: Bubble. Bubble è una piattaforma di sviluppo di web app “no-code” che ha iniziato nel 2012. A valore nominale, Bubble condivide molte somiglianze con gli strumenti visivi di costruzione di UI per siti web e prototipi elencati sopra. Ma Bubble è, nel suo nucleo, un vero linguaggio di programmazione visuale – con tutto il potere di creare la logica per strumenti web sofisticati come framework di programmazione basati sul testo come React o Flask.
Per capire come sono nate le piattaforme di sviluppo web visuale come Bubble, stiamo dando un’occhiata alla storia della programmazione visuale – e come la prossima fase dell’evoluzione del codice potrebbe effettivamente essere “senza codice.”
Prima programmazione “visuale”: linguaggi grafici degli anni ’70 e Basic
Negli anni ’60 e ’70, si stava già sperimentando con rappresentazioni grafiche della logica sotto forma di sistemi basati su diagrammi di flusso come Pygmalion e GRaIL (Graphical Input Language). Questi primi linguaggi visivi tentavano l’importante sforzo di far sì che le azioni della macchina fossero mappate su un insieme di immagini correlate. Ma fu solo all’inizio degli anni ’90, dopo che i computer ebbero interfacce grafiche decenti, che la programmazione visuale cominciò a decollare.
Quando si pensa al concetto di “programmazione visuale”, la prima cosa che può venire in mente è Visual Basic, un prodotto Microsoft che fu lanciato nel 1991. Visual Basic permette alle persone di costruire nuove applicazioni spostando blocchi di codice e creando diagrammi di flusso o diagrammi, e include strumenti come un debugger e un editor di codice sorgente. Ma Visual Basic è più precisamente conosciuto come un ambiente di sviluppo integrato (IDE), in cui un linguaggio di programmazione basato sul testo (Basic) è combinato con altri strumenti visivi per rendere più facile lavorare con il codice. Visual C e Visual Java sono ambienti di sviluppo visuale simili per i loro rispettivi linguaggi di programmazione.
Gli IDE sono un passo importante per capire come la programmazione può essere resa puramente visuale. Uno dei fondatori di Bubble, Josh Haas, si è ispirato a Visual Basic quando ha iniziato a creare Bubble nel 2012. Egli descrive il primo sviluppo di Bubble come il risultato di “se hai iniziato con un IDE prima di costruire il linguaggio di programmazione sotto di esso.”
Sebbene nel loro nucleo, gli IDE come Visual Basic stanno ancora lavorando su linguaggi basati sul testo, gli strumenti che hanno usato per rendere la codifica meno dolorosa sono enormemente importanti per la moderna esperienza di programmazione visiva.
La programmazione visiva come strumento educativo
I linguaggi di programmazione visiva hanno brillato come strumenti educativi per insegnare ai nuovi programmatori come pensare logicamente. Scratch, sviluppato dal MIT Media Laboratory nel 2002, è probabilmente il miglior esempio di un linguaggio di programmazione visuale con sintassi basata sui “blocchi”. Scratch è diventato abbastanza popolare, con oltre 57 milioni di utenti e applicazioni. Alcuni moderni costruttori di app no-code come Thunkable hanno tratto ispirazione da Scratch e da altri progetti basati su blocchi.
Scratch è principalmente rivolto ai bambini che imparano a programmare, con la sua tigre carina e i blocchi colorati che si collegano insieme per formare frasi logiche che eseguono azioni. Ma se si dovesse scavare più a fondo, i sistemi basati su blocchi presentano alcuni difetti evidenti quando si rappresenta la logica complessa; spesso si finisce con diagrammi disordinati che sono ancora più difficili da capire del codice basato sul testo.
E i sistemi logici basati su diagrammi di flusso come i primi linguaggi di programmazione visuale non vanno molto meglio, con frecce ricorsive e linee che attraversano la pagina che risultano essere più dolorose da guardare che linee ordinate di script.
Non ci addentreremo troppo nel dibattito psicologico se il testo o le immagini siano più comprensibili per il cervello umano; questo è in gran parte soggettivo e personale. Ma c’è un argomento da fare che la popolarità dei linguaggi di programmazione basati sul testo è in gran parte il risultato della tradizione (Unix e Linux come paradigmi basati sul testo) e della convenienza per il creatore del linguaggio, non per gli utenti del linguaggio di programmazione. Dopo tutto, la maggior parte dei linguaggi di programmazione sono basati sull’inglese, e ci sono miliardi di persone nel mondo che non parlano o scrivono affatto in inglese. Eppure ci aspettiamo che lo facciano per creare tecnologia.
Qui la programmazione visuale ha l’opportunità di colmare le lacune e aiutare le persone a imparare il linguaggio della tecnologia in un modo diverso. Scratch, per esempio, è stato tradotto in più di 70 lingue in modo che i giovani possano programmare nella loro lingua madre.
Tuttavia, il relativo successo di Scratch potrebbe anche avergli affibbiato la reputazione di essere uno strumento per principianti, un trampolino di lancio verso il mondo della “vera programmazione”, dove si abbandonano le immagini carine e si passa il tempo ad agonizzare su parentesi e virgole.
Ma rendere qualcosa “più semplice” non significa necessariamente renderlo meno potente. Perché investiamo nel far apprendere ai nostri figli in modo visivo solo per insistere quando diventano più grandi affinché diano la priorità al mondo del linguaggio verbale? E se ci fosse un linguaggio di programmazione visuale che si sforzasse di essere abbastanza semplice da essere comprensibile ma abbastanza potente da essere utile al di fuori della classe?
L’ascesa delle piattaforme & “No Code”: Visual Programming for Web Apps
Bubble è la nostra risposta alla domanda su come un moderno linguaggio di programmazione visuale possa mantenere la promessa di rendere più facile creare e costruire tecnologia sofisticata. Bubble permette alle persone di costruire applicazioni web, dai marketplace come Airbnb ai social network come Twitter, senza bisogno di scrivere codice. Il risultato è che le persone sono in grado di costruire vere idee di business online in una frazione del tempo e del costo di sviluppo.
RELATO: Guarda le applicazioni che gli utenti hanno costruito in Bubble senza codice.
L’editor visivo di Bubble prende ispirazione dal design UI e dagli strumenti di sviluppo, con un approccio “quello che vedi è quello che ottieni” allo sviluppo web. Ma il vero valore di Bubble è nel suo approccio alla logica che manca a molte altre piattaforme. Quando Josh ha iniziato a lavorare sul sistema di Workflow di Bubble, ha insistito sulla “semplicità aggressiva” per evitare le complicate insidie dei vecchi linguaggi a diagramma di flusso e la confusione dei linguaggi a blocchi.
Il design del flusso di lavoro di Bubble ha lo scopo di aiutarvi a costruire la logica usando semplici frasi (per esempio, “Quando un utente fa x, invia un’email all’utente”). E mentre si può diventare piuttosto complessi con dichiarazioni e condizionali nelle tecniche di bubbling avanzate, il linguaggio fa certe assunzioni sulle cose di base che si vogliono in un’applicazione web (come: utenti, click in giro, login, iscrizioni) per semplificare la maggior parte delle azioni di base.
I linguaggi di calcolo progettati per un uso specifico, al contrario di uno scopo generale, sono conosciuti come linguaggi specifici di dominio. Bubble può essere descritto come un linguaggio dominio-specifico per il web design, al giusto livello di astrazione per rendere più facile progettare l’interfaccia di un’applicazione e costruire la sua logica dietro le scene. Bubble dà alle persone gli strumenti nel web design per spiegare i concetti che vuoi costruire – un pulsante, un input, una barra di ricerca – al giusto livello di vocabolario per il tuo regno di competenza. Se stai costruendo un’app per ristoranti, crei dei tipi di dati per il tuo ristorante, il menu, le voci di cibo e/o i clienti. Se si vuole che un pulsante faccia qualcosa, si crea semplicemente un elemento pulsante e si specifica cosa fa.
“Bubble permette alle persone di creare tecnologia usando il loro vocabolario, non il contrario”, spiega Josh.
Strumenti come Bubble sono stati classificati sotto il termine “no code” o “low code”, rappresentando un movimento di allontanamento dai framework basati sul testo per la progettazione web. I primi programmi aziendali spesso si riferivano a questo concetto come “sviluppo rapido di applicazioni”.
Ma non tutti questi strumenti sono uguali. Alcuni strumenti no-code sono migliori per le app mobili native, alcuni sono migliori per le landing page e i siti web semplici, alcuni sono fatti su misura per i marketplace con modelli pre-fatti o modelli di apprendimento automatico. Bubble, con le sue radici come un linguaggio di programmazione visuale completo, è una piattaforma di creazione di web-app più aperta e potente, con la possibilità di integrarsi con migliaia di altre piattaforme attraverso il nostro API Connector.
Le persone hanno usato Bubble per risolvere i problemi delle loro startup e costruire la versione ideale dei loro business digitali. Alcuni hanno raccolto milioni di dollari in finanziamenti di capitale di rischio, e altri hanno creato le loro carriere costruendo modelli per Bubble o insegnando ad altri come usare strumenti senza codice. I Bubblers con un certo background tecnico contribuiscono al nostro mercato di plugin, e le aziende di software che cercano più utenti ci aiutano a creare nuove integrazioni personalizzate che rendono più facile per gli utenti che già costruiscono con altri strumenti.
Bubble e il futuro della programmazione visiva
La missione di Bubble è di rendere più facile per le persone creare business digitali in modo rapido e conveniente, senza bisogno di scrivere codice. Nella nostra storia d’origine, parliamo di come stiamo affrontando un problema molto vecchio nella tecnologia, un problema che la prima programmazione visiva ha cercato di risolvere senza riuscirci: come rendere visiva la logica e cancellare il confine tra usare la tecnologia e creare tecnologia.
L’approccio di Bubble alla programmazione visiva non è attualmente pensato per essere in grado di fare tutto ciò che la tecnologia può fare ora o sarà in grado di fare in futuro. Bubble è costruito per applicazioni web. Mentre abbiamo scoperto che cose come il game design sono sempre più possibili in Bubble grazie ai nostri utenti incredibilmente talentuosi, sappiamo che ci sono altri programmi specificamente creati e meglio equipaggiati per compiti come il live streaming e l’elaborazione audio (ma che saremo entusiasti di integrare in futuro).
Quello che abbiamo è la base per la possibilità. Abbiamo una comunità con un’abbondanza di creatività, determinazione e curiosità auto-motivata, che scopre nuovi modi di costruire senza codice. Abbiamo una visione per il futuro in cui le piattaforme “no-code” non sono la propria categoria di strumenti. Invece, la programmazione visuale sarà solo il modo in cui le applicazioni web e altre tecnologie sono fatte, perché ha più senso farle in quel modo.
A proposito di Bubble
Bubble è un leader nel movimento no-code. Bubble offre un potente editor web point-and-click e una piattaforma di cloud hosting che permette agli utenti di costruire applicazioni web e flussi di lavoro completamente personalizzabili, che vanno da semplici prototipi a complessi marketplace, prodotti SaaS e altro. Più di 500.000 utenti stanno attualmente costruendo e lanciando imprese su Bubble – molti hanno partecipato ai migliori programmi di accelerazione, come Y Combinator, e hanno anche raccolto 365 milioni di dollari in finanziamenti di rischio. Bubble è più di un semplice prodotto. Siamo una forte comunità di costruttori e imprenditori che sono uniti dalla convinzione che tutti dovrebbero essere in grado di creare tecnologia.