Jump to content

Objective C: Difference between revisions

From EDM2
Ak120 (talk | contribs)
 
(16 intermediate revisions by the same user not shown)
Line 1: Line 1:
A variant of the programming language [[C]] that adds an object system. While conceptually similar to [[C++]] the main difference is that Objective C takes the object system from [[Smalltalk]] while C++ takes it from [[Simula]], also there is greater emphasis on standard libraries for C++ than with O-C and the latter language has some dynamic features while C++ is unashamedly static. Objective C never really took off the ground, the industry focused on C++ as it was an open standard while Objective C was a property system supported by one vendor who had trademark rights to the language name and their product was only really a pre-processor rather than a true compiler, the only company supporting it these days is [[Apple Inc.]], but they acquired their toolset from [[NeXT]], who in turn acquired their kit from language designers Stepstone.
A variant of the programming language [[C]] that adds an object system. While conceptually similar to [[C++]] the main difference is that Objective C takes the object system from [[Smalltalk]] while C++ takes it from [[Simula]]. Also there is greater emphasis on standard libraries for C++ than with Objective C and the latter language has some dynamic features while C++ is unashamedly static.


Note that the origins of the language tools as a pre-processor meant that it never really gained language features over the years but simply mirrored changes in C, so while C++ and similar languages evolve to become more [[Oberon]] like, with more structured features and garbage collection as default rather than an option (this does not force you to use GC, it just must be a part of the base), Objective-C has stagnated. There have been a few minor niggles that have never been fixed so when Apple took over the development there were hopes of changes. However after introducing a number of experimental features including a garbage collector, Apple withdrew most if not all of them form their later toolkits which over all is a negative, but on the plus side it means that developing with the old [[GCC]] and Stepstone compilers today is not as painful an experience as you might think, the difference between them and the Apple features comes down to libraries and not language features.
==History==
''Objective-C'' was a property system supported by one vendor who had trademark rights to the language name and their product was a pre-processor rather than a true compiler.
[[Apple]] acquired their toolset from [[NeXT]], who in turn acquired their kit from [[Stepstone Corporation]].


People coming to Objective-C from the C and C++ world often complain that O-C uses overly verbose syntax in comparison with its relatives, there may be a grain of truth in this but on the other hand it makes O-C code slightly more readable than C++. Note that the use of the dynamic features of the language slows the code down even if not to the degree that it resembles SmallTalk, however care needs to be taken when doing speed-dependant code and when real time code or other time-dependant is being written it is best to avoid the dynamic functions altogether.
Note that the origins of the language tools as a pre-processor meant that it never really gained language features over the years but simply mirrored changes in C, so while C++ and similar languages evolve to become more [[Oberon]] like, with more structured features and garbage collection as default rather than an option (this does not force you to use GC, it just must be a part of the base), Objective-C has stagnated. There have been a few minor niggles that have never been fixed, so when Apple took over the development there were hopes of changes. However after introducing a number of experimental features including a garbage collector, Apple withdrew most if not all of them from their later toolkits which over all is a negative, but on the plus side it means that developing with the old [[GCC]] and Stepstone compilers today is not as painful an experience as you might think, the difference between them and the Apple features comes down to libraries and not language features.


