Forgive my ignorance as I've used Ubuntu (currently using 12.04 LTS as well as Vista) and have used Debian, Fedora, Red Hat, Mandrake, Mandriva, Knoppix at some point. If Mac falls under *nix then why do sites have downloads for Windows, Linux, and Mac?
Mac and Linux-based OS use very different libraries for many functionality. For examples on a Linux system for making a window you are often ether are using ether gtk or qt, while macs use aqua.
Also, the matter of how they install programs are different too.
Mac falls under Unix because it has a Unix layer (based on FreeBSD) and is POSIX compliant. OS X Server, for example, puts a nice GUI on standard Unix services.
It has it's own UI based on NextStep. And that means it has its own APIs, installer, ... And that means distributed programs (binary or source) are different than other Unix programs.
If you're going to be using Aqua/Cocoa/Carbon (I have no clue what the current standard toolkit for OS X is these days), you're using Objective-C as your programming language. As far as I know there are no C++ bindings for those toolkits.
Carbon is the C++ binding, but it's being deprecated. Cocoa (Objective C) is current. There really is no point in learning Carbon. If you want to do Mac or IOS programming, you really need to learn Objective C.
I should say, Objective C is much earier to learn than C++. C++ has become incredibly compliated, far from it's initial objectives.
I know several people in person who are struggling to learn Objective-C because they want to do iOS programming, but in class they are easily learning C++. I think there may be confusion here about language vs language design patterns.
Just asked, they're struggling with the syntax and concepts, but mostly the concepts about memory management. They learned Java first and now manual memory management is a new blow to the head for them, I suppose. I haven't personally started learning Objective-C so I can't say much myself.
My current workplace uses Obj-C as the first language; everyone who came from a C or C++ background has no problem with it at all. It's lightweight and elegant, with some very nice Smalltalk-like features.
We don't use any Apple frameworks, though; maybe that's the difficulty.
True, the main language is Objective-C, but one can use C++, with the limitation that it's impossible to program GUIs.
Indeed, but that doesn't shroud the fact that if you want to make something that caters best for a Mac, Obj-C is the way to go.
Maybe there should be a little Objective-C/Objective-C++/Mac OS/iOS forum then. :0)
I disagree. This is a C++ specific forum so why introduce other languages when there's a lot of decent resources out there for Obj-C. Macrumors has forums dedicated both to Mac and iOS programming.
Just asked, they're struggling with the syntax and concepts, but mostly the concepts about memory management. They learned Java first and now manual memory management is a new blow to the head for them, I suppose. I haven't personally started learning Objective-C so I can't say much myself.
Not sure if it's relevant, but I tend to see that Java likes to encourage the MVC design pattern. This is also present in iOS development and most programs and tutorials will have MVC examples. Might just be me, but I don't seem to see this encouraged as much in C++.