Avrete senz’altro sentito parlare del progetto Mono. Per chi non lo conoscesse, Mono rappresenta un tentativo di ricreare un ambiente di sviluppo multipiattaforma basato sul linguaggio C# compatibile con il framework .NET di Microsoft. Lo sviluppo di Mono è gestito in prima persona da Miguel de Icaza (il creatore di GNOME). Attualmente, la versione disponibile di Mono è la 1.2, compatibile con i framework .NET versione 1.1 e 2.0 (in maniera quasi completa).
L’idea è carina: offrire agli utenti Linux una piattaforma di sviluppo che permetta lo sviluppo di applicazioni portabili senza modifiche su altri sistemi, soprattutto verso Windows. Ma, a differenza di altri linguaggi che già permettono questo tipo di operazione (tipo Python, Ruby, Java ecc…), utilizzare un ambiente compatibile con il “pezzo forte” attualmente disponibile per Windows, vale a dire Visual Studio/Visual C#.
Perché non mi piace? Perché gli eseguibili che Mono genera hanno l’odiosissimo suffisso .exe! Direte voi: “ma è una cavolata assurda!”. Può esserlo, ma non per me… Se uso Linux è perché non voglio usare Windows, e viceversa. Se proprio sento il bisogno di usare tool di Windows, uso questa piattaforma. Capisco che Mono è open-source, a differenza di Visual Studio e di Visual C#, ma a parte il risparmio della licenza non riesco a vedere altri vantaggi. Devo imparare un linguaggio non nativo per Linux, non nato in un ambiente open-source (il C# è frutto del lavoro degli sviluppatori Microsoft, che hanno preso elementi del C++ e del Java per creare ex-novo questo nuovo linguaggio), con una piattaforma di sviluppo che non è al 100% compatibile con il framework .NET 2.0 quando a giro già c’è il 3.0 ed il 3.5… Insomma, mi devo barcamenare in un’impresa che mi sa tanto della serie “studio il C# perché non voglio apparire inferiore ai miei amici Windowsiani che lavorano con Visual Studio e mi snobbano se uso Python o simili”. E poi, ciliegina sulla torta: creo eseguibili .exe per Windows da piattaforma Linux… entusiasmante…