==A list of OS/2 implementations of Objective C==
People coming from the C and C++ world often complain that Objective C uses overly verbose syntax in comparison with its relatives, there may be a grain of truth in this but on the other hand it makes Objective C code slightly more readable than C++. Note that the use of the dynamic features of the language slows the code down even if not to the degree that it resembles Smalltalk, however care needs to be taken when doing speed-dependent code and when real time code or other time-dependent is being written it is best to avoid the dynamic functions altogether.
* [[EMX Compiler]] - Open source - Discontinued
* [http://users.telenet.be/stes/compiler.html Portable Object Compiler] - Open source - Discontinued


====OS/2 text editors with Objective-C support====
==OS/2 implementations==
* [[jEdit]] - Java based editor - Objective-C 3 syntax highlighting built in - Current.
*GNU GCC (EMX) - Open source
*Portable Object Compiler - Open source
*Stepstone [[Objective-C]] Compiler v4.0


==A list of DOS implementations of Objective C==
==DOS implementations==
* [[EMX Compiler]] - Open source - Discontinued
*GNU GCC (EMX) - Open source
* [http://users.telenet.be/stes/compiler.html Portable Object Compiler] - Open source - Discontinued
*Portable Object Compiler - Open source
* [[Stepstone Objective-C]] - Commercial - Discontinued
*Stepstone Objective-C


==A list of Objective C implementations that run under WinOS/2==
==Win-OS/2 implementations==
* [[Borland Extensions To Objective-C]]
*Borland Extensions To Objective-C


==A list of Objective C implementations that run under Java==
*
==A list of Objective C implementations in JavaScript==
*
==Publications==
==Publications==
* Brad Cox and Andrew Novobilski: Object-Oriented Programming: An Evolutionary Approach - 1991 - ISBN: 0201548348 - Out of print
* Brad J. Cox: ''Object-Oriented Programming: An Evolutionary Approach'' - Addison-Wesley 1987, ISBN 0-201-10393-1
====Local articles====
* Brad Cox, Andrew Novobilski: ''Object-Oriented Programming: An Evolutionary Approach'' 2nd edition - Addison-Wesley 1991, ISBN 0-201-54834-8
*  
* Lewis J. Pinson, Richard Wiener: ''Objective-C: Object-Oriented Programming Techniques'' - Addison-Wesley 1991, ISBN 0-201-50828-1
 
* Timothy Budd: ''An Introduction to Object-Oriented Programming'' - Addison-Wesley, ISBN 0-201-54709-0
====Tutorials and other learning material====
* Stephen G. Kochan: ''Programming in Objective-C 2.0'' - 2009, ISBN 0-321-56615-7
*
* Stephen G. Kochan: ''Programming in Objective-C'' - 2013, ISBN 0-321-96760-7


==Links==
==Links==
*
* [http://gnustep.made-it.com/BG-objc/ Beginners Guide to Objective-C Programming]
====USENET====
* USENET: [news:comp.lang.objective-c comp.lang.objective-c] - By now almost exclusively focused on the Apple version of Objective-C and fairly low volume
* [news:comp.lang.objective-c comp.lang.objective-c] - By now almost exclusively focused on the Apple version of Objective-C and fairly low volume - Go to the [https://groups.google.com/forum/#!forum/comp.lang.objective-c Google groups version] if you are newsgroup challenged.


==Standards==
*
[[Category:Programming Languages]] [[Category:Objective C]]
[[Category:Programming Languages]] [[Category:Objective C]]

Latest revision as of 03:51, 6 November 2022

A variant of the programming language C that adds an object system. While conceptually similar to C++ the main difference is that Objective C takes the object system from Smalltalk while C++ takes it from Simula. Also there is greater emphasis on standard libraries for C++ than with Objective C and the latter language has some dynamic features while C++ is unashamedly static.

History

Objective-C was a property system supported by one vendor who had trademark rights to the language name and their product was a pre-processor rather than a true compiler. Apple acquired their toolset from NeXT, who in turn acquired their kit from Stepstone Corporation.

Note that the origins of the language tools as a pre-processor meant that it never really gained language features over the years but simply mirrored changes in C, so while C++ and similar languages evolve to become more Oberon like, with more structured features and garbage collection as default rather than an option (this does not force you to use GC, it just must be a part of the base), Objective-C has stagnated. There have been a few minor niggles that have never been fixed, so when Apple took over the development there were hopes of changes. However after introducing a number of experimental features including a garbage collector, Apple withdrew most if not all of them from their later toolkits which over all is a negative, but on the plus side it means that developing with the old GCC and Stepstone compilers today is not as painful an experience as you might think, the difference between them and the Apple features comes down to libraries and not language features.

People coming from the C and C++ world often complain that Objective C uses overly verbose syntax in comparison with its relatives, there may be a grain of truth in this but on the other hand it makes Objective C code slightly more readable than C++. Note that the use of the dynamic features of the language slows the code down even if not to the degree that it resembles Smalltalk, however care needs to be taken when doing speed-dependent code and when real time code or other time-dependent is being written it is best to avoid the dynamic functions altogether.

OS/2 implementations

  • GNU GCC (EMX) - Open source
  • Portable Object Compiler - Open source
  • Stepstone Objective-C Compiler v4.0

DOS implementations

  • GNU GCC (EMX) - Open source
  • Portable Object Compiler - Open source
  • Stepstone Objective-C

Win-OS/2 implementations

  • Borland Extensions To Objective-C

Publications

  • Brad J. Cox: Object-Oriented Programming: An Evolutionary Approach - Addison-Wesley 1987, ISBN 0-201-10393-1
  • Brad Cox, Andrew Novobilski: Object-Oriented Programming: An Evolutionary Approach 2nd edition - Addison-Wesley 1991, ISBN 0-201-54834-8
  • Lewis J. Pinson, Richard Wiener: Objective-C: Object-Oriented Programming Techniques - Addison-Wesley 1991, ISBN 0-201-50828-1
  • Timothy Budd: An Introduction to Object-Oriented Programming - Addison-Wesley, ISBN 0-201-54709-0
  • Stephen G. Kochan: Programming in Objective-C 2.0 - 2009, ISBN 0-321-56615-7
  • Stephen G. Kochan: Programming in Objective-C - 2013, ISBN 0-321-96760-7

Links