Dopo 28 anni, stiamo finalmente vedendo l’inizio della fine di uno dei linguaggi più popolari del mondo?

Matthew MacDonald

Follow

Jun 10, 2019 – 9 min read

Ho una confessione da fare. Prima di diventare uno sviluppatore rispettabile che lavora con i moderni linguaggi a parentesi graffe come C# e Java (e quel pasticcio caldo di una piattaforma che chiamiamo JavaScript), ero un fan devoto del popolarissimo disadattato Visual Basic.

La mia infatuazione è iniziata onestamente. Da preadolescente ho imparato a programmare con il linguaggio BASIC. Ma non un BASIC qualsiasi. Ho iniziato con l’innovativo ambiente QuickBASIC di Microsoft sull’antico sistema operativo DOS. Ricordo ancora la scrittura del codice in testo bianco sul suo allegro sfondo blu.

Per la programmazione nel 1988, QuickBASIC era magico. Potevi scrivere codice senza numeri di linea ingombranti, catturare gli errori di sintassi mentre digitavi e lanciare il tuo programma direttamente dall’ambiente di sviluppo, senza bisogno di nessuna sciocchezza sulla linea di comando. E quando avevi finito, potevi condividere il tuo programma con i tuoi amici usando uno di questi ragazzacci:

Max Pixel / CC0

In questi giorni, QuickBASIC è solo un’altra curiosità del lontano passato. O lo è? Un progetto innovativo chiamato QB64 ha creato una replica moderna di QuickBASIC. Funziona su Windows, MacOS e Linux, senza bisogno di un emulatore. Quando si esegue un programma in QB64, esso esegue un abile gioco di prestigio – prima traduce il codice BASIC in C++, e poi lo compila.

QuickBASIC era un’impresa impressionante per gli antichi giorni dei sistemi informatici basati sul testo. Ma il gioco è cambiato quando Microsoft ha rilasciato Windows, e ha catapultato gli utenti di PC in un mondo grafico di pulsanti e clic. Nello stesso momento in cui Microsoft rilasciò Windows 3.0 – la prima versione che ebbe veramente successo – lanciò anche Visual Basic 1.0.

Qui c’era qualcosa di completamente nuovo. Potevate creare pulsanti per i vostri programmi disegnandoli sulla superficie di una finestra, come se fosse una specie di tela artistica. Per far fare qualcosa ad un pulsante, tutto quello che dovevate fare era un doppio clic nell’ambiente di disegno e scrivere del codice. E non si usava il criptico codice C++, con pile di classi, complessa gestione della memoria e oscure chiamate alle API di Windows. Invece, scrivevi codice VB dall’aspetto amichevole, come una persona civile.

Tutto lo splendore grafico era impressionante, ma il vero segreto del successo di VB era la sua praticità. Non c’era semplicemente nessun altro strumento che uno sviluppatore potesse usare per abbozzare un’interfaccia utente completa e iniziare a codificare così rapidamente come VB. E anche se gli storici amano parlare della parte visiva di Visual Basic, la sua capacità di firma non aveva nulla a che fare con i widget grafici. Invece, VB divenne famoso per una caratteristica leggendaria chiamata edit-and-continue, che permetteva agli sviluppatori di eseguire i loro programmi, trovare problemi, correggerli e poi continuare con il nuovo codice. Questa era una netta differenza rispetto a quasi tutti gli altri ambienti di programmazione conosciuti dall’umanità, che costringono gli sviluppatori a ricompilare il loro lavoro e ricominciare da capo dopo ogni cambiamento.

Il Visual Basic originale ha prosperato per circa un decennio. Quello che è iniziato come un ambiente amichevole per i principianti è cresciuto in uno strumento che era abbastanza capace per i programmatori seri. Con l’uscita di VB 6 – l’ultima versione del classico Visual Basic – si stimava che ci fossero dieci volte più programmatori che scrivevano in VB che nell’inesorabile linguaggio C++. E non stavano solo costruendo applicazioni giocattolo. Visual Basic si fece strada negli uffici delle aziende e persino sul web attraverso ASP (Active Server Pages), un’altra tecnologia mostruosamente popolare. Ora si potevano creare pagine web che parlavano con componenti VB, chiamavano database e scrivevano HTML al volo.

Tutto questo avveniva praticamente senza struttura, a meno che non si scegliesse di crearne una da soli. Questo era il tema non scritto di Visual Basic – ti dava la libertà ora che avresti rimpianto dopo.

