I see a lot of discussion about which language to use for developing 3D games in real time, and the general consensus is that C or C ++ are the only languages that can offer suitable performance for high-end, system-intensive 3D games. I see that many people say that C #, Java or Python is too slow, especially due to garbage collection. What about Objective-C? Does Objective-C have automatic garbage collection? What besides automatic garbage collection makes the language “too slow” or unsuitable for 3D games?
This question is probably more of a “thought experiment,” since I doubt that I will ever create a game so resource-intensive that these issues need to be addressed, but as a programmer, I’m inexplicably obsessed with performance, so I would still like to only know for your own jollies.
Objective-C 2.0 has garbage collection available on Mac OS X 10.5, but it is optional - you can compile Objective-C applications without garbage collection if you want to. On other platforms (iPhone, Mac OS X up to 10.5, etc.) there is no garbage collection, and you need to manually manage your memory.
Objective-C C, plain C Objective-C, . , Objective-C , C. Objective-C, , .
Objective-C , Cocoa, . Objective-C .
, : OpenGL, , Objective-C . , Objective-C Cocoa , - , , C/++ . , , .
, , OS X Objective-C Cocoa, , C/++ ( OpenGL).
, http://wiki.gnustep.org/index.php/3DKit
, clang/llvm 2.9 Objective-C 2 Linux 3D API.
Objective-C . Java , , . , # - , , , .
, 3D-, , . , .
PS To answer your initial question, I’m sure that anyone who has an iPod Touch or iPhone can tell you that Objective-C definitely depends on 3D games :)