Fork me on GitHub
con Valerio Galano

Il podcast dove si ragiona da informatici

Un informatico risolve problemi, a volte anche usando il computer

Riflessioni e idee dal mondo del software

Episodio del podcast

Informatica Vintage - Visual Basic: gloria, declino e...

16 aprile 2020 Podcast Episodio 31 Stagione 1
Informatica Vintage - Visual Basic: gloria, declino e...

Descrizione

Sito ufficiale di Pensieri in codice - https://pensieriincodice.it

Attrezzature:
Microfono Blue Yeti* - https://amzn.to/3kSE35f
Filtro anti-pop* - https://amzn.to/3baPMsh
Filtro anti-pop* - https://amzn.to/2MH0Wf1
Schermo fonoassorbente* - https://amzn.to/3sOZE0P

  • Link affiliato: il costo di un qualsiasi acquisto non sarà maggiore per te, ma Amazon mi girerà una piccola parte del ricavato.

    Per partecipare alla discussione ed essere aggiornati sulle novità:
    Gruppo Telegram - http://bit.ly/joinPicTelegram
    Canale Telegram - http://bit.ly/PicTelegram



Fonti di questo episodio:
https://www.sciano.net/post/25/visual-basic:-gloria,-declino-e...

Avrei Qualcosa Da Dire Show, il podcast di Chiara Virgili:
https://link.chtbl.com/aqddshowpod

Sostieni il progetto

Sostieni tramite Satispay
Sostieni tramite Revolut
Sostieni tramite PayPal
Sostieni utilizzando i link affiliati di Pensieri in codice: Amazon, Todoist, Readwise Reader Proton Mail, Proton VPN, Proton Pass, Satispay

Partner

GrUSP (Codice sconto per tutti gli eventi: community_PIC)
Schrödinger Hat

Crediti

Montaggio - Daniele Galano - https://www.instagram.com/daniele_galano/
Voce intro - Costanza Martina Vitale
Musica - Kubbi - Up In My Jam
Musica - Light-foot - Moldy Lotion
Cover e trascrizione - Francesco Zubani

Mostra testo dell'episodio

Nascondi

Quella che segue è una trascrizione automatica dell'episodio.