Il problema con il VB classico

Il VB classico aveva una cattiva reputazione in molti circoli. I fanatici orientati agli oggetti spesso si lamentavano che VB mancava di supporto all’ereditarietà. (Era una critica strana, considerando che l’ereditarietà è spesso un grande modo per gli sviluppatori meno abili di darsi la zappa sui piedi – esattamente il tipo di caratteristica di cui VB non aveva bisogno). In effetti, il VB classico non era affatto orientato agli oggetti. Alla fine della sua vita, supportava interfacce, polimorfismo e librerie di classi, tutte cose che prendeva in prestito da COM, un pezzo centrale della tecnologia dei componenti che è cablato in ogni versione di Windows.

Il vero problema di VB classico era che aveva troppo successo. Era così efficace nell’abbassare le barriere per i nuovi programmatori che letteralmente chiunque poteva usarlo. Neofiti sbadati, lavoratori annoiati di aziende e studenti estivi ci si sono buttati a capofitto, risolvendo sfide che sarebbero state molto più difficili su qualsiasi altra piattaforma, e spruzzando codice spaghetti ovunque.

In altre parole, poiché VB era abbastanza facile da usare anche se non eri un programmatore esperto, è stato usato da molte persone che non erano programmatori esperti. E VB non faceva nulla per incoraggiarli a correggere le loro cattive abitudini.

VB.Fred e la soluzione .NET

Fast forward to 2002, e Microsoft stava facendo quello che Microsoft fa meglio – sconvolgere il proprio ecosistema di sviluppatori introducendo un modo completamente nuovo di fare le cose.

Questa volta, il progetto era una massiccia riarchitettura di COM, la tecnologia dei componenti che stava alla base di Windows (e, indirettamente, di VB classico). Era un momento di scommessa per un megalite del software che aveva già fatto diverse scommesse del genere.

Microsoft ha chiamato questo riavvio .NET per una serie di ragioni dubbie, incluso il fatto che le tecnologie Internet erano ancora nuove e ancora eccitanti, e perché .NET includeva una funzione di servizi web che Microsoft era fermamente intenzionata a promuovere. Era pesantemente influenzato da Java, e pieno di strumenti per comunicare con i database, costruire siti web, scrivere programmi multithread, creare connessioni su socket – praticamente ogni caso d’uso che uno sviluppatore di business possa immaginare.

L’unico problema era che per ottenere tutte queste nuove caratteristiche, Microsoft doveva buttare via quasi tutto il VB classico.

La nuova versione, chiamata VB.NET, sembrava più o meno la stessa, se si strizzava bene l’occhio. Ma aveva un sacco di cambiamenti di rottura sia grandi che piccoli. Sul lato grande: I vecchi programmi VB sarebbero rimasti intrappolati nel vecchio mondo di programmazione, e un wizard di migrazione incredibilmente povero faceva poco per cambiare la situazione. Sul lato piccolo: I programmatori VB classici dovevano cambiare il modo in cui contavano gli elementi degli array. Non potevano più iniziare da 1, come la gente comune. Ora dovevano iniziare da 0, come i programmatori ufficiali.

Anche sul lato grande: Non c’era più la funzione edit-and-continue.

Gli sviluppatori sono noti per lamentarsi, e gli sviluppatori VB sono un gruppo particolarmente lamentoso. Non passò molto tempo prima che un gruppo di influenti sviluppatori VB avesse battezzato il nuovo ambiente di programmazione di Microsoft come VB.Fred per sottolineare che, qualunque cosa fosse, questo nuovo linguaggio non era Visual Basic.

Cosa ha condannato Visual Basic

Si potrebbe pensare che i cambiamenti .NET abbiano incrinato le fondamenta di VB e messo in moto il suo inevitabile declino. Ma non è quello che è successo. Infatti, anche se VB.NET è sprofondato in una nuova direzione, e ha fatto cambiamenti che hanno reso orfano il codice VB classico perfettamente buono, è diventato massicciamente popolare. Questo perché VB.NET ha dato qualcosa che gli sviluppatori VB classici non avevano mai avuto prima – il rispetto.

Nel mondo .NET, VB e C# erano alla pari. Ogni riga di codice VB poteva essere tradotta in una riga equivalente di codice C#, e viceversa. Entrambi i linguaggi avevano le stesse capacità, usavano gli stessi componenti e compilavano esattamente la stessa forma (qualcosa chiamato linguaggio intermedio). VB era finalmente libero dalla sindrome della brutta anatra.

