Still, I would suggest people who are seriously interested in developing for the iPhone to check if plain Objective-C works for them, first.
My recipe is:
- Objective-C for the minimum necessary to deal with the iPhone specific APIs.
- plain C for critical parts which need to be optimized for speed and memory consumption.
- your favorite embeddable language implementation (mine at the moment is TinyScheme, but I've also used Lua) for scripting.
Also, consider that often you may need to include libraries written in c or c++. This is trivial to do from Objective-C.
You can do big complex apps in dynamic languages though. But iPhone is a somewhat restricted environment (not THAT restricted, really) where you are encouraged to use as small a footprint as reasonably possible.
Stuff like PHP indicates that plenty of people are quite happy to do quick one off's. Or Tcl/Tk for Unix, or VB for Windows. Scripting is a very sensible idea, and phones are quite capable of handling it these days.
I think it's extremely interesting creating something that opens up development to more people.
You still start out with the same set of classes and methods as in Cocoa+Obj-C, but how you abstract on top of it can be radically influenced by the language you're using.
Lexical scoping with real anonymous functions, for example, is a huge win. It catches Obj-C up to the 70s, at least :)