Objective-C: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Incipit
Storia, tradotto da en:wiki
Riga 6:
 
La sua diffusione è principalmente legata al [[framework]] [[OpenStep]] di [[NeXT]] e al suo successore [[Cocoa]], presente nel sistema operativo [[Mac OS X]] di [[Apple]]. A [[NeXT]] si deve il supporto dell'Objective C nel compilatore [[gcc]] di [[GNU]].
 
==Storia==
===Le origini===
Nei primi anni '80, la pratica comune dell'[[ingegneria del software]] era basata sulla [[programmazione strutturata]]. Questa modalità era stata sviluppata per poter suddividere programmi di grandi dimensioni in parti più piccole, principalmente per facilitare il lavoro di sviluppo e di manutenzione del software. Ciononostante, col crescere della dimensione dei problemi da risolvere, la programmazione strutturata divenne sempre meno utile, dato che conduceva alla stesura di un numero sempre maggiore di procedure, ad uno ''[[spaghetti code]]'' e ad uno scarso riuso del [[codice sorgente]].
 
Venne ipotizzato poi che la [[programmazione orientata agli oggetti]] potesse essere una potenziale soluzione al problema. In effetti [[Smalltalk]] aveva già affrontato molte di queste questioni ingegneristiche, pur con lo svantaggio di necessitare di una [[macchina virtuale]] che interpretava un [[oggetto (informatica)|oggetto]] in memoria chiamato immagine contenente tutti gli strumenti necessari. L'immagine Smalltalk era molto grossa, usava tendenzialmente un'enorme quantità di memoria per l'epoca e girava molto lentamente anche per la mancanza di un supporto specifico dell'[[hardware]] alle macchine virtuali.
 
L'Objective C fu creato principalmente da [[Brad Cox]] e [[Tom Love]] all'inizio degli anni '80 ala [[Stepstone]]. Entrambi erano stati introdotti a Smalltalk durante la loro permanenza al Programming Technology Center della [[ITT Corporation]] nel [[1981]]. Cox aveva iniziato ad interessarsi ai problemi legati alla riusabilità del software e si accorse che un linguaggio simile a Smalltalk sarebbe stato estremamente valido per costruire potenti [[framework|ambiente di sviluppo]] per i progettisti di ITT. Cox iniziò così a modificare il compilatore C per aggiungere alcune delle caratteristiche di Smalltalk. Ottenne così ben presto una implementazione funzionante di una estensione ad oggetti del linguaggio C che chiamò ''OOPC'' (Object-Oriented Programming in C). Nel frattempo Love fu assunto da Schlumberger Research nel [[1982]] ed ebbe l'opportunità di acquisire la prima copia commerciale di Smalltalk-80 che influenzò in seguito lo sviluppo della loro creatura.
 
Per dimostrare che il linguaggio costituiva un reale progresso, Cox mostrò che per realizzare componenti software intercambiabili erano necessari pochi adattamenti pratici agli strumenti già esistenti. Nello specifico, era necessario supportare gli oggetti in modo flessibile con un insieme di [[libreria software|librerie software]] che fossero usabili e consentissero al codice sorgente (e ad ogni risorsa necessaria al codice) di essere ''raccolto'' in un solo formato [[multipiattaforma]].
 
Cox e Love formarono infine una nuova [[impresa]], la Productivity Products International (PPI), per commercializzare il loro prodotto che accoppiava un compilatore Objective C con una potente classe di librerie.
 
Nel [[1986]] Cox pubblicò la sua descrizione dell'Objective C nella sua forma originale nel libro ''Object-Oriented Programming, An Evolutionary Approach''. Sebbene fosse attento a puntualizzare che la questione della riusabilità del software non poteva essere esaurita dal [[linguaggio di programmazione]], l'Objective C si trovò spesso ad essere confrontato, caratteristica per caratteristica, con gli altri linguaggi
 
===NeXT===
Nel [[1998]], [[NeXT]], la compagnia fondata da [[Steve Jobs]] dopo [[Apple]], ottenne la licenza dell'Objective C da Stepstone (allora proprietaria del [[marchio]]) e realizzò il proprio compilatore Objective C e le librerie sulle quali basò l'[[interfaccia utente]] di [[NeXTSTEP]]. Sebbene le [[workstation]] NeXTSTEP non riuscirono ad avere un forte impatto sul mercato, i loro strumenti vennero ampliamente apprezzati dall'industria del settore. Ciò portò NeXTstep ad abbandonare la produzione di hardware ed a focalizzarsi sugli strumenti software, vendendo NeXTSTEP (e [[OpenStep]]) come piattaforma per la programmazione.
 
In seguito il [[GNU|progetto GNU]] iniziò a lavorare sul clone gratuito che chiamò [[GNUstep]], basato sullo [[standard]] OpenStep. [[Dennis Glatting]] scrisse il primo [[run-time]] gnu-objc nel [[1992]] e [[Richard Stallman]] lo seguì subito dopo con un secondo. il run-time GNU Objective C, che è usato dal [[1993]], è stato sviluppato da [[Kresten Krab Thorup]] mentre era studente universitario in [[Danimarca]].
 
===Apple===
Dopo aver acquisito NeXT nel [[1996]], Apple ha usato OpenStep come base per il suo nuovo [[sistema operativo]] [[Mac OS X]]. Questo gli consentì di includere l'Objective C di NeXT ed il suo sistema di sviluppo [[Project Builder]] (in seguito rinominato [[Xcode]]). La maggior parte delle attuali [[API]] di Apple ([[Cocoa|API Cocoa]]) sono basate sugli oggetti d'interfaccia di OpenStep e costituiscono il più significativo ambiente di sviluppo basato su Objective C attualmente usato.
 
== Interfaccia ed implementazione ==