La nuvola permette molte cose, se usata intelligentemente. Tra le righe della Wwdc, la conferenza di due settimane fa degli sviluppatori del mondo Apple (prima azienda del pianeta per capitalizzazione di mercato e leader de facto con le sue due piattaforme, iOS e OS X, dell’informatica personale) emerge una novità tecnologica ignorata dalla maggior parte degli osservatori che invece promette di essere determinante per il futuro dell’evoluzione del software.
Apple infatti ha mostrato agli sviluppatori, che costituiscono l’ecosistema più importante per l’azienda ai quali ha pagato più di 30 miliardi di dollari in condivisione degli utili per le vendite sugli app store, di avere realizzato un nuovo strumento di sviluppo. La rivoluzione che Bitcode promette non è di poco momento, come vedremo tra un attimo, e discende direttamente dalla nuvola. Ma andiamo con ordine.
Bitcode è lo strumento che Apple utilizza per compilare (trasformare il codice sorgente scritto dai programmatori in informazioni eseguibili dal computer) in due momenti diversi le app. In pratica, grazie al compilatore LLVM (che ha sostituito Gcc) al cuore del sistema di sviluppo di Apple, i programmatori possono sviluppare in qualsiasi linguaggio vogliano le app e poi trasformarle in Bitcode. Questo stato intermedio tra codice sorgente e eseguibile binario viene lasciato nel cloud, all’interno dell’app store. Quando un utente decide di scaricare una app, lo store nella nuvola “riconosce” il processore e le caratteristiche dell’apparecchio sul quale viene installata la app e compila “al volo” la versione adatta per quel tipo di sistema, senza bisogno di intervento degli autori della app, di ottimizzazioni fatte a mano e senza rischio soprattutto di incompatibilità.
Come si può intuire, la potenza di questo sistema di distribuzione sta nella capacità di astrarre l’app rispetto all’hardware e farlo tuttavia in maniera nativa, senza ricorrere cioè alle soluzioni più usate in passato: macchine virtuali, come fa ad esempio Java, o senza ricorrere alle complicazioni tecniche al di fuori della portata della gran parte degli utenti che si avrebbero scaricando il codice sorgente e compilando direttamente sul computer dell’utilizzatore. Come avviene nel modello open source con Linux, ad esempio, ma con aggravi sulla richiesta di prestazioni del computer su cui compilare e soprattutto incapacità/mancanza di volontà dell’utente medio di fare questo tipo di operazioni.
Apple avrebbe toccato in questo modo uno degli obiettivi più ricercati da sempre nel mondo del software: la flessibilità e la retrocompatibilità assolute. A condizione che le piattaforme su cui si va a installare siano strettamente controllate (cosa possibile nel modello di forte integrazione verticale di Apple) e che quindi il Bitcode sia perfettamente bilanciato per tutti i tipi di hardware verso quelle app verranno realizzate, la soluzione permette sostanzialmente di avere app sviluppate una volta sola e compatibili con qualsiasi tipo di processore. Apple potrebbe cominciare a diversificare i fornitori di CPU ad esempio per i suoi Mac (oggi si approvvigiona da Intel) e le architetture dei suoi tablet e smartphone. Potrebbe anche mettere in commercio apparecchi basati su nuovi tipi di utilizzo che però possono sfruttare il sistema operativo e le app di altri ambienti (una Apple Tv evoluta con iOS a bordo).
Cosa Apple voglia fare in futuro si può solo cercare di intuire, ma questo tipo di evoluzione tecnologica potrebbe avere ricadute molto interessanti visto il vantaggio competitivo dell’azienda in questo settore: pur avendo il numero più basso di brevetti e di spesa in ricerca e sviluppo rispetto ai concorrenti come Google e Microsoft, Apple porta avanti lo sviluppo delle tecnologie per molti anni prima di rilasciarle, potendo così contare su prodotti e soluzioni inedite e tecnicamente più evolute rispetto a quelle che possono essere messe in pista dalla concorrenza. In questo caso, con Bitcode la nuvola gioca un ruolo chiave nel modello non solo di distribuzione ma anche di creazione e flessibilità delle app. Una mossa non da poco.