Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

Awhile back I posted a question about a kid I know and his dilemma about getting a college degree. He has decided to go for it and apparently already has some credits in computer science and math already (AP or something?), so he gets to move on to more interesting stuff.

One of his choices as an elective programming class is to either take Objective-C for Mac or C++ programming. I am guessing that these classes won't teach programming concepts like a CS 101 course or something would but probably more how to build programs out with a specific toolset. He asked me which he should go for; he wants to do the Objective-C because he has a Mac and an iPhone and it would be a good way to get his feet wet, I think he should do C++ because it's more standardized and widely used in industry.

Then again, maybe it doesn't really matter since it's all just experience anyway and that never hurts. Any thoughts about this? I always hate giving advice to aspiring programmers because I am always afraid that I'm just passing along what my ideals are and what I think is important when it might not be. It's been a long time since I did CS classes and I'm not sure what the curriculum is like these days. When I went to school it was C and then Java for OO later on; I never had a choice really it was what it was.

share|improve this question

closed as off topic by MichaelT, Bart van Ingen Schenau, GlenH7, Martijn Pieters, Kilian Foth May 19 '13 at 15:13

Questions on Programmers Stack Exchange are expected to relate to software development within the scope defined by the community. Consider editing the question or leaving comments for improvement if you believe the question can be reworded to fit within the scope. Read more about reopening questions here.If this question can be reworded to fit the rules in the help center, please edit the question.

    
what language to learn next is off-topic per site FAQ –  gnat May 19 '13 at 14:41

5 Answers 5

up vote 12 down vote accepted

Objective-C is very limiting, in the sense that it's an almost entirely apple-specific language. C++ will allow support for multiple platforms, and isn't as specific as Objective-C.

(Yet you can write programs for your iPhone in C++ as well. objective-C is not a required language. In fact, i write IOS applications in C#)

In addition, knowledge of C++ will lay a good foundation, making it easier to learn C-style languages in general (think C#, Java, etc) whereas the fundamentals of objective-c might make it an alien experience to learn another language. (null is nil, there is no string basetype, there is an nsstring basetype).

From a student with aspiration's point of view, C++ is the better language to learn.

To get him interested in C++, maybe have him look at LibCinder, which has been used in iPhone and iPad applications as well.

share|improve this answer
    
Language semantics are not important, they can be learned very quickly. Can you give any examples of significant differences that aren't simply semantics? –  Jeremy Jun 1 '11 at 14:27
    
I can't honestly, but the semantics in Objective-C are oddly specific to the language (even down to calling a function with parameters) making learning objective-c confusing to non-objective-c developers and vice versa. Please keep in mind that the developer in question is going to learn programming from scratch. C++ has the qualities the student wants, and as an added bonus that it makes other languages (including, but not limited to objective-C) easier to learn because the majority of those semantics are similar across different languages. –  Timothy Groote Jun 2 '11 at 10:13

At this point, it's more important to nurture his interest and attention than his exposure to specific languages and technologies.

He's interested in Objective-C? OSX and iOS development has his attention? There's your answer.

share|improve this answer
    
Fully agreed. University education is not a time to pick up specific tools, but a time to learn the basic ideas. Objective-C will teach OO concepts as well as any such language. –  David Thornley Jun 1 '11 at 14:57

I think he should do Objective-C. He has an interest in doing iOS and Mac development and Objective-C is the way to go there. Plus the using the Cocoa frameworks will expose him to many useful patterns that will be usable in almost any language.

share|improve this answer

He asked me which he should go for; he wants to do the Objective-C because he has a Mac and an iPhone and it would be a good way to get his feet wet, I think he should do C++ because it's more standardized and widely used in industry. Then again, maybe it doesn't really matter since it's all just experience anyway and that never hurts.

I agree - Objective-C is only really used for Mac OS X and iOS programming, while C++ is a widely used language for which there are a lot more jobs. However, Objective-C does have all the standard object oriented programming features, so learning Objective-C is not totally useless. When you know Objective-C it will be easier to pick up C++ than when you start with C++ from scratch.

Maybe telling him that many games are written in C++ will make him interested in C++ too.

A good programmer doesn't limit him/herself to just a single programming language.

share|improve this answer

An elective is a good opportunity to take something he's interested in, something that will make him enjoy his studies even more. If he's a Mac user and wants to learn to write OS X and iOS software, such a class is a perfect opportunity to show him the usefulness of his studies. I don't think Objective-C is limiting, and once he has the basic fundamentals of imperative and OO programming down -- in any language -- C++ won't be hard to pick up anyway.

share|improve this answer

Not the answer you're looking for? Browse other questions tagged or ask your own question.