Become a MacRumors Supporter for $50/year with no ads, ability to filter front page stories, and private forums.
What exactly is the differnce between Cocoa and objective-c? I'm reading stephen kochan's book programming in objective-c and the only reason I'm using Xcode is because I find it easier than using terminal.

Objective-C is the programming language. Cocoa is a set of APIs written in Objective-C. Therefore you need to know Objective-C to understand Cocoa.

Cocoa is not a programming language.

When I say command line stuff, I mean programs which do all there input and output via the Terminal or the Console (same difference really, if you use Xcode it'll be via the console 9 times out of 10).
 
Use the terminal! USE IT! Don't make things worse for yourself by trying to learn the IDE at the same time. You will never be hurt by knowing how to compile and run from the command line.

Explaining the difference between objective-C and cocoa now might not make any sense, but:
Objective-C is a programming language. It is a proper superset of the C programming language. A programming language defines a syntax that can be lexically analyzed, parsed, and have code generation performed by a compiler for that language. For scripting languages the parsing/code generation are one step, but that's not particularly significant. The language does not define anything other than what is valid syntax/grammer. Any "tools" are defined separately. For C there are standard libraries. For objective C there if the Foundation framework. Those provide very commonly used, well tested tools for you to use, but they are not part of the language itself.

Cocoa is an API for OS X. An API is an Application Programming Interface. This defines a standard method of accessing an environment. In this case, the environment is OS X. The API will provide standard methods, objects (in the case of object-oriented languages), etc. that you use to interface with the environment. These are things like displaying windows, or asking the OS for a resource. An API is provided for a particular language. There are sometimes bridges built from other languages. This is the case with Ruby, for example, on OS X. There is a bridge from the Ruby programming language to the Objective-C programming language to access the Cocoa API from Ruby. An API is more likely to change than a programming language as the platform to which it interfaces matures.

So if you wanted building blocks:
C is the basic language syntax used for Objective-C.
Objective-C is the programming language used by Apple APIs.
Cocoa is the standard API for building modern programs on the OS X platform.

I would say you should learn C first, but starting with Objective-C shouldn't be too bad.

Some other notes:
gcc is the compiler for C/Objective-C. It can be used from the command line, or it is invoked for you by XCode.

Cocoa API documentation can be found here:
http://developer.apple.com/referencelibrary/GettingStarted/GS_Cocoa/index.html

Good luck. I would recommend you start simple. Learn to run before you learn to walk, learn to add before you learn to integrate, etc.

-Lee
 
This thread is long dead, but for what it's worth, I get that -filelist linking error if any directory above my project has a comma in the filename. Probably happens with any unusual characters as the path seems to break right at the comma.
 
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.