Visual Basic è l'uomo strano nel nuovo .NET

In una serie di post sul blog della scorsa settimana, Microsoft ha dettagliato le modifiche fondamentali al modo in cui sviluppa i suoi linguaggi .NET. Era una buona notizia per gli sviluppatori C # e F #, ma mentre Microsoft ha dato una svolta positiva a ciò che i cambiamenti hanno significato per Visual Basic, il futuro a lungo termine del venerabile linguaggio sembra meno certo.

Visual Basic di Microsoft è stato a lungo uno dei linguaggi, se non preferiti, quindi sicuramente uno dei più utilizzati, e ha davvero posto Microsoft al centro della scena aziendale. Dalle sue prime sei iterazioni come linguaggio per lo sviluppo di applicazioni client-server fino alla sua rinascita come parte della piattaforma .NET, Visual Basic è stato lo strumento ideale per lo sviluppo rapido di applicazioni aziendali. Ciò è in parte dovuto alla sua vasta libreria di componenti dell'interfaccia utente, insieme ai connettori ai database comuni e a un modello di componenti che ha consentito a terze parti di creare attività fornendo funzionalità aggiuntive.

Il passaggio a .NET come base per la strategia di sviluppo di Microsoft aveva senso per nuovi linguaggi come C #, ma significava modifiche a Visual Basic in cui il codice non poteva migrare facilmente dal vecchio Visual Basic al nuovo VB.NET.

È stata una transizione impegnativa per gli sviluppatori e Visual Basic ha iniziato a perdere la testa nella condivisione all'interno dello sviluppo aziendale e in Microsoft. Anche così, Microsoft ha promesso di mantenere sincronizzati C # e VB.NET. Le funzionalità create per C # diventerebbero parte di Visual Basic, i due linguaggi sviluppati insieme. Il motivo era che erano spesso usati per lo stesso compito e avevano la stessa natura di fondo: entrambi i linguaggi fortemente tipizzati e orientati agli oggetti che lavoravano con gli stessi strumenti.

Visual Basic e C #: sta arrivando una nuova divergenza

Con l'annuncio della scorsa settimana, quella coevoluzione è sparita. Microsoft lascerà che le due lingue vadano in modi diversi, a partire dal Visual Basic 15 di prossima uscita.

Non è un divorzio sorprendente. La popolarità di C # è cresciuta a passi da gigante, mentre Visual Basic è scivolato lentamente in basso nelle classifiche, quasi scomparendo dal radar dei popolari siti di query di programmazione come Stack Overflow. I casi d'uso stanno cambiando, anche: Visual Basic è ancora focalizzata sul suo paradigma client-server originale, mentre il C # è diventato uno strumento per n applicazioni web-based -tier, lavorando nel cloud e nei locali. Con sempre più app create per funzionare con il Web e il cloud, non sorprende che C # stia diventando la prima scelta per molti progetti.

Ci sono anche cambiamenti nel modo in cui vengono sviluppate le lingue. C # è passato a un modello di progettazione aperto, il che significa che i suoi utenti sono al posto di guida per dare la priorità alle nuove funzionalità, grazie a una mailing list attiva e a un repository GitHub pubblico. Microsoft ha già adottato nuove funzionalità dall'esterno dell'azienda, un grande cambiamento rispetto ai suoi processi di ingegneria linguistica tradizionali incentrati sui suoi gruppi di ricerca e sui team interni di gestione dei prodotti.

Visual Basic ha anche un modello di progettazione aperto, ma ha priorità diverse da C #. Supporta già un sottoinsieme delle funzionalità di C # nelle build correnti come parte della release candidate di Visual Studio 2017.

Poiché C # continua a divergere da Visual Basic, vedremo i due linguaggi svilupparsi separatamente, anche se dovrebbero essere in grado di funzionare insieme. Entrambi dovrebbero comunque indirizzare le stesse API .NET ed entrambi faranno ancora parte degli strumenti di Visual Studio.

