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

rollingharlan

macrumors newbie
Original poster
Oct 8, 2010
2
0
Hey everyone!

im new to the forum and to iphone programming. could somebody please tell me if its essential to learn C before learning Objective-C ?

Thanks guys
 
No. I always recommend to learn Java first. It teaches OOP well.

Are you kidding?

There is nothing inherently better about Java for learning how to write good object-oriented code than any other object-oriented language, like Objective-C, but if you were going to pick a language to specifically learn how to write OO code, Java wouldn't be anywhere near the top of the list.
 
According to Stephen Kochan:

(...) First, learning the entire C language before learning Objective-C is wrong. C is a procedural language containing many features that are not necessary for programming in Objective-C, especially at the novice level. In fact, resorting to some of these features goes against the grain of adhering to a good ob- ject-oriented programming methodology. It’s also not a good idea to learn all the details of a procedural language before learning an object-oriented one.This starts the programmer in the wrong direction, and gives the wrong orientation and mindset for fostering a good object-oriented programming style. Just because Objective-C is an extension to the C language doesn’t mean you have to learn C first.

According to Apple:

Object-oriented programming in Objective-C is sufficiently different from procedural programming in ANSI C that you won’t be hampered if you’re not an experienced C programmer.

However... It won't hurt to get acquainted at minima with the C language, alongside with learning objC.
 
Actually Eiffel is a very strong OOP language and framework. It definitely gets your thinking in an OOP manner, though I'm not sure if I would use it for any serious project.
 
Kochan is wrong in my opinion. Good Object Oriented coding is not always the best methodology, neither is procedural coding. So I would learn both C and Objective C. That way you'll be ready for high performance Open GL graphics, apps that crunch numbers, audio processing callbacks, photo filters, and etc. As well as reusable OO UI code.

You can also get into extreme trouble with Objective C if you don't understand the C data types and underpinnings, especially when debugging or reading crash dumps.
 
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.