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

bmwmcrider

macrumors newbie
Original poster
Jan 4, 2008
10
0
I just bought a MacBook Pro and have the need to develop a stock market analysis tool with a GUI and database binding. In surveying what is available to do the job I noticed that that Ruby and Tk is already installed on the MBP. Never used Ruby before but it appears to be very similar to several other popular scripting languages; used Tk in the past and not too enthralled with it. But on the surface it would appear the learning curve for me would be minimal and I probably could get my app up and running fairly quick.

I noticed that on my OS X installation DVD that the X-Code Tools development suite and Objective C is available. At first glance this appears the way to go for serious app development to run on OS X. But my concern is the learning curve. I would like to get a feel from anyone for how steep the learning curve is. Note I have 30 years programming experience and have developed apps using MS Windows and X-Windows.

Thanks,

Mike
 

iSee

macrumors 68040
Oct 25, 2004
3,540
272
Well, if your main goal is to get your app done as soon as possible, then nothing beats an environment you are already familiar with.

But I think Objective-C with Cocoa (the API) is fairly easy to get in to, especially considering your experience. They started out as part of a kind of RAD environment, after all.

For one thing there are some very good books around to get started with. I found the Objective-C syntax to be a little disconcerting at first glance, coming from a heavy C/C++ background, but it becomes natural quickly (it's actually straight-forward, but different looking).

One thing that makes it easy is that the environment is pretty much always the same: XCode IDE + Objective-C language + Cocoa API + Interface Builder GUI editor, etc. So samples, books, tutorials, etc., all work and make sense, without a lot of monkeying around. That's less true now, though, since Leopard added Objective-C 2.0 (adds garbage collection among other things) and XCode and IB have changed, too. But it's still pretty straightforward.

There's definitely going to be a learning curve to Objective-C and Cocoa, but it's not bad. Objective-C is simple. Cocoa is the big thing, but IMHO it is well designed (especially at its core) and there are a lot of good resources available for learning it. You'll be able to get this one app going most quickly by using an environment you are familiar with, but if you think you might want to continue on in Mac OS development, you won't go wrong by learning Objective-C and Cocoa.
 

bmwmcrider

macrumors newbie
Original poster
Jan 4, 2008
10
0
Gelfin - MS Windows apps developed using Visual C++; X-Windows apps on Unix platforms using GNU compilers, imake and Motif.

Isee - thanks for the observations. Spent part of the afternoon looking at some Objective C sample code; at first pass the syntax does look a little strange when compared to C++. But after studying the code for awhile I came to realize that while syntax is a little different the idiom is basically the same ... shouldn't be any trouble becoming familiar with it. I'll have to study Cocoa for awhile. Can you provide any good links for sample projects to aid in getting up to speed on Cocoa?

Mike
 

Cromulent

macrumors 604
Oct 2, 2006
6,810
1,100
The Land of Hope and Glory
Gelfin - MS Windows apps developed using Visual C++; X-Windows apps on Unix platforms using GNU compilers, imake and Motif.

Isee - thanks for the observations. Spent part of the afternoon looking at some Objective C sample code; at first pass the syntax does look a little strange when compared to C++. But after studying the code for awhile I came to realize that while syntax is a little different the idiom is basically the same ... shouldn't be any trouble becoming familiar with it. I'll have to study Cocoa for awhile. Can you provide any good links for sample projects to aid in getting up to speed on Cocoa?

Mike

http://developer.apple.com

All you'll ever need. The documentation is also included with Xcode. Make sure to register for a free ADC account while you are at it.
 

mduser63

macrumors 68040
Nov 9, 2004
3,042
31
Salt Lake City, UT
I'll have to study Cocoa for awhile. Can you provide any good links for sample projects to aid in getting up to speed on Cocoa?

Mike

Cocoa Dev Central has a lot of tutorials aimed at getting started in Cocoa. Objective-C is actually quite a nice language to work with. More elegant than C++ in my opinion and while the syntax is a little foreign looking at first, it's really quite simple and makes for very readable, self-documenting code. It can be verbose but IMO that's actually often a good thing as long as the verbosity of the code is not actually complexity. Method and function names in Cocoa tend to be quite long in order to be very descriptive.

Anyway, good luck and stick around and ask questions if you have them. The documentation should be your best friend of course, but CocoaDev (a wiki) and the Cocoa-dev mailing reflector run by Apple (archives are at cocoabuilder.com) are very good resources as well.
 

Gelfin

macrumors 68020
Sep 18, 2001
2,165
5
Denver, CO
Gelfin - MS Windows apps developed using Visual C++; X-Windows apps on Unix platforms using GNU compilers, imake and Motif.

Yeah, you'll be fine then. You'll spend about as much time figuring out how to get something on its feet in Objective-C as you will in any of the scripting languages. The biggest conceptual hump you'll need to get over, at least according to my experience, is that you'll tend to assume NIB files on the Mac are like RC files in Windows. They're much more. A NIB is a serialized archive of running objects, so it's more "alive" and less flatly descriptive than a resource script. Once you get what's going on in Interface Builder, specifically why you're instantiating objects at design time, you'll find it a pretty straight shot to pick up Objective-C and get rolling.
 
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.