Cosa significano questi cambiamenti per gli sviluppatori aziendali

Al momento, c'è molto poco da fare per le imprese riguardo a questa imminente divergenza.

Ma in futuro, c'è sicuramente spazio per il lavoro multipiattaforma in Visual Basic, poiché si passa al supporto del set .NET Standard di librerie di classi di base insieme al familiare .NET Framework. Anche se parte del codice sarà portabile, non tutto il codice Visual Basic sarà in grado di passare da un insieme di librerie a un altro insieme più piccolo. È probabile che il codice esistente rimarrà esclusivamente su Windows e esclusivamente nelle applicazioni locali.

In qualità di sviluppatore, dovrai scegliere tra portare il codice Visual Basic su piattaforme più recenti tramite .NET Standard o passare a linguaggi come C # che offrono una gamma più ampia di framework e dispositivi di destinazione.

Poiché .NET Standard è destinato a tutte le piattaforme .NET, è un importante equalizzatore. Tuttavia, non è necessario per tutti i linguaggi .NET. Sebbene Visual Basic ne abbia bisogno su sistemi che non dispongono di .NET Framework completo, C # sarà in grado di indirizzare direttamente piattaforme come .NET Core, accedendo alle sue API. Ciò rende anche più facile per i derivati ​​C #, come Unity, supportare le proprie API specializzate.

C # con supporto per .NET Framework su Windows e .NET Core open source (in esecuzione su Nano Server e in contenitori) diventerà la prima scelta per il cloud e per le applicazioni mobili, mentre il modello di programmazione funzionale F # sarà ideale per i servizi finanziari e applicazioni che si basano sull'apprendimento automatico.

Un chiaro driver per queste modifiche è l'acquisizione di Xamarin da parte di Microsoft. Microsoft necessita di un set di strumenti multipiattaforma per supportare una gamma più ampia di dispositivi mobili, con Windows Mobile che non riesce a guadagnare quote di mercato aziendali come sperato. Anche nelle aree geografiche compatibili con Windows Mobile come il Regno Unito, iOS e Android insieme detengono oltre l'80% del mercato. Gli sviluppatori Microsoft che desiderano creare front-end mobili per le loro applicazioni dovranno utilizzare strumenti come Xamarin per indirizzare le piattaforme mobili dominanti.

Con Xamarin incentrato su C #, Microsoft deve chiarire che C # è il linguaggio .NET di prima classe in futuro. Sebbene ciò non sia esplicito nei recenti annunci in lingua di Microsoft, è fortemente implicito.

Come dovresti gestire la tua strategia linguistica aziendale

Questo non è un addio a Visual Basic, ma è il momento di fare il punto su dove sei e dove vuoi essere. Le applicazioni Visual Basic esistenti possono continuare a essere sviluppate, ma con l'evolversi della piattaforma .NET sottostante, dovresti aspettarti che solo un sottoinsieme di API .NET sia disponibile per i tuoi sviluppatori Visual Basic. Anche se questo non sarà probabilmente un problema a breve termine, dovresti prepararti per una migrazione a lungo termine a C # o F #, soprattutto se stai pianificando esperienze utente mobili o multipiattaforma per le tue applicazioni.

Sembra chiaro che l'opzione migliore per evitare l'eccesso di debito tecnico è rendere C # la tua priorità per il nuovo sviluppo. C # offre un supporto di prima classe e un modello di progettazione guidato dall'utente. È anche il cuore dello sviluppo multipiattaforma di Microsoft e della sua piattaforma Windows universale. Ciò significa che puoi scrivere la logica aziendale una volta, quindi offrire esperienze utente personalizzate per il Web, Windows 10, iOS, Android e MacOS. C'è anche abbastanza comunanza linguistica che gli sviluppatori dovrebbero essere in grado di effettuare le transizioni in modo relativamente semplice, acquisendo nuove funzionalità dopo la formazione iniziale.