New To Mac-Forums?

Welcome to our community! Join the discussion today by registering your FREE account. If you have any problems with the registration process, please contact us!

Get your questions answered by community gurus Advice and insight from world-class Apple enthusiasts Exclusive access to members-only contests, giveaways and deals

Join today!

 
Start a Discussion
 

Mac-Forums Brief

Subscribe to Mac-Forums Brief to receive special offers from Mac-Forums partners and sponsors

Join the conversation RSS
OS X - Development and Darwin Discussion and questions about development for Mac OS X.

newbie question about programming languages


Post Reply New Thread Subscribe

 
Thread Tools
MacGal

 
MacGal's Avatar
 
Member Since: Mar 28, 2008
Location: In the USA
Posts: 27
MacGal is on a distinguished road
Mac Specs: MacBook Pro

MacGal is offline
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.
QUOTE Thanks
xstep

 
xstep's Avatar
 
Member Since: Jun 25, 2005
Location: On the road
Posts: 3,231
xstep is a name known to allxstep is a name known to allxstep is a name known to allxstep is a name known to allxstep is a name known to allxstep is a name known to allxstep is a name known to all
Mac Specs: 2011 MBP, i7, 16GB RAM, MBP 2.16Ghz Core Duo, 2GB ram, Dual 867Mhz MDD, 1.75GB ram, ATI 9800 Pro vid

xstep is offline
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.

CameraTime - Time lapse photography for novice and advanced users.

When asking questions, post the version of your software. You'll receive better answers.

Please post your results to the thread as it is good feedback.
QUOTE Thanks
MacGal

 
MacGal's Avatar
 
Member Since: Mar 28, 2008
Location: In the USA
Posts: 27
MacGal is on a distinguished road
Mac Specs: MacBook Pro

MacGal is offline
Thanks for the info! I will check those links out.
QUOTE Thanks
nbrowser

 
Member Since: Feb 03, 2008
Location: Surrey BC Canada
Posts: 445
nbrowser has a spectacular aura about
Mac Specs: Mac Mini 2.5 i5/16Gb/500Gb/Radeon 6630M-256MB

nbrowser is offline
Ok MacGal....your lil image is nifty.....lol 123 I should use my Mac to navigate here more than the PC lol

This is a multiplatform home !
QUOTE Thanks
raydot

 
Member Since: Mar 27, 2008
Posts: 18
raydot is on a distinguished road

raydot is offline
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.
QUOTE Thanks
raydot

 
Member Since: Mar 27, 2008
Posts: 18
raydot is on a distinguished road

raydot is offline
I just came across this book:

Becoming an XCoder - Leopard Edition

Hope it helps!
QUOTE Thanks
OhioDude

 
OhioDude's Avatar
 
Member Since: Mar 28, 2008
Location: Gahanna Ohio
Posts: 15
OhioDude is on a distinguished road
Mac Specs: MBP 2.4Ghz, BlackBook 2.0 Ghz, iBook G4, 8Gb iPhone, AppleTV, 80 Gb Video iPod 3 Nanos and 1 Shuffle

OhioDude is offline
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.
QUOTE Thanks
xstep

 
xstep's Avatar
 
Member Since: Jun 25, 2005
Location: On the road
Posts: 3,231
xstep is a name known to allxstep is a name known to allxstep is a name known to allxstep is a name known to allxstep is a name known to allxstep is a name known to allxstep is a name known to all
Mac Specs: 2011 MBP, i7, 16GB RAM, MBP 2.16Ghz Core Duo, 2GB ram, Dual 867Mhz MDD, 1.75GB ram, ATI 9800 Pro vid

xstep is offline
Quote:
Originally Posted by raydot View Post
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.

CameraTime - Time lapse photography for novice and advanced users.

When asking questions, post the version of your software. You'll receive better answers.

Please post your results to the thread as it is good feedback.
QUOTE Thanks
raydot

 
Member Since: Mar 27, 2008
Posts: 18
raydot is on a distinguished road

raydot is offline
Quote:
Originally Posted by xstep View Post
C was done in 1971, anc came after B.
I crossed my feet in giving the response ...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! )
QUOTE Thanks
MacGal

 
MacGal's Avatar
 
Member Since: Mar 28, 2008
Location: In the USA
Posts: 27
MacGal is on a distinguished road
Mac Specs: MacBook Pro

MacGal is offline
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?
QUOTE Thanks
raydot

 
Member Since: Mar 27, 2008
Posts: 18
raydot is on a distinguished road

raydot is offline
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.
QUOTE Thanks

Post Reply New Thread Subscribe


« Problem while trying to compile parser generator code through "yacc" or "bison" under | root password for installations GUI < > terminal »
Thread Tools

Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
 
Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts
BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off
Forum Jump

Similar Threads
Thread
Thread Starter
Forum
Replies
Last Post
Newbie Empty Trash question glyndav OS X - Operating System 2 12-15-2006 04:55 PM
Newbie has question about MP3 players for iMac doctorxring iPod Hardware and Accessories 7 06-11-2006 10:50 AM
iPhoto Newbie Question About Library mac57 Images, Graphic Design, and Digital Photography 4 05-26-2006 08:15 AM
Newbie has question about iPhoto doctorxring Switcher Hangout 0 05-14-2006 10:29 PM
Newbie upgrading question. Zach_C OS X - Operating System 2 01-14-2004 07:46 PM

All times are GMT -4. The time now is 06:23 PM.

Powered by vBulletin
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.
X

Welcome to Mac-Forums.com

Create your username to jump into the discussion!

New members like you have made this community the ultimate source for your Mac since 2003!


(4 digit year)

Already a member?