Per data, gli utenti hanno scaricato oltre 140 miliardi di applicazioni per iphone.1 Il successo di iPhone è legato al suo ecosistema di applicazioni di terze parti., Quando l’App Store ha debuttato nel 2008, tutte le app sono state scritte in un linguaggio di programmazione che pochi al di fuori della comunità Apple avevano mai usato: Objective-C. Da allora, l’utilizzo di Objective-C è esploso in una corsa all’oro di sviluppatori che fanno app. Anche se Apple ha introdotto il suo nuovo linguaggio Swift nel 2014, la maggior parte del sistema operativo iOS di Apple è ancora scritto in Objective-C, quindi sarà sui dispositivi Apple per gli anni a venire.
Mentre la maggior parte dei programmatori ha scoperto Objective-C solo durante la rivoluzione delle app per iPhone, Objective-C è in circolazione da oltre 30 anni., Objective-C è stato il fondamento del sistema operativo desktop di Apple, Mac OS X, dal suo debutto nel 2001, ed è stata anche la base per NEXTSTEP-antenato immediato di OS X-creato da Steve Jobs’ NeXT Computer Inc. Tuttavia, Objective-C non è stato creato né da Apple né da NeXT. La sua origine era una piccola startup del Connecticut nei primi anni 1980 chiamata Stepstone.
Segui Computer History Museum Facebook/Twitter
La storia antica di Objective-C e la successiva evoluzione di NeXT non sono ben note, e ci sono pochissime fonti disponibili., A CHM, abbiamo recentemente acquisito un saggio sulla “Storia di Objective-C”, co-scritto da Brad Cox e Steve Naroff, presentato alla terza conferenza di Storia dei linguaggi di programmazione nel 2007, ma mai pubblicato. Ho anche condotto una storia orale con Cox, il creatore iniziale della lingua, e con Blaine Garst, un ingegnere successivo che in seguito ha contribuito a Objective-C. Queste fonti, oltre a una precedente intervista che ho condotto con Naroff, sono la base per la seguente storia.,
Le idee che hanno portato a Objective-C origine in una divisione di International Telephone and Telegraph (ITT), dove Tom Love e Brad Cox erano alla ricerca di modi per migliorare la produttività dei programmatori. Nel 1981 un numero speciale della rivista Byte descrisse un nuovo rivoluzionario linguaggio di programmazione, Smalltalk, che era stato sviluppato dal team di Alan Kay allo Xerox PARC. Smalltalk rappresentava un modo radicalmente nuovo di pensare alla creazione di programmi, che Kay chiamava “object-oriented.,”Piuttosto che scrivere un programma come una serie di azioni (“procedure”), che prendono i dati come input, un programma sarebbe ri-orientato attorno ai dati stessi, raggruppati all’interno di “oggetti.”Smalltalk immaginava i programmi come raccolte di oggetti, che inviavano messaggi l’uno all’altro, inducendoli a invocare “metodi” (eseguire azioni). I metodi invocati sono stati selezionati “dinamicamente”, cioè mentre il programma era in esecuzione. Pertanto, un programma Smalltalk può modificarsi in tempo reale, in risposta all’input dell’utente.,
Cox ha visto enormi vantaggi di produttività in un linguaggio come Smalltalk. Immaginava che avrebbe permesso a lui e all’Amore di creare librerie di oggetti che potevano essere mescolati e abbinati come Lego., Piuttosto che dover scrivere tutto da zero, un programmatore potrebbe utilizzare oggetti esistenti o “prefabbricati” per creare rapidamente un nuovo programma. Cox immaginava un futuro in cui le librerie di oggetti sarebbero state comprate e vendute, inaugurando una rivoluzione industriale del software con queste parti “intercambiabili”.
Smalltalk, tuttavia, aveva diversi inconvenienti. Era lento, era la tecnologia di Xerox e richiedeva che tutti i programmi scritti in esso venissero eseguiti in un ambiente speciale., Cox e Love si impegnarono ad usare UNIX dei Bell Labs, un sistema relativamente aperto, con una grande base esistente di programmi scritti in C. C era un linguaggio che rendeva veloci ed efficienti i programmi. Cox ha avuto l’idea di sposare le idee orientate agli oggetti di Smalltalk con C e ha pubblicato questo lavoro in un documento del 1983, chiamandolo Object-Oriented Precompiler (OOPC). Cox lo ha intenzionalmente reso il più semplice possibile, pensandolo come una “pistola di saldatura” che avrebbe saldato la programmazione orientata agli oggetti su C., Cox contrastava questo con il nuovo linguaggio C++ di Bell Labs, che combinava anche C e programmazione orientata agli oggetti, ma in un modo molto più complesso, che Cox paragonava a un impianto di fabbricazione.
Dopo aver incontrato resistenza presso ITT, e un breve periodo presso Schlumberger, Love e Cox hanno iniziato la propria azienda per portare queste idee sul mercato, originariamente chiamato Productivity Products International, e in seguito Stepstone. Cox riscrisse l’OOPC con un nuovo compilatore e rinominò il linguaggio Objective-C. Tuttavia, comportava ancora una traduzione del codice Objective-C in un normale codice C., Love ha specificato alcuni aspetti del suo design, inclusa la decisione di renderlo un linguaggio ibrido con due livelli concettuali, con un codice orientato agli oggetti di livello superiore letteralmente tra parentesi dal codice C procedurale con caratteri di parentesi quadre.2
Con l’attenzione della società sulla vendita di librerie di oggetti scritti utilizzando Objective-C, Cox ha spostato la sua attenzione su queste librerie. Stepstone ha anche concesso in licenza il linguaggio Objective-C ai clienti, molti dei quali hanno chiesto modifiche o nuove funzionalità., Cox assunto un gruppo per gestire lo sviluppo del linguaggio, e ha cominciato ad aggiungere funzionalità come garbage collection e un interprete. Questi erano in corso quando il business delle librerie di oggetti di Stepstone si prosciugò e la società ripiegò.