Codementor Events

How I learned Objective-C

Published Mar 09, 2018

About me

I am the lead developer of GNUstep. I have been developing software for almost 30 years and, in all of that time, I have worked on GNUstep since 1999. I am also highly experienced in other application development languages as well. I am passionate about software and, especially, object oriented programming.

Why I wanted to learn Objective-C

When I was in college NeXT donated a large number of systems to the University of Maryland at College Park. In order to complete many of my assignments I needed to use these machines in order to do my work. I eventually acquired one at home, a NeXTcube, and started using it there. I had always had an interest in Object Oriented Programming and, having learned C++ the year before I was eager to learn Objective-C on this, at the time, advanced platform.

How I approached learning Objective-C

At first I began studying books about the subject. The first book was the one by Brad Cox called "Object Oriented Programming: An Evolutionary Approach." This book was informative, but not everything I needed in order to learn. So I pressed on and learned by example. I studied any and all available documentation on the machines themselves since the NeXT had an extensive library of documentation available this was relatively easy.

Challenges I faced

Since Objective-C was not quite (and still isn't) as popular as other alternatives at the time, especially C++, I was forced to find some of the early works on this subject on my own. The biggest challenge I face was understanding the new syntax and working with Interface Builder, which I eventually ended up writing the GNUstep equivalent for called Gorm.

Key takeaways

You can learn or do anything if you put your mind to it. Even when there is not much documentation available, if you are persistent you will, eventually, get there.

Tips and advice

Don't let the age of Objective-C or the unfamiliar syntax be a blocker for you. Objective-C was designed to be a simple and direct superset of C where the syntax denoting objects is separate and distinct from those for normal C. C++ differs in the sense that almost no new syntax was introduced to do objects, but existing elements were re-purposed.

Also, anyone learning Swift will find it hard NOT to learn Objective-C since Swift was designed to work with the millions of lines of existing Objective-C code in existence.

Final thoughts and next steps

I learned Objective-C many years ago, but the experience is still relevant. My next challenge is going to be learning more about JavaScript and Node.js.

Discover and read more posts from Gregory Casamento
get started
post comments2Replies
Mahmud Ahsan
7 years ago

Unless someone need to manage old Obj-C codebase, for new programmers specially iOS / mac developer no longer need to learn Obj-C as Apple officially promoting Swift which is also cleaner syntax. I personally used Obj-C for over 4 years before Swift arrived. For newer project or new module in old project I use Swift.

Gregory Casamento
7 years ago

Many new projects are still done in objective-c. Additionally, there are too many libraries done using objective c to not have any knowledge of it. Also, don’t forget, all of the main libraries (AppKit, Foundation etc) are written in objc.