Objective C
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.
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.
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.
A list of OS/2 implementations of Objective C
- EMX Compiler - Open source - Discontinued
- Portable Object Compiler - Open source - Discontinued
- Objective-C Compiler v4.0 (Stepstone Corp.)
OS/2 text editors with Objective-C support
- jEdit - Java based editor - Objective-C 3 syntax highlighting built in - Current.
A list of DOS implementations of Objective C
- EMX Compiler - Open source - Discontinued
- Portable Object Compiler - Open source - Discontinued
- Stepstone Objective-C - Commercial - Discontinued
A list of Objective C implementations that run under WinOS/2
A list of Objective C implementations that run under Java
A list of Objective C implementations in JavaScript
Publications
- Brad Cox, Andrew Novobilski: Object-Oriented Programming: An Evolutionary Approach - 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
- 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
Tutorials and other learning material
Links
USENET
- comp.lang.objective-c - By now almost exclusively focused on the Apple version of Objective-C and fairly low volume - Go to the Google groups version if you are newsgroup challenged.