I had a poke around the net to check in on the Objective-C community (the language community, not the Cocoa programmer community).
I found it a bit of a surprise when I read the current “official” Objective-C FAQ. Doesn’t look like it has been updated in a while and the content that is there seems to have some relatively large holes.
Fortunately, there is an alternative comp.lang.objective-C FAQ that is a bit more up to date.
Update: Yup. Politics is at play. The original FAQ is maintained by David Stes, who has a somewhat antagonistic relationship with the community and seems to have largely ignored the success of the NeXT, now Apple, fork of Objective-C. As a result, the “official” FAQ largely ignores the details of Objective-C as it ships on Mac OS X and GNUstep, easily the two most popular “forms” of Objective-C shipping today.
This isn’t entirely surprising.
David wrote the Portable Object Compiler (POC). At its core, POC seems to have forked the Objective-C language about the time Stepstone’s technology base was transferred into NeXT (regardless of when POC development started, that is about the “snapshot” of the language from which it seems to be derived).
POC includes its own implementation of the ICpak101 classes and excludes a number of the “modern” additions to Objective-C (“modern” being defined as most of the additions since about 1988).
Beyond the method invocation syntax and a subset of class declarations, POC cannot compile most Objective-C code written in the past decade. Everything from various syntactic differences through to the built in classes are incompatible.
POC does have some very interesting features. Blocks and garbage collection, namely. From a coding perspective, blocks/closures are definitely of interest.
I’m not sure I like David’s block syntax, but I have yet to think of anything better (though, honestly, I haven’t given it much thought, either) and it is somewhat also be the result of having to parse the ICpak APIs.
While POC is an interesting project, it seems to be a disservice to the project to continue binding it so tightly with the rest of the Objective-C world. Beyond the method invocation syntax, there just doesn’t seem to be much that POC has in common with the Objective-C that most developers use!
With that divergence in mind, it seems odd that the “official” Objective-C FAQ is limited to details of Objective-C before 15 years ago. To me, it seems like it would be more useful to have a POC FAQ and for the alternative FAQ to become the real FAQ.