newbie question about programming languages

Joined
Mar 27, 2008
Messages
27
Reaction score
1
Points
3
Location
In the USA
Your Mac's Specs
MacBook Pro
Hi everyone! I am wanting to learn more about programming on a Mac, but I am not quite sure where would be the best place to start. Can anyone suggest some good books or online tutorials for learning?

This may be a ridiculous question to ask, but I find all of the C's to be very confusing. Can anyone tell me what on earth is the difference in C++, C#, C, Cocoa, and objective C? Are they all similar to each other or completely different? What are the main differences in them and languages such as Java or Python?

Will someone please help a newbie to understand the differences?

Thanks in advance for any suggestions.
 
Joined
Jun 25, 2005
Messages
3,231
Reaction score
112
Points
63
Location
On the road
Your Mac's Specs
2011 MBP, i7, 16GB RAM, MBP 2.16Ghz Core Duo, 2GB ram, Dual 867Mhz MDD, 1.75GB ram, ATI 9800 Pro vid
Cocoa is the collection of development frameworks and tools used to develop OS X applications.

C# I understand is a rip off of Java with .Net thrown in. Hopefully someone with more knowledge will say more.

C++ and Objective-C are extensions to C that allow easier object oriented development.

You might want to start with Become an Xcoder and Cocoa Dev Central.
 
OP
MacGal
Joined
Mar 27, 2008
Messages
27
Reaction score
1
Points
3
Location
In the USA
Your Mac's Specs
MacBook Pro
Thanks for the info! I will check those links out.
 
Joined
Feb 3, 2008
Messages
444
Reaction score
8
Points
18
Location
Surrey BC Canada
Your Mac's Specs
Mac Mini 2.5 i5/16Gb/500Gb/Radeon 6630M-256MB
Ok MacGal....your lil image is nifty.....lol 123 I should use my Mac to navigate here more than the PC lol
 
Joined
Mar 27, 2008
Messages
18
Reaction score
2
Points
3
Here's the difference: all of the languages are derivatives of the C programming language, which was invented by Bell Labs (yes, the phone company) in the 1980's.

http://www.oreilly.com/news/languageposter_0504.html

The primary successor to C is C++, which adds the object-oriented paradigm of Smalltalk into C, giving programmers the ability to work with objects and classes. I could write for three days about what "object-oriented" means, but suffice to say it's both a way to programming, and a way to think about programming. I think Bruce Eckel writes some great (and free) books about C++, but they do assume you already know C.

So C and C++ are the "standards" of this group of languages, and are some of the most widely used programming languages in the world. There is such a thing as the ANSI C standard, and if you have an "ANSI compliant" C compiler (like gcc, which is what XCode uses to compile) then your programs adhere to the standard.

There are spinoffs of these, instituted for one reason or another. For instance, C# is Microsoft's version of C++, developed to pull programmers even more deeply into Microsoft's web (C# doesn't work on anything but Windows, while C++ works on pretty much every platform -- hence why another user called it a "rip-off"). Objective-C is the one Apple uses, for whatever reason, although Apple didn't develop it. My guess is that, like most things of this ilk, it's used because they used it at NeXt.

When you ask, "where should I start," I think an important follow-up is "what do you want to do?" There's a pretty big difference between, say, graphics programming, games programming, and application programming.
 
Joined
Mar 28, 2008
Messages
15
Reaction score
1
Points
3
Location
Gahanna Ohio
Your Mac's Specs
MBP 2.4Ghz, BlackBook 2.0 Ghz, iBook G4, 8Gb iPhone, AppleTV, 80 Gb Video iPod 3 Nanos and 1 Shuffle
I think you first need to ask yourself what it is you want to program and go from there. I've done mostly C# and Java development and am now learning Progressive C.

Sticking with Java, C, C++ or Prgressive C is your best bet with a Mac. C# on the other hand requires some Mono plugins which to be honest I haven't gotten to work yet.

Web development is easy on a Mac too. Since it has an apache server on it you can get up and running quickly.
 
Joined
Jun 25, 2005
Messages
3,231
Reaction score
112
Points
63
Location
On the road
Your Mac's Specs
2011 MBP, i7, 16GB RAM, MBP 2.16Ghz Core Duo, 2GB ram, Dual 867Mhz MDD, 1.75GB ram, ATI 9800 Pro vid
Here's the difference: all of the languages are derivatives of the C programming language, which was invented by Bell Labs (yes, the phone company) in the 1980's.
C was done in 1971, anc came after B.
 
Joined
Mar 27, 2008
Messages
18
Reaction score
2
Points
3
C was done in 1971, anc came after B.

I crossed my feet in giving the response :Oops: ...C++ was invented in the 1980's, yes, C in '71. You are correct, and thanks!

b, then C, and then C++ which is a geeky joke because C++ literally means C + 1. (But then, everyone knows that! :) )
 
OP
MacGal
Joined
Mar 27, 2008
Messages
27
Reaction score
1
Points
3
Location
In the USA
Your Mac's Specs
MacBook Pro
Thanks for the explanations everyone! The areas that I am most interested in are graphics programming and application programming. I haven't had the time to read through all of them yet, but those look like some cool links.

I am also wondering if there is a big difference in Tiger and Leopard's dev tools. Right now, I am using Tiger, but I have been wondering if there is a big enough difference in the two versions of Xcode that it would be worth switching to get the later version. Is there enough difference in the two that it would matter for someone who is just starting out?
 
Joined
Mar 27, 2008
Messages
18
Reaction score
2
Points
3
XCode 3.0 is a little bit different than 2.x, but basic coding principles are basic coding principles. If you're not planning on upgrading any time soon, you can probably stick to Tiger.

My suggestion is that you focus on learning the basics of C and/or C++, as they're the pretty much the same in most programming languages (Java, PHP, etc). Once you get your feet wet with those, then you can get into GUI, graphic, and applications programming.
 

Shop Amazon


Shop for your Apple, Mac, iPhone and other computer products on Amazon.
We are a participant in the Amazon Services LLC Associates Program, an affiliate program designed to provide a means for us to earn fees by linking to Amazon and affiliated sites.
Top