Well I try never to miss an opportunity to learn something new (never know when you might need it in this game).
So I've been doing some reading up on Mac development, with some interesting info I found along the way. Just for clarity, (me being the pedantic programmer), but XCode isn't actually a programming language, rather it is the development environment. Just one part of the 'holy trinity' in programming. The other two parts being the programming syntax and development framework.
As far as programming syntax goes ,the Xcode IDE is very similar to eclipse & net beans in that you can write applications using the likes of C, C++, Java etc. The major programming language used (esp for iphone) being Objective-C.
Objective-C is like C + Smalltalk, so very much of the same ilk as C++ in object orientation, these languages are old as dirt, but pretty tough customers. Indeed looking at the syntax, to migrate from one to the other is effectively line for line, just changing the keywords. The philosophy behind each is quite different, but syntactically neither is more complex than the other.
Incidentally in the 2nd version of Objective-C brought out a couple of years ago, a few of the features common to C#, C++.NET & Java were implemented, so in that respect its a bit more feature rich than standard C++, but still lagging behind the latest programming languages, which to be fair is to be expected given the ~20 years between the current & original version.
The last part of the developers staple diet being the framework, for instance the iphone sdk. Which looks to me like it uses a pick n mix of C, C++ & Obj-C. I was interested to find that the GUI development enforces and MVC (model, view, controller) design pattern. Another harken back smalltalk I believe. A popular choice among web developers nowadays, I myself and developing a Java website using an MVC pattern as we speak!
It's pretty standard stuff as GUI libs go, I think where apple get brownie points is dragging in quicktime libs & linux opengl for games all under one umbrella as part of the standard sdk. MS tend to like breaking sdk's up into separate disciplines, so you have to dig around to find a mobile games lib etc. Ive always thought MS's XNA framework (building pc games that automatically work on xbox too!) should be part of the standard framework. This cutting up of business & pleasure is one of the things that makes MS look like a stuffed shirt IMO.
Certainly from a standard application GUI development, apple is by far the sexier looking, but no less difficult to develop in really. The Aim app is a good example, the bulk of the work being done by the Yahoo messaging framework (common to any system) means that the job of throwing a few controls onto a screen to interface with it can be done in a matter of days on any system in most languages, thanks to the WYSIWYG features all modern IDE's posses.
So thanks Gene for the insights, I know people like to draw a line in the sand between OS's, but as can be seen from the above, no matter what the system us developers are a pretty incestuous lot