Become a MacRumors Supporter for $50/year with no ads, ability to filter front page stories, and private forums.

mganc

macrumors newbie
Original poster
Jun 9, 2005
2
0
Hello,

I'm a beginning programmer, with intermediate level skills in C++. I've been using the xcode environment to write console-type applications, and I am looking to move into creating a better user interface on the mac.

I know there are various ways to go about this, with Carbon, Cocoa, Objective C, and so on. I've read a bunch about them, but I don't know which one I should be moving towards.

C++ is something I am getting very comfortable with, and I would like to be able to use the knowledge of it that I have gained, and just put a nice front end on it. I don't want to have to switch to a whole new language.

What I am looking for is the best way to combine what I can do in C++ with one of the many tools there are for making applications for OS X. Is that learning Obj C, or Carbon, or Cocoa? The possibilities are kind of confusing to me.

Should I stick with C++, or move to Java, or Obj C? It seems the best way to go about this is to migrate to Obj C and write Cocoa apps, but I am not 100% sure.

If anyone has any advice, I would greatly appreciate it :) Thanks in advance!
 

virus1

macrumors 65816
Jun 24, 2004
1,191
0
LOST
i reccomend objective c. it is kind of a step back from c++, but then you can create cocoa apps.
 

freiheit

macrumors 6502a
Jul 20, 2004
643
90
California
You can do Java in XCode

From C++ you can go to Java. As a developer friend of mine once said, "Java is like C++ done right" (but then he went on to "say C# is like Java done right"). He really likes C# and I know he's looking forward to Cocoa# so he can start developing for MacOS X and still use his favorite language.

The thing with Java is you can create Cocoa applications with Java using XCode. You can't do that (to my knowledge) with C or C++. So you can "step back" to Objective-C or "step forward" to Java and build great Cocoa GUI apps with either one.
 

cube

Suspended
May 10, 2004
17,011
4,973
virus1 said:
i reccomend objective c. it is kind of a step back from c++,

C++ is a terrible language.
Objective-C should have been the favorite object-oriented C extension (of course, it still a damned C-based language).
 

Loge

macrumors 68030
Jun 24, 2004
2,836
1,312
England
mganc said:
What I am looking for is the best way to combine what I can do in C++ with one of the many tools there are for making applications for OS X. Is that learning Obj C, or Carbon, or Cocoa? The possibilities are kind of confusing to me.

Should I stick with C++, or move to Java, or Obj C? It seems the best way to go about this is to migrate to Obj C and write Cocoa apps, but I am not 100% sure.

I think the best way to get into GUI apps for OS X is to learn Objective-C and Cocoa. You can still use the non-GUI C++ code you've written if you don't want to rewrite it in Objective-C. There are quite a few resources mentioned in other threads on getting started with Objective-C and Cocoa. I would recommend the book by Kochan, to get familiar first with the Objective-C language before diving into Cocoa. It shouldn't take too long if you're comfortable with C++.

While you can also program Cocoa with Java, it is not that widely done; hence there is much less support and few resources about it. The idea behind that, I think, was to reduce the learning curve for experienced Java programmers coming to Cocoa. Of course, Java can be used if you want to produce cross-platform GUI apps, but then you'd use the Swing libraries instead of Cocoa.

Good luck. :)
 

caveman_uk

Guest
Feb 17, 2003
2,390
1
Hitchin, Herts, UK
cube said:
C++ is a terrible language.
Objective-C should have been the favorite object-oriented C extension (of course, it still a damned C-based language).
Not entirely fair - C++ is extremely powerful and extensive but gives the programmer an awful lot of rope with which to hang himself. Having programmed in C++ in the past and objective-C recently, I can say that objective-C is a much simpler language and nowhere near as broad as C++. What gives objective-C it's edge on the Mac is not the language itself but the Cocoa frameworks you use. True, the dynamic nature of objective-C contributes to the way those frameworks are designed but if you look at the language itself - there's not much to it.

Having said that, I wrote a complete non-trivial app in a few hours on Saturday afternoon with a hell of a lot of functionality using cocoa bindings etc that would have taken days using C++ and carbon.

Has anyone used objective-C++? I've heard it exists....

As for learning objective-C/Cocoa, I reckon the Hillegass book is probably the best introduction. Cocoadevcentral.com has some good tutorials including 'C for Cocoa' and others on Core Data and the Cocoa Bindings. And of course Google is your friend if you get stuck....
 
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.