Pensieri in codice. Idee dal mondo del software, a cura di Valerio Galano. Salve a tutti e ben ritrovati per un nuovo episodio di Pensieri in codice. Nell’episodio della serie informatica vintage di oggi parleremo di Visual Basic, un altro di quei linguaggi che hanno fatto la storia della programmazione. Prima di iniziare però con la lettura del testo dell’amico Andrea, ci tengo a ringraziare tutti quelli che hanno preso parte alla mia piccola iniziativa su Docety. Vi ricordo infatti che per tutto il mese di aprile potrete prenotare delle lezioni private gratuite con me. In queste lezioni potremmo ripassare un po’ di informatica e di programmazione per le scuole superiori. Quindi grazie a tutti e veniamo all’argomento del giorno. Ad inizio marzo 2020 Microsoft ha pubblicato un post sul suo blog in cui spiega che continuerà a supportare Visual Basic su .NET 5 ma non aggiungerà più nuove funzionalità né evolverà il linguaggio. Per chi non lo sapesse .NET 5 è una delle release previste per .NET Standard, una specifica per l’implementazione dei vari framework Microsoft come il classico .NET Framework che viene utilizzato per la creazione di applicazioni desktop e applicazioni web ASP oppure .NET Core, un sotto insieme di .NET Framework ridisegnato per essere open source, cloud native e multipiattaforma. A differenza di .NET Framework .NET Core non è considerato un componente di Windows pertanto gli aggiornamenti vengono forniti come pacchetti NuGet e non tramite Windows Update come invece avviene per il primo. In futuro non prevediamo di evolvere Visual Basic come linguaggio. Il futuro di Visual Basic si concentrerà sulla stabilità e la compatibilità tra le versioni .NET Core e .NET Framework di Visual Basic. Quando Microsoft rilasciò la versione .NET di Visual Basic lo fece insieme a C Sharp all’inizio dell’era .NET e i due linguaggi iniziarono a crescere di pari passo con aggiornamenti che introducevano interi set di funzionalità identici per entrambi. Con l’andare del tempo questo però cambiò. Gli sviluppatori professionisti che adottarono C Sharp e i tanti fan del classico Visual Basic iniziarono ad abbandonare il linguaggio di fronte alla sempre più crescente complessità dell’ambiente .NET nelle nuove versioni anche se più potenti. Oggi la documentazione per sviluppatori in Microsoft è praticamente quasi solo in C Sharp con esempi di codice sorgente Visual Basic sempre più difficili da trovare. Nel 2017 Microsoft ha annunciato che la sua strategia originaria di cosviluppo di C Sharp e Visual Basic era arrivata alla fine. Solo C Sharp avrebbe ottenuto tutte le nuove funzionalità mentre Visual Basic si sarebbe concentrato sugli scenari più semplici ed accessibili che un tempo dominava. Questo però non è mai realmente accaduto e Microsoft ha effettivamente abbandonato Visual Basic. L’annuncio a cui facciamo riferimento all’inizio del post lo rende di fatto ufficiale. Se si è soddisfatti di NET Framework siate sicuri che sarà supportato finché Windows sarà supportato perché viene fornito assieme al sistema operativo. Verosimilmente gli sviluppatori Visual Basic saranno in grado di portare le loro codebase assistenti su .NET Core o presto su .NET 5. Il problema è che non tutte le tecnologie legacy saranno supportate quindi gli sviluppatori che utilizzano alcune feature come ad esempio Web Forms o Workflow dovranno attenersi al classico .NET Framework. Dato che le versioni di quest’ultimo vengono rilasciate nello stesso bundle delle nuove versioni di Windows, tali applicazioni continueranno a funzionare e saranno supportate solo finché l’azienda di Redmond non deciderà il ritiro delle versioni di Windows sottostanti. Ma perché stiamo parlando proprio di Visual Basic? E lo stesso Andrea a spiegarcelo. Per quanto io non sia mai stato un amante di Visual Basic, la notizia non mi ha lasciato indifferente. Leggerla ha riavvocato in me alcuni vecchi ricordi della scuola superiore e è lì che ho potuto usarlo per un po’. Parliamo dei primi anni 2000 e per un ragazzino che iniziava a conoscere la programmazione a suono di Turbo Pascal e Borland C++ ecco qualcosa di completamente nuovo. Per uno abituato a schermate blu durante la scrittura del codice o nere durante l’esecuzione poter creare dei pulsanti per i miei programmi disegnandoli direttamente sulla finestra dell’interfaccia era qualcosa di assolutamente speciale. Per fare in modo che un pulsante potesse eseguire un’azione era sufficiente fare doppio clic su di esso nell’ambiente di sviluppo e scriverne il codice relativo. Agli occhi di allora non era come scrivere il codice C++ pieno di classi, complessa gestione della memoria e chiamate oscure a funzione di librerie in note. Era semplicemente codice Visual Basic dall’aspetto amichevole intuitivo con dei programmi dignitosamente carini che potevano addirittura definirsi tali. Le origini di Visual Basic si trovano in un glorioso linguaggio di programmazione creato nel 1964 da John Kemeny e Thomas Kurz, il BASIC. Originariamente esso era un linguaggio interpretato, progettato per semplificare e rendere la programmazione più accessibile al mondo. Usando questa filosofia Microsoft integrò un interprete BASIC all’interno del suo primo sistema operativo MS-DOS. Nonostante l’ampia distribuzione e la relativa semplicità BASIC non è mai stato in grado di competere con linguaggi compilati più veloci come C o C++. Pertanto BASIC era comunemente usato per scopi banali o educativi mentre le applicazioni reali venivano solitamente sviluppate con altri linguaggi. Alla fine degli anni 80 Windows e altre interfacce grafiche erano agli albori e la maggior parte dei PC utilizzava sistemi operativi testuali. Più le persone iniziavano a comprendere i vantaggi di un sistema operativo a interfaccia grafica, più Windows acquisiva popolarità. Sfortunatamente la creazione di programmi basati su Windows era estremamente difficile ed era necessario scrivere codice molto complicato solamente per definire l’aspetto dell’interfaccia e il modo in cui un utente avrebbe potuto interagire con essa. E’ proprio in questi anni che Microsoft iniziò ad interessarsi ad un’applicazione che avrebbe permesso la creazione di form tramite interfaccia visuale. Un’idea audace per l’epoca poiché la maggior parte dei computer utilizzava immagini grossolane basate su codici ASCII che raramente somigliavano a qualcosa di reale. L’azienda fondata da Bill Gates si avvicinò ad un uomo di nome Alan Cooper che aveva creato tale interfaccia la quale sembrava adatta a soddisfare le esigenze di Microsoft. La compagnia di Cooper, Tripod, aveva fatto nascere Ruby che non ha nessuna connessione con il linguaggio di programmazione Ruby ma era un’applicazione che faceva esattamente al caso loro. Ed ecco che, per ovviare alle difficoltà nella creazione di programmi per Windows, Microsoft pensò bene di comprare Tripod ed integrare Basic nel loro prodotto di punta. Ruby nasceva con un piccolo linguaggio capace solamente di supportare i pochi principali comandi di cui una shell necessita. Sin dal principio l’intenzione di Microsoft era quella di far crescere tale linguaggio o addirittura sostituirlo del tutto con uno reale. Il linguaggio C fu il candidato forte per parecchio tempo ma alla fine Microsoft optò per la soluzione casalinga nonché più comoda e scelse Basic. E’ così che nel 1991 nasce Visual Basic 1.0, riutilizzando il concetto di semplicità e parte della sintastica caratteristica di tale linguaggio. Questo nuovo strumento di sviluppo forniva un modo semplice e veloce per creare applicazioni Windows. Negli anni successivi Microsoft continuò il lavoro rilasciando nuove versioni con miglioramenti non solo relativi all’ambiente di sviluppo ma anche alla modernizzazione del linguaggio sottostante. Questi refactoring includevano il supporto alla programmazione orientata agli oggetti, la gestione degli eventi ed il superamento dei limiti di un linguaggio interpretato consentendo ai programmatori di generare codice eseguibile compilato. Visual Basic come dice la parola stessa è un linguaggio di programmazione visuale guidato da eventi. Questa è la vera differenza rispetto al vecchio Basic. In Basic la programmazione era solamente testuale ed il programma eseguito in sequenza. In Visual Basic la programmazione avviene in un ambiente grafico. Nel vecchio Basic era necessario scrivere il codice del programma per ogni oggetto grafico che si desiderava visualizzare sullo schermo compresa la sua posizione e il suo colore. In Visual Basic era sufficiente trascinare e rilasciare qualsiasi oggetto grafico in un qualsiasi punto del modulo e poi cambiarne il colore in qualsiasi momento utilizzando le finestre delle proprietà. D’altra parte poiché l’utente poteva fare click su un determinato oggetto in modo del tutto imprevedibile, ogni oggetto doveva essere programmato indipendentemente per essere in grado di rispondere a tali eventi. Pertanto un programma in Visual Basic è composto da molti sottoprogrammi, ognuno con il suo codice corrispondente ed ognuno potenzialmente eseguibile contemporaneamente ad un altro. Visual Basic originale ha prosperato per circa un decennio. Ciò che iniziò per essere un ambiente easy per principianti divenne uno strumento abbastanza valido anche per programmatori senior, che non creavano solo applicazioni giocattolo. Visual Basic si fece strada negli uffici delle aziende e persino sul web attraverso ASP, Active Server Pages, che permetteva di creare pagine web in grado di comunicare con componenti Visual Basic denominati Database e scrivere HTML al volo. Una volta che la platea era aumentata, immancabilmente iniziarono ad arrivare le prime critiche. I fanatici dell’Object Oriented lamentavano la mancanza del supporto all’ereditarietà, anche se possiamo considerarla un’arma a doppio taglio, un ottimo modo per sviluppatori meno esperti di darsi la zappa sui piedi. Paradossalmente il vero problema fu quello di avere avuto troppo successo. Era così efficace nel ridurre le barriere d’ingresso ai nuovi programmatori che letteralmente chiunque poteva usarlo. Principianti disattenti, operai annoiati e studenti, tutti potevano metterci mano e combinare qualcosa che sarebbe stato molto più difficile su qualsiasi altra piattaforma, seminando spaghetti code ora qui ora lì. In altre parole, siccome anche per i programmatori non esperti era abbastanza facile usare Visual Basic, veniva utilizzato da molte persone che non erano programmatori esperti. La colpa di Visual Basic è stata quella di non fare nulla per incoraggiare la correzione dello stile e delle abitudini sbagliate di queste persone. Nel 2002 Microsoft decide una riorganizzazione dell’ecosistema di sviluppo, introducendo un modo nuovo di fare le cose e facendo uscire .NET. Il nome è dovuto ad una serie di motivi. Primo fra tutti il fatto che le tecnologie internet fossero roba nuova da figli e poiché .NET includeva funzionalità web che Microsoft aveva deciso di promuovere. Fu fortemente influenzato da Java, pieno di tool per comunicare con database, sviluppare siti internet, scrivere programmi, multitrading e creare connessioni tramite socket. Praticamente ogni caso d’uso che un developer pro potesse immaginare all’epoca. Vi era un unico grande downside di questa mini rivoluzione vista dagli occhi di chi utilizzava Visual Basic. E cioè che per ottenere tutto ciò Microsoft dovette buttare via quasi tutto il classico Visual Basic. La nuova versione, chiamata VB.NET, sembrava la stessa a prima vista ma introduceva tante differenze che rompevano la retrocompatibilità. Non si fece molto per i vecchi programmi se non un wizard di migrazione abbastanza scarno che la maggior parte delle volte era inutile. Con l’avvento di questo nuovo strumento i programmatori Visual Basic dovettero cambiare il modo in cui contavano gli elementi dell’array. Non potevano più iniziare da 1 come la gente comune. Ora si iniziava da 0 come i veri programmatori. I cambiamenti si sa spesso non sono ben accetti e non passò molto tempo prima che un gruppo di precursori influencer di Visual Basic volgesse critiche aspre a questo nuovo linguaggio. Si potrebbe supporre che le modifiche introdotte da .NET abbiano distrutto le fondamenta sulle quali il classico Visual Basic si fondava e che abbiano messo in moto il suo inevitabile declino. Ma questo a mio avviso non è corretto. Anche se VB.NET prese una nuova direzione esso portò una caratteristica che il vecchio Visual Basic non aveva mai avuto. Il rispetto. Ora Visual Basic e C-Sharp stavano sullo stesso piano. Ogni riga di codice Visual Basic poteva essere tradotta in una riga equivalente di C-Sharp e viceversa. Entrambi i linguaggi avevano le stesse feature, utilizzavano gli stessi componenti e compilavano esattamente nella stessa maniera. Infatti quando un linguaggio è supportato dalla piattaforma .NET vi è un compilatore che traduce i programmi scritti in tale linguaggio in istruzioni SIL. Ma c’era un problema nell’essere finalmente un linguaggio degno di questo nome. L’entusiasmo con il quale lo avevano scelto così tante persone era sparito. Non perché Visual Basic era cambiato ma perché C-Sharp era cambiato. Nella stessa maniera con la quale Visual Basic aveva acquisito la medesima potenza di C-Sharp, infatti, C-Sharp aveva guadagnato le stesse comodità che offriva Visual Basic. Ad esempio le funzionalità di sicurezza e di gestione della memoria introdotte da .NET permettevano agli sviluppatori C-Sharp di ignorare totalmente le classiche problematiche legate a questi temi, proprio come gli sviluppatori Visual Basic potevano già fare in passato. In altre parole ora C-Sharp poteva essere utilizzato da hobbisti, studenti e nuovi programmatori senza rinunciare al suo potere. Improvvisamente Visual Basic non era più qualcosa di speciale. Oggi Visual Basic si trova nella stessa situazione descritta inizialmente. Non ha praticamente alcun peso nella community degli sviluppatori professionisti e non è nemmeno presente nelle statistiche dei repo di GitHub. Tuttavia è ancora là fuori da qualche parte a tenere insieme macro di Office e servire vecchi database Access e antiche pagine ASP. Un utilizzo in cui Visual Basic avrebbe potuto riciclarsi in modo naturale è il mercato dell’istruzione, ma è un discorso che si poteva fare tanti anni fa. I linguaggi moderni come C-Sharp o Python ora sono abbastanza facili da esercitare appeal anche tra i principianti. E se si ha bisogno di qualcosa di più semplice per insegnare coding ai bambini, il mercato odierno offre strumenti di programmazione grafica molto validi come Scratch. Anche i linguaggi a parentesi graffa come C-Sharp, C, JavaScript e Java hanno un altro fascino. Imparata la sintassi di uno, infatti, se proprio si deve cambiare ci si può sentire più propensi a passare ad un altro di essi. Con il crescere dello sviluppo in ambito web, Microsoft avrebbe potuto tentare la via di una versione di Visual Basic facile da usare come VB6, che avrebbe potuto essere compilata in JavaScript e abbinata ad un qualche design di forma HTML predefinito. Ovviamente non sarebbe stato uno strumento adatto a costruire fantasmagoriche applicazioni web, ma avrebbe potuto tornare utile consentendo a sviluppatori, studenti e appassionati di creare semplici app online senza l’ingombro del JavaScript. Invece a tal proposito Microsoft ha creato un prodotto basato su Visual Basic chiamato Light Switch, che è scomparso con la morte di Silverlight. L’esistenza di Visual Basic è stata già minacciata in precedenza, ma questa volta è diverso. Il sole è tramontato su uno dei linguaggi di programmazione più famosi al mondo. Un grazie a tutti voi che avete ascoltato fin qui e agli amici che hanno prestato la loro voce per questo episodio. La bravissima Chiara del podcast Avrei qualcosa da dire show, andate a ascoltarlo, vi lascio il link in descrizione perché è divertentissimo, e Andrea Chanot, che oltre ad aver scritto questo testo ha anche interpretato se stesso. In descrizione trovate il link all’articolo originale che contiene anche tante immagini interessanti. Per oggi direi che è tutto, vi saluto e vi do appuntamento al prossimo episodio ricordandovi che il programmatore risolve i problemi a volte anche usando il computer.

Nascondi