Coheebuzz said:
My only experience with programming has been/is with HyperTalk, Lingo and ActionScript. A few months ago i decided to try RealBasic and i really really liked it, very easy to learn and you can start producing *multiplatform* apps in no time! However i quickly struck its limitations so now am certain that Objective-C is the way to go because there are already build-in classes into OSX that i can use to build what i have in mind.
Realbasic is nice and easy but I quickly got tired of it's limitations. Primarily it's lack of scalability and it's bugs and the fact that you end up paying every year for the damn thing.
Also, does it really help to begin with C or C++ and then move towards Objective C? I don't want to become a programming guru, am a g designer and i just want to know enough so that i can work out solutions by myself. I mean what can Carbon do better than Cocoa in everyday examples? Sure carbon is more mature than Cocoa in terms of available classes but new stuff are added all the time.
I'd advise using objective-c/cocoa when you can and carbon when you can't. It's a lot easier to write an app in obj-c/cocoa than it is in carbon. There are some things that you can't do yet in cocoa (IIRC spotlight, core image, authorization for example) but you can include carbon code in a cocoa app. You'll find that there are lots of folks out there writing Cocoa wrappers around the nasty bits of the carbon API (because Apple hasn't got round to it).
If you plan on doing objective-C then don't bother with learning C++. It's a lot harder and most of it you won't need. Learning C would be a good idea but you don't need to be a real C guru for Cocoa. A basic understanding will probably do. So long as you understand variables, loops, conditionals etc you should be fine.
I'm not sure how you'd learn this but I think it's more important to quickly grasp how to design apps using objects than to be a real **** hot C programmer. Also make sure you read and understand the retain - release mechanism. If you get it wrong, objects vanish when you least expect (because you should have retained them) or you leak memory (because you didn't release something you should've).
Finally, In cocoa it seems that there's tons of methods to learn and loads of classes but there are patterns to the naming of them and the documentation is pretty good. When you first start out you do tend to spend a LOT of time looking at the documentation for every line of code looking for the right method! That stage should pass with a few hundred lines of code under your belt