Ma c’era un problema nell’essere solo un altro linguaggio di programmazione rispettabile. L’entusiasmo che aveva reso VB il linguaggio preferito da così tante persone era sparito. Non perché VB fosse cambiato, ma perché era cambiato C#.

Come VB ha acquisito la stessa potenza di C#, C# ha preso le stesse comodità di Visual Basic. Per esempio, la sicurezza dei tipi di .NET e le caratteristiche di gestione della memoria significavano che gli sviluppatori C# non dovevano mai preoccuparsi di perdite di memoria, proprio come gli sviluppatori VB.

In altre parole, C# ora aveva i guardrail per proteggere hobbisti, studenti e nuovi programmatori senza rinunciare alla sua potenza. All’improvviso, VB non era più qualcosa di speciale. Era solo un altro strumento nella cassetta degli attrezzi di un programmatore capace.

Lo stato di Visual Basic oggi

Oggi, Visual Basic è in una strana posizione. Ha all’incirca lo 0% del mindshare tra gli sviluppatori professionisti – non compare nemmeno nei sondaggi tra gli sviluppatori professionisti o nei repository di GitHub. Tuttavia, è ancora là fuori in natura, tenendo insieme le macro di Office, alimentando vecchi database di Access e antiche pagine web ASP, e attirando i nuovi arrivati di .NET. L’indice TIOBE, che cerca di misurare la popolarità della lingua guardando i risultati delle ricerche, classifica ancora VB tra i primi cinque linguaggi più chiacchierati.

Ma sembra che lo slancio si sia spostato per l’ultima volta. Nel 2017, Microsoft ha annunciato che avrebbe iniziato ad aggiungere nuove caratteristiche del linguaggio a C# che potrebbero non apparire mai in Visual Basic. Il cambiamento non riporta VB allo status di brutto anatroccolo, ma gli toglie un po’ del suo status di .NET.

In verità, la tendenza a mettere da parte VB è stata presente per anni. Gli sviluppatori seri sanno che le parti chiave di .NET sono scritte in C#. Sanno che C# è il linguaggio scelto per presentazioni, libri, corsi e workshop per sviluppatori. Se volete parlare VB, non danneggerà le applicazioni che costruite, ma potrebbe ostacolare la vostra capacità di parlare con altri sviluppatori.

Un posto dove Visual Basic avrebbe dovuto avere un posto naturale è il mercato educativo. Ma anche lì rimane una pecora nera. I linguaggi moderni come C# e Python sono ora abbastanza facili e sicuri per i principianti da prendere come primo linguaggio. Se avete bisogno di qualcosa di più semplice per i bambini piccoli, il mercato è affollato di strumenti di programmazione grafica come Scratch. E i linguaggi con le parentesi graffe come C#, C, JavaScript e Java hanno anche un altro fascino. Poiché condividono la loro sintassi, una persona che ne impara uno può sentirsi rapidamente a casa con un altro.

Con lo sviluppo web, Microsoft sta fissando il vuoto di un’opportunità persa. Chi non sarebbe tentato da una versione di VB che fosse facile da usare come VB 6, ma che potesse essere compilata in JavaScript, e accoppiata con un designer di moduli HTML? Sì, non sarebbe stato uno strumento adatto per costruire il prossimo Google Maps, ma avrebbe potuto far risorgere il fascino di Visual Basic, permettendo a sviluppatori di business, studenti e hobbisti di creare semplici applicazioni online senza la goffaggine di JavaScript. Invece, Microsoft ha creato un prodotto VB-powered chiamato LightSwitch che è scomparso con la morte del plug-in del browser Silverlight. Se Microsoft costruisce un altro prodotto di codifica per le masse, è più probabile che sia uno strumento basato su template a basso codice come PowerApps.

Visual Basic è stato minacciato prima. Ma questa volta sembra diverso. Sembra che il sole stia finalmente tramontando su uno dei linguaggi di programmazione più popolari del mondo. Anche se è vero, Visual Basic non scomparirà per decenni. Invece, diventerà un altro prodotto legacy, uno strumento trascurato senza una passione o un futuro. Sta a voi decidere se abbiamo perso qualcosa di speciale o se abbiamo finalmente messo fine alle sofferenze di un vecchio cane.

Categorie: Articles

0 commenti

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *