# Google Code

Google Code è il sito web di Google che fornisce strumenti, API e risorse tecniche agli sviluppatori software. Il sito contiene la documentazione sull'uso degli strumenti per gli sviluppatori di Google e le API inclusi i gruppi di discussione e i blog per gli sviluppatori che usano i prodotti di Google. Ci sono API fornite per quasi tutti i prodotti più popolari di Google presso i consumatori, come Google Maps, YouTube, Google Apps e altri. Il sito include anche un assortimento di prodotti e strumenti particolarmente dedicati agli sviluppatori. Google App Engine è un servizio di hosting per le applicazioni web che fornisce agli utenti il controllo di versione per il codice open source. Il Google Web Toolkit (GWT) permette agli sviluppatori di creare applicazioni AJAX usando il linguaggio Java. Il sito contiene informazioni di riferimento per i prodotti per sviluppatori basati su comunità con cui Google è coinvolta, tra cui Android dalla Open Handset Alliance e OpenSocial dalla OpenSocial Foundation.
Il 12 marzo 2015 Google ha annunciato la chiusura del progetto Google Code, esortando gli sviluppatori a muovere i loro progetti verso altre piattaforme (come ad esempio GitHub, per il quale è prevista una procedura automatizzata). La chiusura ufficiale del sito è avvenuta il 25 gennaio 2016.

## API di Google

Google offre un vasto assortimento di API, in particolar modo API web per gli sviluppatori web. Le API sono basate sui prodotti di Google più popolari tra cui Google Maps, Google Earth, Google AdSense, Adwords, Google Apps e YouTube.

### API dati di Google

Le API dati di Google permettono ai programmatori di creare applicazioni che leggono e scrivono dati dai servizi di Google. Attualmente vi sono API per le applicazioni Google Apps, Google Analytics, Blogger, Google Base, Google Book Search, Google Calendar, Google Code Search, Google Earth, Google Spreadsheets, Google Notebook, e Picasa Web Albums.

### API Ajax

La API Ajax di Google permettono agli sviluppatori di implementare siti web dinamici interamente scritti in JavaScript e HTML. Uno sviluppatore può creare la mappa di un sito, una casella di ricerca dinamica, o scaricare i feed con poche righe di codice JavaScript.

### API pubblicità

Le API Google AdSense e AdWords, basate sullo standard di scambio dati SOAP, permettono agli sviluppatori di integrare le loro applicazioni con i suddetti servizi di Google. Le API AdSense permettono ai proprietari di siti web e di blog di gestire il sign-up, il contenuto e il reporting di AdSense, mentre le API AdWords forniscono ai clienti AdWords l'accesso da programma ai loro conti e alle campagne di AdWords.

## Strumenti per sviluppatori e progetti open-source
### App Engine

Google App Engine permette agli sviluppatori di eseguire applicazioni web sull'infrastruttura di Google. Google App Engine supporta le applicazioni scritte in diversi linguaggi di programmazione. Tramite l'ambiente di runtime di Java dell'App Engine, l'utente può costruire una applicazione usando le tecnologie Java, tra cui la JVM, i servlet Java, e il linguaggio di programmazione Java o un altro linguaggio usando un interprete o compilatore basato su JVM, come JavaScript o Ruby. L'App Engine possiede anche un ambiente di runtime dedicato a Python, che include a veloce interprete Python e la libreria standard Python.

### Google Web Toolkit

Il Google Web Toolkit (GWT) è un toolkit open source che permette agli sviluppatori di creare applicazioni AJAX usando il linguaggio di programmazione Java. Il Google Web Toolkit supporta lo sviluppo software client-server, e il debugging in qualsiasi IDE Java. Con una successiva pubblicazione, il compilatore GWT permette di tradurre una'applicazione Java in una equivalente applicazione JavaScript che a livello di programma può gestire un HTML DOM di un browser web usando tecniche DHTML. Il Google Web Toolkit enfatizza soluzioni riutilizzabili ed efficienti ricorrenti nello sviluppo con Ajax, ovvero chiamate di procedura remota asincrone, gestione dello storico, gestione dei segnalibri, e la portabilità tra browser. Il Google Web Toolkit è pubblicato sotto la Apache License versione 2.0.

### Hosting di progetti

Google Code presenta un servizio di hosting di progetti che fornisce controllo versione offrendo sia il software Subversion sia il software Mercurial (implementati usando BigTable come storage), un tracciatore di problemi (issue tracker), un wiki per la documentazione, e il supporto allo scaricamento di file. Il servizio è disponibile gratuitamente per tutti i progetti Open Source approvati dall'organizzazione Open Source Initiative (dal 2010, viene raccomandato ma non più richiesto di usare una delle nove licenze open source più conosciute: Apache, Artistic, BSD, GPLv2, GPLv3, LGPL, MIT, MPL e EPL). Il sito limita il numero di progetti che una persona può avere a 25. Inoltre c'è un limite al numero di progetto che possono essere creati in un giorno.

### Gears

Gears è un software in versione beta offerto da Google per attivare l'accesso off-line ai servizi che normalmente lavorano soltanto on-line. Esso installa un motore database, basato su SQLite, sul sistema client per memorizzare i dati localmente tramite cache. Le pagine attivate di Gears usano i dati della suddetta cache locale piuttosto che quelli del servizio online. Usando Gears, un'applicazione web può periodicamente sincronizzare i dati nella cache locale con il servizio online. Se una connessione di rete non è disponibile, la sincronizzazione è rimandata fino a quando viene stabilita una connessione di rete. In questo modo Gears permette alle applicazioni web di lavorare persino in mancanza di un accesso al servizio di rete.

## Eventi Google per gli sviluppatori

Il "Google I/O" è il più grande evento di Google dedicato agli sviluppatori.
Il "Google Developer Day" è un evento annuale di Google dedicato agli sviluppatori.
Il "Google Summer of Code" è un programma guida per trovare studenti per i progetti open source.
Il "Google Code Jam" è una competizione internazionale di programmazione.