Il modello di sviluppo proposto da Google unisce efficienza a semplicità di programmazione.
Alla fine dell’estate del 2007 nei laboratori di Google si riuniscono superstar e santoni della programmazione, come Ken Thompson, Rob Pike e Robert Griesemer per compilare la lista delle caratteristiche dovrebbe avere che un linguaggio di programmazione moderno.
I programmatori non si contentano mai degli strumenti a disposizione, meno che mai i ricercatori che sono abituati a costruirsene di nuovi a ogni occasione, come Ken Thompson, che creò il linguaggio B da cui derivò il C prima di scrivere un sistema operativo diventato famoso: Unix con il C, creato dal collega Ritchie.
Le motivazioni per un cambiamento
I linguaggi di programmazione cercano di rispondere a domande che sono in conflitto fra loro, come un maggiore controllo per evitare gli errori, più libertà nella programmazione, più semplicità di codifica e più efficienza in esecuzione. Chiaramente è necessario un compromesso fra questi obiettivi e ogni linguaggio sceglie il suo punto di equilibrio.
Nell’area dell’efficienza del codice generato il C è sempre stato il signore incontrastato, il C++ ha tentato di dare un incremento all’efficienza nella codifica di applicazioni, fallendo l’obiettivo fino al momento in cui è stato dotato di una libreria di template standardizzata e potente e comunque creando troppi ostacoli al programmatore. Java ha spostato l’equilibrio dal lato della sicurezza aggiungendo una macchina virtuale, la garbage collection e diverse rigidità sintattiche che permettono ai programmatori (molto meno consapevoli dell’ambiente di esecuzione dei programmatori C) di codificare a una velocità notevole. Prima o poi, però, un programmatore Java desidera un ambiente più leggero e più libertà di espressione.
C# ha ripreso le stesse linee evolutive esplorando qualche territorio innovativo e con le ultime versioni ha fatto del suo meglio per dare al programmatore più libertà di espressione e libertà di sbagliare, ma è sempre un linguaggio legato a una macchina virtuale e a un singolo produttore (nonostante Mono, un’alternativa open source per aprire il linguaggio a più piattaforme). (…)
[Estratto dall’articolo pubblicato sul numero 226, in edicola dal 23 dicembre]