I was at the iPhone dev camp all day Saturday. After sitting through an hour of pitches from the event sponsors (funny, only one company seemed to give away schwag) we worked through a Cocoa tutorial.
My first impression of Cocoa programming is that it is a computer science major’s dream, full of references back to Smalltalk and C. They even talked about preprocessing in the tutorial. Ouch. What is exceptionally different about Cocoa is that MVC is built into the language itself. Java and Rails implement MVC in frameworks, but MVC is not built into the language itself. This was a very strange concept for me and made it hard for me to truly understand what was going on during the tutorial.
We spent some time with the Interface Builder tool, and that was awesome. This tool allows you to build desktop and iphone apps visually. It was extremely easy to use, but to bind data to the controls was really difficult. This was again most likely due to me not understanding Cocoa.
We then saw a demo by Norman Richards about how to take the tutorial application from desktop to iPhone, and that looked pretty straightforward (if you know Cocoa). He even put the app on the phone itself, which was very cool.
Overall I am impressed with what Apple has created for iPhone development. For web developers who are thinking about getting into this, I have to say that the learning curve for Cocoa looks pretty steep, so be prepared.