This is great guys, thanks, ill look into guides on AppleScript and Objective C/Cocoa. Although whats the link between Objective C and Cocoa? Also which would be easier to learn (as i dont know a thing yet), Apple Script or C? One more thing, whats the best way to learn, doing exercises, or reading the manual and sort of working through? Thanks.
Sorry one more thing. Whats the difference between Objective C and C++?
Objective-C is a language. Cocoa is an Application Programming Interface (API). Cocoa gives you access to the OS X internals through a defined set of actions. Cocoa is an Objective-C API, so that is the preferred language for accessing it. There are bridges to other languages like Python, but the most direct means of access is by programming in Objective-C.
AppleScript might be easier to start with than C, but C will take you further towards the goal of being a proficient programmer.
I believe that there is no better way to learn than to do. Exercises are the way to go. Reading and knowing how to read/understand documentation is very important, but if you read a cook book from start to finish, you would not be a master chef. You have to apply what you are reading immediately, in my opinion, for it to stick.
C++ is a programming language with a long heritage. It is about 25 years old. It is not a proper superset of C, but uses a lot of C syntax while adding Object-Oriented programming as a supported programming paradigm. Object-Oriented programming is a means to group like functionality and data into packets called Objects. C++ is used for things like OpenGL graphics programming, Win32 programming, and a number of other tasks. I will leave the subjective discussion of its merits relative to Objective-C alone.
Objective-C is also a programming language with a long heritage, but it has only recently begun to gain momentum. It was the lingua franca of the NeXTStep platform, and when NeXT was acquired by Apple it became the lingua franca of the OS X platform. It is a proper superset of C, adding syntax to support Objects. One major difference between Objective-C and C++ is the type binding. This is not going to mean a lot to you now, but this is important to Cocoa once you get there. Another major difference is the way methods are called on Objects. In C++ method invocations must be resolved at compile-time, even if they can be overridden at runtime. Invocations in Objective-C are performed using a message-passing protocol inherited from SmallTalk. This means that a message pass can fail at run time, but also allows for more run-time flexibility.
All of this is, likely, gibberish to you. Really what you need to know is that C++ and Objective-C are both C-style languages that add syntax to support Object-Oriented programming. If you want to program native applications in the future on OS X, Objective-C is the best candidate. If you want to program against an API that is C++ based, that is a better choice. You can write against an API called Carbon on OS X with C++, but it was built as a bridge for developers moving from Windows and Classic Mac OS to OS X. It is quickly losing favor as Apple is not updating it to include features as OS X matures.
Hopefully this is helpful, if somewhat overwrought.
-Lee