James Gosling: Costruire per i tostapane, finire ovunque
James Gosling si propose di costruire un linguaggio di programmazione per decoder televisivi interattivi ed elettrodomestici. Java finì per far girare i server dietro la maggior parte delle banche del mondo, i telefoni Android in miliardi di tasche e innumerevoli sistemi aziendali per i quali non era mai stato progettato: un caso di un ingegnere che ha risolto il problema sbagliato così bene che la soluzione lo ha superato completamente.
Da Calgary alla Carnegie Mellon
Gosling è nato il 19 maggio 1955 vicino a Calgary, in Alberta, Canada, e ha conseguito una laurea in informatica presso l'Università di Calgary prima di trasferirsi alla Carnegie Mellon University per il suo master e dottorato in informatica, completati nel 1983. Anche come studente di dottorato stava già costruendo infrastrutture che altri avrebbero usato: ha scritto Gosling Emacs, una variante precoce e influente dell'editor di testo Emacs, e ha costruito una versione di Unix per un computer multiprocessore a sedici vie, affrontando sistemi paralleli anni prima che l'hardware multicore diventasse una preoccupazione comune.
NeWS e la strada non presa
Il co-fondatore di Sun Microsystems, Andy Bechtolsheim, reclutò Gosling nel 1984, e vi trascorse i successivi ventisei anni. Uno dei suoi primi grandi progetti, sviluppato con David Rosenthal, fu NeWS (Network/Extensible Window System), un ambizioso sistema di finestre per display di workstation bitmap. NeWS era tecnicamente sofisticato, ma la decisione di Sun di non renderlo liberamente disponibile aiutò il sistema rivale X Window System a prevalere, una lezione formativa su come la licenza e l'apertura, non solo il merito tecnico, determinano quali sistemi sopravvivono. È stato un primo esempio di un modello che si sarebbe ripetuto, al contrario, con Java un decennio dopo.
Il progetto Green e la nascita di Java
Nel giugno 1991, Gosling si unì ai colleghi Mike Sheridan e Patrick Naughton in quello che Sun chiamava internamente "The Green Project", uno sforzo per progettare software per l'imminente ondata di elettronica di consumo: decoder, televisori e altri dispositivi che i dirigenti di Sun credevano avrebbero presto dovuto comunicare tra loro, una visione di "convergenza digitale" che era in anticipo sui tempi. Frustrato dai limiti del C++ per questo tipo di programmazione integrata e in rete, Gosling progettò un nuovo linguaggio, inizialmente chiamato "Oak" dal nome di un albero fuori dal suo ufficio, poi rinominato Java. Costruì il suo compilatore originale e la sua macchina virtuale, lo strato software che permetteva al bytecode Java compilato di girare in modo identico su hardware molto diversi: la base tecnica della promessa distintiva di Java, "scrivi una volta, esegui ovunque". La prima dimostrazione pubblica del team avvenne il 2 settembre 1992, mostrando lo Star-7, un controller multimediale portatile touchscreen caricato con un'interfaccia grafica basata su Java: un dispositivo che ha anticipato gli smartphone di oltre un decennio, anche se il mercato della televisione interattiva a cui si rivolgeva non si è mai pienamente materializzato. Java ha invece trovato il suo vero pubblico nell'esplosione del World Wide Web e nei server aziendali, diventando, secondo la maggior parte delle misure, il linguaggio di programmazione più utilizzato al mondo nel calcolo desktop, nella ricerca scientifica, nei sistemi aziendali e, infine, nell'ecosistema mobile di Android.
Venti domande, otto minuti di orologio e un percentile misurato su tutti quelli che l’hanno fatto. Senza registrazione.
Fai il test del QI →La vita dopo Sun
Gosling è rimasto in Sun come sua figura tecnica più visibile, ricoprendo titoli tra cui vice presidente e chief technology officer del suo gruppo di prodotti per sviluppatori, fino alla chiusura dell'acquisizione di Sun da parte di Oracle nel 2010. Ha lasciato Oracle nell'aprile di quell'anno, citando "riduzioni di stipendio, status e capacità decisionale, insieme a un cambio di ruolo e sfide etiche": una partenza pubblica marcata dall'azienda che ora controllava il linguaggio che aveva creato. È entrato brevemente in Google nel 2011, poi è passato a Liquid Robotics, una startup che costruiva robot autonomi per il rilevamento oceanico, acquisita in seguito da Boeing. Nel 2017 è entrato in Amazon Web Services come Distinguished Engineer, ruolo che ha ricoperto fino al pensionamento nel 2024.
Oracle contro Google e una lealtà complicata
La dichiarazione più discussa pubblicamente di Gosling nella sua carriera successiva riguardava lo storico contenzioso Oracle contro Google sul fatto se l'uso da parte di Google delle strutture API Java in Android costituisse violazione del copyright. Nonostante la sua amara partenza da Oracle, Gosling ha scritto che "sebbene io abbia divergenze con Oracle, in questo caso hanno ragione. Google ha totalmente truffato Sun": una lealtà sorprendente verso il linguaggio e l'azienda che aveva costruito, anche dopo aver lasciato in termini ostili. Ha tuttavia dichiarato in seguito di approvare la decisione finale della Corte Suprema secondo cui le API non dovrebbero essere protette da copyright, una sfumatura che ha catturato il suo istinto di separare le rimostranze personali dai principi tecnici e legali.
Riconoscimenti
Gosling ha ricevuto l'Economist Innovation Award e lo USENIX Lifetime Achievement Award, noto come "The Flame Award", nel 2002. È stato eletto alla National Academy of Engineering nel 2004 per i suoi contributi all'architettura di Java e ai sistemi di finestre, e nel 2007 il Canada lo ha nominato Ufficiale dell'Ordine del Canada, la seconda più alta onorificenza civile del paese. È diventato ACM Fellow nel 2013, ha ricevuto la IEEE John von Neumann Medal nel 2015 ed è stato nominato Computer History Museum Fellow nel 2019.
Perché James è chiamato un genio
La versione più forte dell'argomento a favore del genio di Gosling è architettonica: progettare una macchina virtuale e un formato di bytecode abbastanza robusti da consentire a un linguaggio costruito per i decoder nel 1991 di diventare, con solo una modesta revisione, il substrato per sistemi bancari aziendali, telefoni Android e server web un decennio dopo, girando senza modifiche su architetture di processore che nessuno in Sun aveva previsto. Questa è una forma specifica e dimostrabile di lungimiranza: costruire un livello di astrazione abbastanza generale da sopravvivere al suo scopo originale. Il suo stesso resoconto sulla leadership mina però qualsiasi mito del genio solitario; ha detto che la vera ricompensa del buon lavoro ingegneristico "non si capisce mai", e che il lavoro consiste principalmente nel "dare soldi a brave persone e dire loro di fare buone cose", attribuendo il successo di Java al team che il Green Project ha riunito, non a una sua intuizione singolare. Il controargomento onesto è che la sintassi di Java ha preso molto in prestito da C e C++, la sua promessa "scrivi una volta, esegui ovunque" ha richiesto anni di doloroso perfezionamento prima di funzionare in modo affidabile, e Gosling è stato uno dei tanti architetti essenziali piuttosto che un autore unico. Il suo genio, se la parola è appropriata, risiedeva nella progettazione dei sistemi e nella durabilità piuttosto che in un singolo lampo di originalità.
Eredità
Java rimane, decenni dopo la chiusura del Green Project, uno dei pezzi di infrastruttura software più importanti mai costruiti, che continua a formare nuovi programmatori e a far girare sistemi che il team originale di Gosling non aveva mai immaginato di colpire. Pochi ingegneri hanno visto un progetto costruito per un mercato che non è mai arrivato diventare indispensabile per mercati che non avrebbe mai dovuto servire.



