tante curiosità e trucchetti dal mondo dell'informatica
In casa Google non basta guidare le classifiche dei motori di ricerca e dei browser internet; e non si accontentano nemmeno dei grandi risultati ottenuti nel campo della telefonia mobile grazie ad Android.
A Mountain View sono sempre pronti a lanciarsi in duello contro qualsiasi tecnologia o software che sia un punto di riferimento per la comunità informatica: stavolta il guanto di sfida è lanciato verso i linguaggi di programmazione, e come al solito nel mirino è finito non un linguaggio qualsiasi, bensi quelli che sono probabilmente le pietre miliari della programmazione a basso livello, il C e il suo figlio ad oggetti C++.
L'obiettivo dichiarato di Go (è questo il nome scelto da Google per il suo nuovo linguaggio di programmazione, che ha come testimonial il pupazzo Gopher, animale non meglio identificato...) è infatti piuttosto ambizioso, e consiste nell'unire la velocità di sviluppo tipica del linguaggi dinamici come Python alla sicurezza e alle performances dei linguaggi compilati come C e C++.
Fine ultimo di questa missione è ottenere un linguaggio che produca codice compilato con le stesse prestazioni di un programma C, ma che allo stesso tempo sia ottimizzato per girare su sistemi multi-core: l'applicazione ideale di questo linguaggio, secondo i piani della compagnia riguarda lo sviluppo di applicazioni di sistema, quali web server, sistemi di storage e database, insomma tutto quello che sta dietro le interfacce web di un qualsiasi sito.
In realtà gli utilizzi a cui si presta questo linguaggio sono i più vari, e coincidono in tutto e per tutto con quelli classici del C e della sua variante a oggetti, da cui, come dimostra l'esempio di codice che mostriamo (il classico Hello World), eredita in gran parte la sintassi.
Il nuovo linguaggio di Google quindi unisce la velocità di compilazione dei linguaggi di scripting, come Python, Perl e Php alla potenza e alla versatilità dei linguaggi più evoluti. Inoltre il supporto completo e nativo alle architetture multi-core permette di aumentare ancora di più la velocità di esecuzione dei programmi; tale concetto è implementato tramite le Go-Routines, dei processi leggeri e veloci eseguibili ognuno su un core diverso ad esempio, a cui sono delegati i compiti di gestione dei server e dei servizi da implementare.
Attualmente il linguaggio è ancora in fase di sperimentazione e nessun servizio di Google è implementato tramite questa piattaforma. Il kit di sviluppo però è disponibile con licenza BSD, in modo che tutti gli sviluppatori volenterosi possano contribuire alla sua diffusione proponendo in prima persona dei programmi scritti nel nuovo linguaggio.