Objective-C: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
Recupero di 5 fonte/i e segnalazione di 0 link interrotto/i. #IABot (v2.0beta14) |
m Bot: passaggio degli url da HTTP a HTTPS |
||
Riga 10:
|ha_influenzato = [[C++]], [[Swift (linguaggio di programmazione)|Swift]], [[Java (linguaggio di programmazione)|Java]]
|sistema_operativo = [[Multipiattaforma]]
|sito_web =
}}
'''Objective-C''', spesso citato anche come '''Objective C''' o '''ObjC''' o '''Obj-C''', è un [[linguaggio di programmazione]] [[riflessione (informatica)|riflessivo]] [[Programmazione orientata agli oggetti|orientato agli oggetti]], sviluppato da [[Brad Cox]] alla metà degli [[Anni 1980|anni ottanta]] presso la [[Stepstone]] Corporation.
Riga 49:
=== Objective C 2.0 ===
Alla [[Worldwide Developers Conference]] del [[2006]], [[Apple]] ha annunciato l'uscita di "Objective C 2.0" i cui contenuti sono la [[garbage collection]], migliorie nella sintassi<ref>{{cita web | url=
==== Garbage collection ====
Riga 579:
Il linguaggio può essere implementato con un compilatore C (in [[GNU Compiler Collection|GCC]], prima come un [[preprocessore]] ed in seguito come un modulo del compilatore) piuttosto che con un nuovo compilatore. Ciò consente all'Objective C di sfruttare l'enorme mole di codice, librerie e strumenti già esistenti in C che può essere adattata in Objective C per fornire un'interfaccia object-oriented. Tutte questi fattori riducono le barriere d'ingresso al nuovo linguaggio, fattore che costituì il problema principale di Smalltalk negli [[anni 1980|anni ottanta]].
Le prime versioni di Objective C non supportavano la [[garbage collection]]. Al tempo questa scelta fu oggetto di discussioni e in molti (ai tempi di Smalltalk) la consideravano un lungo "tempo morto" in cui il sistema era reso non più utilizzabile. Anche se qualche implementazione di terze parti (principalmente [[GNUstep]]) aveva già aggiunto questa caratteristica, è stata implementata da [[Apple]] una tecnica simile tramite [[Automatic Reference Counting|ARC]] in [[Mac OS X Leopard]], ma non è disponibile per applicazioni implementate per versioni precedenti del [[sistema operativo]].<ref>{{Cita web | url=
Un'altra critica comunemente fatta all'Objective C è quella di non avere un supporto nativo per i [[namespace]]. I programmatori sono perciò costretti ad aggiungere [[prefisso|prefissi]] in maniera più o meno arbitraria ai nomi delle classi che implementano, fatto che può causare collisioni. Dal [[2007]] tutte le classi e le funzioni di [[macOS]] in ambiente [[Cocoa (software)|Cocoa]] hanno il prefisso "NS" (es. ''NSObject'' o ''NSButton'') per identificarle chiaramente; "NS" deriva dal nome delle classi definite durante lo sviluppo di [[NeXTSTEP]].
Riga 605:
* {{cita web|http://programmazione.html.it/guide/leggi/183/guida-objective-c/|Guida Objective C - HTML.it}}
* {{cita web|http://www.devapp.it/wordpress/diventare-un-xcoder.html|Diventare un XCoder, guida introduttiva sullo sviluppo in Objective C per Mac OS X / iOS}}
* {{cita web|
* {{en}} ''[https://web.archive.org/web/20030704024148/http://developer.apple.com/documentation/Cocoa/Conceptual/ObjectiveC/ObjC.pdf The Objective-C Programming Language]''
* {{cita web|1=http://www.toodarkpark.org/computers/objc/|2=Object-Oriented Programming and The Objective-C Language|lingua=en|accesso=6 febbraio 2008|urlarchivio=https://web.archive.org/web/20041018235301/http://www.toodarkpark.org/computers/objc/|dataarchivio=18 ottobre 2004|urlmorto=sì}}
* {{cita web|
* {{cita web|1=http://www.otierney.net/objective-c.html|2=Beginner's Guide to Objective-C|lingua=en|accesso=6 febbraio 2008|urlarchivio=https://web.archive.org/web/20060212231701/http://www.otierney.net/objective-c.html|dataarchivio=12 febbraio 2006|urlmorto=sì}}
* {{cita web|http://objectivelib.sourceforge.net/|ObjectiveLib: variant of a Standard Template Library|lingua=en}}
|