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)
LauBot (discussione | contributi)
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 = httphttps://developer.apple.com/library/mac/navigation/
}}
'''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=httphttps://lists.apple.com/archives/Objc-language/2006/Aug/msg00039.html | titolo=documento Apple | lingua=en | urlmorto=sì | urlarchivio=https://web.archive.org/web/20090618184513/http://lists.apple.com/archives/Objc-language/2006/Aug/msg00039.html | dataarchivio=18 giugno 2009 }}</ref>, miglioramenti delle prestazioni del run-time<ref>{{cita web | url=httphttps://lists.apple.com/archives/Objc-language/2006/Aug/msg00018.html | titolo=documento Apple | lingua=en | urlmorto=sì | urlarchivio=https://web.archive.org/web/20101124014332/http://lists.apple.com/archives/Objc-language/2006/Aug/msg00018.html | dataarchivio=24 novembre 2010 }}</ref> e il supporto ai [[64-bit]]<ref>{{cita web | url=httphttps://developer.apple.com/leopard/overview/tools.html | titolo=documento Apple | lingua=en}}</ref>. Non è ancora noto quando queste evoluzioni saranno supportate nel run-time GNU, sebbene lo siano già in [[Mac OS X Leopard]]<ref>{{cita web | url=httphttps://www.apple.com/macosx/features/300.html#xcode3 | titolo=documento Apple | lingua=en}}</ref>.
 
==== 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=httphttps://www.apple.com/macosx/developertools/xcode.html | titolo=Mac OS X Leopard – Xcode 3.0 | autore=Apple, Inc. | anno=22 agosto 2006 | sito=apple.com | accesso=22 agosto 2006 | lingua=en}}</ref>
 
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|httphttps://developer.apple.com/documentation/Cocoa/Conceptual/ObjectiveC/|Introduction to The Objective-C Programming Language (Apple Developer Connection)|lingua=en}}
* {{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|httphttps://developer.apple.com/documentation/ReleaseNotes/Cocoa/Objective-C++.html|The Objective-C++ Front End|lingua=en}}
* {{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}}