Hi Howard,
I’ll never quite understand just why so often the first logical step after switching to a Mac is ‘wow I’ve got to start developing software’. Not complaining mind you - it’s kind of cool. Just boggles me. All the free tools are there for Windows as well (like it or no, you can do similarly powerful applications with Visual Studio .NET express in Windows), maybe it’s just that they’re not quite as…sexy. (also, Microsoft documentation stinks. There’s lots of it, it’s just all awful. Nothing on Apple technotes)
Okay, you’re new to this. There’s a lot to learn. I mean, a LOT. Try not to get daunted. If you decide to get into writing software seriously, you’re talking about giving up a LOT of your spare time that could otherwise be spent writing or hanging out with friends…just…debugging…that…freaking…input loop. (or some such).
It can be very frustrating, but it can be amazingly rewarding as well (case in point - Keith, just one guy, written up in the NYT for his outstanding work. Freaking awesome: we’re all Keith fanboys here).
As mentioned, HTML is a markup language, not a programming language. It’s semantic, it’s simply a way of saying ‘this should be structured like this’ (and CSS, which is ‘this should look like this’). It doesn’t so much DO anything as present material.
Cocoa, on the other hand, does a lot. But it’s not a programming language either. Rather, it’s a collective name for a large collection of programming frameworks (or ‘kits’ in the old NextStep terminology). You can write Cocoa apps with quite a few scripting and compiled languages (Python, Ruby, Java, and C++, just to name a few), but the most commonly used one is Objective-C.
None of these languages are really ideal for just picking up and learning in isolation. Rather, you should learn a language alongside the sound basics (what is a computer, why does a CPU act as a CPU does, how does semantic programming language relate to machine code, what’s a compiler do, etc etc) and practises (object oriented, interactivity design, logic, mathematics, etc etc).
If you would really like to try and dive in head first, two books mentioned in previous threads - Programming in Objective-C by Stephen G Kochan, and Cocoa Programming for Mac OSX by Aaron Hilgaas - are possibly the best introduction to OSX development anyone could hope for. The best part is that Kochan doesn’t give the old standard ‘now I am going to assume you have a reasonable background in C’ in the first nitty-gritty chapter (always used to annoy me before I went to uni and learned the joys of C and programming microprocessors to send Furbies into epileptic fits).
Lastly, languages TEND to be operating system agnostic - you can write C or C++ on Windows, Linux, Solaris, OSX, BSD, etc. This doesn’t mean a program written on one works on another (rarely the case), since it’s the framework and the supporting libraries that make a difference. Notable exceptions here are C#, which is basically Windows/.NET specific. Objective-C/Cocoa (at least up to Foundation Kit level) has some minor support in the *NIX community (OpenSTEP, etc), but by far it’s mostly an OSX thing.