Seguendo la ricerca dei pro e dei contro che già ho affrontato qui mi sono imbattuto in quella che sembra essere una valida giustificazione alla scelta di C# a discapito di VB: la compatibilità con Mono.
Mono è il progetto che si occupa dello sviluppo di un framework per Linux compatibile con .NET ma che – ci tengono a sottolinearlo – non ha niente a che vedere con .NET
Eppure consultando le FAQ del loro sito al primo posto troviamo la domanda : “Posso far girare i binari compilati con VS2005 su Mono ?”. La risposta è Si. In realtà non è proprio così … almeno non ancora. Sicuramente l’obiettivo finale di questo progetto è quello di rendere possibile il grande “sogno” di Microsoft che l’ha portata a mettere in campo il framework .NET : ovvero avere applicazioni scritte con i “cosiddetti” propri linguaggi di sviluppo che girano su server non Microsoft. La compilazione MSIL, infatti, viene poi interpretata dal framework: differenti framework che leggano – ed eseguano – lo stesso MSIL rendono le applicazioni platform-independent.
Senza questo obiettivo in mente Microsoft non avrebbe, a mio parere, avuto alcun interesse a sviluppare questa nuova tecnologia e, molto probabilmente, si sarebbe concentrata sulla produzione di nuovi compilatori specifici per ogni linguaggio direttamente eseguibili di propri sistemi operativi.
Mono è, dunque, “l’altro” framework … quello che permette(rà) l’avverarsi del sogno. La stessa sponsorship di Novell nel progetto lascia intuire, anche alla luce dei recenti accordi con la casa di Redmond, che Microsoft stessa guardi in modo benevolo al progetto: probabilmente concedendo anche qualche “extra” di documentazione.
Benchè sotto molti aspetti considerato “maturo”, il progetto Mono non supporta ancora tutti i metodi (oltre 8.000) offerti dal framework .Net e specialmente il supporto a VB.NET è ancora in fase acerba.
Ed ecco che casca l’asino : C# è la sintassi condivisa tra gli sviluppatori Win e gli sviluppatori Linux. La cosa evidentemente ha anche un senso: non essendo mai stata presente una vera versione VB per Linux l’unico punto di incontro tra i due mondi poteva essere solo un derivato di C.