Introduzione e storia di Objective C



Objective C nasce da un idea di Brad Cox e Tim Love a metà degli anni '80, presso la StepStone Corporation, con l'idea di aggiungere al C le caratteristiche di SmallTalk (il primo linguaggio a oggetti).

Cox rilasciò il linguaggio nel 1986 ma non ebbe molto successo, fino a quando Steve Jobs, dopo aver lasciato Apple (1985), fondò la NeXT Computer e lo adottò come ambiente di sviluppo per il sistema operativo NeXTSTEP.

Anche se i prodotti Next Computer non ebbero un grande successo commerciale, il suo sistema operativo era all'avanguardia per il suo tempo. Per questo Jobs si concentrò sulla sola commercializzazione di NeXTSTEP, trasformando NeXT in una software house.

NeXTSTEP fu molto apprezzato sopratutto in ambienti accademici e scientifici. È su NeXTSTEP che nasce il primo server Web sui computer del CERN (1990). La carenza di software, comunque, decretò il fallimento commerciale anche di NeXTSTEP.

Figura 1. Il primo Web Server che gira su NeXTSTEP

Il primo Web Server che gira su NeXTSTEP

Nel frattempo anche le vendite dei computer Apple stavano crollando: il loro sistema, MACOS9, non era al passo con la tecnologia di allora e i progetti fatti per migliorarlo non portavano a nulla di buono. In questo frangente il ritorno di Jobs in Apple salvò sia NeXT dalla bancarotta, sia la mela dal declino: grazie a questo connubio Apple poté utilizzare NeXTSTEP per rimpiazzare il vecchio MacOS9.

Dalla modifica di NextSTEP applicato ad una base BSD Mach nacque il nuovo sistema operativo della mela : MacOS X (la X sta appunto per 10 in numeri romani). Con OSX, Apple cambiò completamente sistema operativo scegliendo con coraggio la discontinuità con il passato.

La storia ha dato ragione a Jobs ed oggi, grazie all'eredità di NeXTSTEP, utilizziamo Objective C per sviluppare sulla piattaforma MacOS X, e sui diversi dispositivi Apple, come iPhone.

Lavorando, come faremo in questa nostra guida, su Objective C, possiamo trovare alcune tracce dell'eredità di NeXTSTEP. Nei nomi delle classi principali, ad esempio, troviamo il prefisso NS (NSObject, NSArray, NSSet, ect.) che serviva a distinguere le classi di sistema, in assenza di namespace.

Anche nei file nib di Interface Builder, la N iniziale sta appunto per NextSTEP. Questo anche se adesso, pure continuando a chiamarsi "file nib", hanno formato xml e non binario ed hanno estensione xib e non più nib.

Un linguaggio dinamico

L'Objective C è un linguaggio di programmazione orientato agli oggetti, dinamico, non fortemente tipizzato, che, come abbiamo detto, deriva da SmallTalk, il celeberrimo capostipite di molti linguaggi Object Oriented, e da C, con il quale mantiene una completa compatibilità.

È dinamico perché posticipa a runtime la maggior parte delle azioni sugli oggetti. La conoscenza di come trattare a runtime gli oggetti deriva dal Runtime: una libreria che viene staticamente linkata ad ogni programma ObjectiveC. In sostanza il Runtime agisce come una specie macchina virtuale in cui "vivono" gli oggetti ObjectiveC.

Il Runtime mette a disposizione delle API che consentono ad esempio di conoscere per ogni oggetto a quale classe appartiene, i metodi e le proprietà che possiede ect.; queste caratteristiche avvicinano più Objective C a linguaggi tipo il Ruby o Python piuttosto che C++.

Essendo, quindi, un superset di C in Objective C si possono tranquillamente utilizzare tutti i metodi e le funzioni del C in maniera nativa.

Ultimi articoli Programmazione

Windows 8 Store, un posto in prima fila

La pre-certificazione che permetterà di avere le nostre applicazioni...

La concorrenza con C++11, async e la libreria Threading

La libreria Threading e i principali costrutti per sfruttare il...

Visual Studio 11 beta, le novità

Le caratteristiche più interessanti introdotte nella beta di Visual...

Windows 8, WinRT API e applicazioni Metro Style

Come creare una semplicissima interazione in stile Metro con C++...

C++11, la libreria standard

Le funzioni sugli insiemi e i contenitori mutuati dalle estensioni...

Altri articoli

Guide Programmazione

Azure, una nuvola tanti linguaggi

Entrare con semplicità ed efficacia nel mondo di Windows Azure e...

Guida Antipattern

Come evitare le cattive abitudini, le worst practices e le trappole...

RESTful Web Services - La Guida

Dai principi ispiratori del Web programmabile e delle architetture...

Altre guide

Newsletter @Programmazione

Ogni settimana, direttamente nella tua e-mail: articoli, script e guide su Java, Visual Basic, VB.Net ed i più diffusi linguaggi di programmazione.

Iscriviti alla newsletter

Altre newsletter

Corsi in aula

Amministratore di Reti Windows Server 2008

11 Giugno 2012 a Milano
Disponibilità: 5 Posti

Nessun corso previsto