A proposito di fallimenti
Così come non è stato un lancio di dadi a determinare la nascita del Rinascimento in Italia e non in Finlandia, così non è stato un lancio di dadi a far sì che l’iPhone si originasse in Apple. Così come agli umanisti italiani è bastato guardare con occhi nuovi all’ambiente, intriso di classicità, che li circondava, così alle persone della Apple è bastato prendere quello che avevano elaborato e versarlo in uno nuovo stampo. A creare il device dei device non poteva essere Nokia, che alle origini era una società che fabbricava stivali di plastica. Neppure poteva essere Samsung che si era specializzata nella produzione di spaghetti e poi nella raffinazione dello zucchero.
Quasi mezzo secolo di ossessione della Apple per le interfacce utente, la semplicità d’uso, l’integrazione indissolubile tra hardware e software, sotto la spinta della visione olistica del suo capo, non potevano che sfociare in qualcosa di rivoluzionario come l’iPhone. Allo stesso modo l’eredità classica pervasiva del paesaggio italiano e della mentalità sfociò nell’umanesimo e nel Rinascimento.
È uno dei tanti paradossi che costellano la marcia della tecnologia che iOS, il software che motorizza l’iPhone, nasca dal lascito di uno dei cinque maggiori fallimenti della storia del computer: NeXT. NeXT era la società avviata da Steve Jobs dopo la sua uscita da Apple nel 1985. Costruiva workstation futuristiche motorizzate da un software anch’esso avveniristico, NeXTstep. Definito da Steve Jobs “la vera gemma” dell’innovazione attuata da NeXT, NeXTstep era troppo avanti per i suoi tempi. Si trattò di uno dei maggiori fallimenti, certo, ma anche una delle esperienze più seminali della storia del computer seconda solo a quella dello Xerox Parc di Palo Alto. NeXT fu anche la palestra nella quale Jobs imparò a meditare e correggere suoi errori. L’altra grande palestra di leadership fu Pixar dove Jobs imparò molto da Edwin Catmull e John Lassater.
La Apple, una NeXT con una differente denominazione
La storia del NeXT è stata raccontata più volte e da ultimo, molto in dettaglio, da Walter Isaacson, il biografo di Steve Jobs. È sufficiente sapere che nel 1996 la tecnologia di NeXT e tutti i suoi dipendenti furno assorbiti dalla Apple a seguito del rientro di Jobs nella società che aveva co-fondato. Da lì è iniziata la lunga marcia verso la Apple di oggi: 1000 dollari di investimento in azioni Apple del 1995 oggi varrebbero 117mila dollari. Coloro che con Jobs approdarono da NeXT alla Apple avevano percorso quel lungo e impervio cammino simile a quello che Senofonte descrive nell’Anabasi.
Ma questo si sa. Una cosa, però, si conosce di meno. La tecnologia del NeXT e soprattutto il suo sistema operativo, NeXTstep, ha nutrito incessantemente la tecnologia della Apple per oltre 20 anni e gli uomini e le donne provenienti da NeXT sono stati collocati nei posti di maggiori responsabilità della società della mela. Tanto che a un certo punto non si faceva mistero sull’esistenza di una sorta di “mafia NeXT” o “casta NeXT”, tanto importante era l’influenza e la retribuzione delle persone che venivano da quello esperienza, i NeXTonian.
I NeXTonian
Tra i NeXTonian passati ad Apple in ruoli di primo piano c’è Avie Tevanian, la mente dietro l’architettura software di NeXT e successivamente di Mac OS X, che è rimasto in Apple fino al 2006 come Chief Software Technology Officer. Proviene dal NeXT Scott Forstall, che è stato responsabile dello sviluppo del software IOS fino all’ottobre 2010. Anche Craig Federighi, successore di Tevanian e oggi responsabile dell’intera area software di Apple, è un NEXTonian. Tra loro c’è pure Budd Tribble, uno dei fondatori di NeXT, a cui si deve la famosa definizione di “campo di distorsione della realtà” a proposito della visione di Jobs. Budd è tornato in Apple nel 2002 e ha ricoperto fino al 2015 la carica di Vice-president of Software Technology.
Recentemente Scott Forstall, al Computer History Museum di Mountain View in un meeting indetto per celebrare il decennale dell’iPhone, ha raccontato come è nato l’iPhone nella mente di Steve Jobs e come è stato realizzato dal team che lui stesso insieme agli altri manager che erano stati chiamati a dirigerlo. Di questa testimonianza ci occuperemo in un altro post. Adesso occupiamoci di NeXTstep e del suo lascito in casa Apple.
Da NeXTstep a Mac OS X a iOS
Che tra NeXTstep e iOS ci sia un rapporto di diretta filiazione, mediato da Mac Os X, è qualcosa che va oltre ogni ragionevole dubbio. Un consistente numero di classi che costituiscono l’architettura del sistema di sviluppo di iOS (denominato Cocoa e poi Swift) hanno il prefisso “NS” che sta per NextStep. Prima ancora di iOS, NeXTstep era diventato Mac OS X che nel 2001 fu rilasciato come sistema operativo della nuova generazione di Mac.
Proviene direttamente da NeXT il tool grafico, parte di XCode (l’ambiente di sviluppo di iOS), per costruire l’interfaccia utente delle applicazioni per i dispositivi iOS e per unire i vari elementi che la compongono. Non ha neppure mutato il suo nome, si chiama Interface Builder e produce un file.nib (abbreviazione di NeXT Interface Builder).
Anche la “X” inclusa nel nome del nuovo sistema operativo dei Mac è un indizio mica da poco: sta per NeXT o, forse con maggiore probabilità, sta per UniX, che oltre a costituire il nucleo di NeXTstep è anche il nucleo di Mac OS X. L’origine di questa “X” comunque non la conosciamo, ma tra tutto questo c’è una strettissima parentela.
Che Jobs volesse preservare e sviluppare l’eredità dei suoi 10 anni di duro lavoro e di travaglio in NeXT è fuori discussione. Durante quella esperienza, libero da ogni costrizione esterna e con i capitali messi da Ross Perot e da Canon, aveva dato attuazione alla sua visione di rendere il computer il più smart degli elettrodomestici.
Unix e il micronucleo Mach
Come NeXTstep, Mac OS X e iOS sono basati su Unix, il sistema operativo portabile sviluppato nei laboratori Bell e rilasciato nel 1969. La principale caratteristica di Unix è la sua capacità di eseguire applicazioni in timesharing. Il timesharing consente alla memoria centrale del computer (CPU) di distribuire il suo tempo tra più attività e più utenti. Il che significa che se un’applicazione si blocca inaspettatamente per una qualsiasi ragione, questo evento non provoca il blocco dell’intero sistema e conseguentemente delle altre applicazioni in timesharing.
Unix consente agevolmente il multitasking, la protezione della memoria e l’esecuzione di programmi e servizi in background, cioè senza il controllo diretto dell’utente. Tutte proprietà che i sistemi operativi dei primi personal computer non avevano. Per esempio un sistema motorizzato da Unix può eseguire un brano musicale mentre effettua una stampa, l’utente sta processando una formula in un foglio di calcolo e un secondo utente remoto sta scaricando un file in rete dalle risorse di quel computer.
Per sviluppare l’architettura di sistema di NeXTstep Jobs chiamò Avie Tevanian che aveva lavorato al progetto Mach della Carnegie-Mellon University. Mach, che diventerà il Kernel di NeXT, era costruito su un approccio radicale conosciuto come “architettura del micro-nucleo” in base al quale il sistema operativo doveva esternalizzare il maggior numero di funzioni allo scopo di migliorare la sua stabilità. Un principio contrario a quello in voga all’epoca.
Objective-C
Come NeXTstep, Mac OS X e iOS sono stati sviluppati in Objective-C, un linguaggio di programmazione ad oggetti derivato dal linguaggio C. Objective-C consente agli sviluppatori di applicazioni di utilizzare blocchi di codice preimpostati (oggetti) per sviluppare determinate funzioni rutinarie, senza bisogno di programmarle da zero. Gli oggetti sono una sorta di componenti prefabbricati che si possono assemblare per ottenere un determinato edificio, come si fa con il lego.
In una intervista del 1995 Jobs dichiarò che la programmazione ad oggetti avrebbe rivoluzionato il modo di creare software nei successivi 20–30 anni. E così è stato.
Alcune applicazioni tutt’oggi utilizzate sul Mac o sull’iPhone sono l’evoluzione del software inizialmente sviluppato per la piattaforma NeXT. Tra queste Numbers (inzialmente Parasheet), Keynote (inizialmente Concurrence), Pages, OmniGraffle (inizialmente Diagram!).
Obiective-C era stato creato da Brad Cox, un brillante sviluppatore dello Xerox’s Palo Alto Research Center, come evoluzione di SmallTalk le cui grandi potenzialità Jobs aveva immediatamente intuito durante la sua leggendaria visita al centro nel 1977. Jobs ottenne da Cox la licenza per l’uso di Objective-C nel NeXT e nel 1995 Apple acquisì Stepstone, la società fondata da Cox, proprietaria del linguaggio.
AppKit Framework
Insieme al linguaggio Obiective C, NeXT sviluppò anche una serie di oggetti preconfezionati da utilizzare per sviluppare software. Questi oggetti furono raccolti in un framework denominato AppKit che in casa Apple è diventato Cocoa per OS X e nel 2008 Cocoa Touch per iOS. Oltre a sollevare gli sviluppatori dal compito gravoso di sviluppare parti rutinarie del software, AppKit consente alle più disparate applicazioni di mettere nelle condizioni l’utente di usare le stesse modalità di utilizzo di alcune funzioni, sollevando l’utente da ogni problema di apprendimento.
Interface Builder
Interface Builder è un tool grafico che consente agli sviluppatori di costruire una interfaccia utente prelevando in blocco (drag and drop) da una palette gli elementi (bottoni, caselle di testo, menu a comparsa, finestre ecc.) che costituiscono una interfaccia grafica. Questi elementi oltre a presentare un definito aspetto grafico hanno incorporate tutte le necessarie funzionalità. La palette è estendibile con nuovi oggetti che una volta costruiti possono essere trascinati al suo interno e da quel momento resi disponibili come gli oggetti nativi. Le diciture degli oggetti si autolocalizzano in base alla lingua selezionata nel software di sistema.
Interface Builder è stato costruito dallo sviluppatore francese Jean-Marie Hullot che Steve Jobs, nel 1985, chiamò a lavorare a NeXT dopo aver assistito a una demo che lo aveva convinto di aver
messo le mani su una “killer app”. Interface Builder non fu integrato in NeXTstep, ma offerto come applicazione a sé stante insieme al Sofware Development Kit. Apple ha poi integrato Inteface Builder in Mac OS X e in iOS. Con Interface Builder, su un computer NeXT, Tim Berners Lee, al Cern di Ginevra, ha sviluppato il primo prototipo di WordWideWeb.
Display PostScript
Mentre tutti i sistemi operativi degli anni novanta utilizzavano la grafica raster (cioè costruita a griglie di pixel) per visualizzare testo ed icone sugli schermi dei computer, NeXT utilizzava la grafica vettoriale (cioè a punti, linee, curve e poligoni) per visualizzare a video icone, testo e illustrazioni. La qualità di un’immagine vettoriale è enormemente superiore a quella di un’immagine bitmap o raster perché è in grado di sfruttare la risoluzione massima del dispositivo dove si visualizza. Mentre nella grafica raster è la risoluzione dell’immagine a determinarne la qualità di visualizzazione.
La tecnologia utilizzata da NeXT, per ottenere la grafica vettoriale a video, era fornita da Adobe (la casa di software di Photoshop, Illustrator e Acrobat) attraverso un tool chiamato Display Postscript. Gli ingegneri di NeXT riscrissero interamente il motore del tool di Adobe per adattarlo al sistema operativo orientato agli oggetti.
Mac OS X e iOS usano oggi un differente tool, chiamato Quartz, per la visualizzazione della grafica a video il quale, però, impiega lo stesso concetto di grafica vettoriale. Quartz produce immagini vettoriali simili al Postscript usando il modello di rendering dei PDF. L’abbandono del Postscript è dovuto essenzialmente ai costi derivanti dall’acquisizione delle licenze d’uso da Adobe.
I Bundle
OS X e iOS entrambi usano una modalità di gestione delle applicazioni derivata da NeXTstep. Si tratta dei bundle cioè una directory che permette di raggruppare il codice sorgente eseguibile e tutte le risorse, compresi i plug-in, necessarie al funzionamento di un’applicazione. Tutti questi file risiedono all’interno di questo pacchetto senza essere compilati nell’eseguibile come succede con Windows. Il sistema operativo, a basso livello, vede il bundle come un insieme di file e l’utente come una semplice icona. Si tratta di una soluzione che semplifica enormemente l’operatività grazie alla semplice struttura gerarchica delle directory.
Il File manager
Il Finder è il file manager di Apple che si occupa di gestire la navigazione tra i dischi, le cartelle e i file. Con Mac OS X il Finder fu interamente riprogettato sul modello del file manager di NeXTstep che nella sua essenza è simile a quello di Windows. Alla semplice lista dei file o delle relative icone di una directory, tipica di Mac OS delle origini, Mac OS X introduce anche una visualizzazione di tipo gerarchico del tutto analoga a quella di NeXTstep. Questa struttura si sviluppa a finestre contigue mostrando il contenuto della directory o della risorsa selezionata così da avere visualizzato l’intero percorso della risorsa all’interno del file system.
Ci sono molti altri aspetti che Mac OS X e iOS hanno derivato da NeXTstep e dalla sua esperienza, veramente una delle esperienze più seminali e ricche di insegnamenti della storia della tecnologia.
E allora, triplice urrà per i fallimenti!