Friday 22 October 2010

Aggiungi un posto a Valaram?

Ulmo, Vala delle Acque (disegno di John Howe)
Per chi segue il mondo dell'open-source o anche solo quello della programmazione, ricorderà sicuramente il putiferio nato quando alcune distribuzioni iniziarono ad installare di default il framework Mono. La scelta fu ferocemente contestata: il fatto che Mono sia ispirato al .NET di Microsoft  e che, secondo alcuni, ci fossero dei "problemi di licenza", spinse diversi utenti ad alcune iniziative un po' esagerate, tra cui la reimplementare in Java o C++ dei programmi «colpevoli» di essere stati scritti utilizzando Mono (come F-Spot e Beagle)
I più moderati, però, sapevano bene come mai era stato scelto Mono per la scrittura di alcune applicazioni e i motivi erano gli stessi per cui Microsoft realizzò il framework .NET: ossia la possibilità di includere interi pezzi di altri programmi con una facilità estrema: potete includere Firefox come browser nella vostra applicazione usando un import e un Firefox f=new Firefox(). Niente male, eh? E questo può funzionare anche per altri programmi, come Evolution, Pidgin, Nautilus, fogli di calcolo, database ecc. Il motivo per cui si iniziò a lavorare con Mono è questo ed è lo stesso che prima ha spinto gli ingegneri di Microsoft a progettare .NET.
La scelta può essere discutibile, ok. Ma continuare lo sviluppo di Gnome non è facile e non si risolve con prese di posizione "a priori" o coding selvaggio in C++.
Un team separato di programmatori, però, ha iniziato a lavorare in maniera parallela al problema e ideò un altro linguaggio di programmazione,pulito come Java, veloce come C++ e integrato con il sistema a oggetti GObject di Gnome. Il risultato si chiama Vala, ossia "Potenza" e termine generico con cui vengono indicati gli dei presenti ne «Il Silmarillion» di Tolkien.

Io per primo ero dubbioso sulle capacità di questo linguaggio, specialmente per la sua toolchain che, son sicuro, vi farà inarcare il sopracciglio: il programma scritto in Vala viene letto dal compilatore: questo, anziché trasformarlo in codice macchina, lo trasforma in codice C che viene poi compilato dal buon vecchio gcc. Non è poi così strano: i primi compilatori C++ funzionavano esattamente così.
La scelta di creare un nuovo linguaggio non è da prendere a cuor leggero, specialmente in un'era dove se ne possono contare almeno otto di veramente utilizzati e all'epoca liquidai Vala come «l'idea scema di quattro geek»
Invece, contrariamente alle mie previsioni, scopro che Shotwell, il nuovo gestore di foto di Ubuntu, è stato scritto in Vala. E non solo: altri progetti interessanti del gruppo Yorba sono scritti in questo nuovo linguaggio. Pare, insomma, che «l'idea scema» tanto scema non fosse.

Che Vala possa occupare il posto di Mono in Gnome? Potrebbe essere interessante. Che possa cambiare qualcosa nel panorama della programmazione in generale? Improbabile, visto che è pesantemente basato su GLib e GTK; inoltre non sarebbe portabile a livello binario, poiché essendo compilato in codice macchina con gcc.
Sul suo futuro non so davvero cosa dire se non un "staremo a vedere". Però, sicuramente, prima o poi Vala dovrà fare i conti con un linguaggio che concettualmente gli somiglia e che è finanziato dal "solito noto". il linguaggio è Go; il finanziatore Google.

No comments: