The only thing I really don't like about Objective C is that message passing is considerably slower than function calling. You just can not manipulate an image using the `setPixelX:Y:` method in anything close to real time. Using functions in C, this is no problem.
So, there you go: Write your algorithms in C, write your program logic in Objective C. Oh, and I love how the OpenGL C API interacts so nicely with Objective C and Cocoa!
That said, I have a fair bit of experience with PyQt. I would ditch Objective C for something like MacRuby any day, but then I would (sorta) lose the ability to drop down to C if need be. (Still, does anyone have any solid experience in MacRuby? I would love to hear some!)
Also, if you're calling an Objective-C method and dynamic dispatch is causing measurable performance issues, you can cache a pointer to the C function that backs the method (called the IMP) via the class_getMethodImplementation() runtime API.
I tried MacRuby once a few months ago (https://github.com/tilltheis/fullscreenclock) and I have to tell you the Cocoa parts lacked some essential features (like correct syncing of Ruby and Cocoa setters).
But the nice thing about it is that you can intermix Obj-C and Ruby code freely to write the low level parts of your app in C/Obj-C if you want to. There is even a bridge between C/Obj-C and Ruby which enables you to call native functions from your Ruby code.
I think the nature of OpenGL's API (internal state, very simple C-style functions - contrast with DX) means it is very portable. Java also interacts nicely with it, as does C++, and I've not worked with WebGL but the very fact it exists says something about it.
OpenGL is a good API, but it's design is fairly terrible, and its implementations range from quirky to terrible (cosnider Intel's support for anything above 1.4).
The notion of internal state is fine and well for only the most trivial of programs--once you start doing something requiring multithreading nothing but sadness awaits.
So, there you go: Write your algorithms in C, write your program logic in Objective C. Oh, and I love how the OpenGL C API interacts so nicely with Objective C and Cocoa!
That said, I have a fair bit of experience with PyQt. I would ditch Objective C for something like MacRuby any day, but then I would (sorta) lose the ability to drop down to C if need be. (Still, does anyone have any solid experience in MacRuby? I would love to hear some!)