Should I Learn Objective-C or Swift?

Since Apple released the new iOS programming language, Swift, online forums and indeed the Amsys training email inboxes have been awash with questions like, Well – what do I do now? Should I learn Objective-C or Swift?

And our answer has been – both!  Here are our top 3 reasons why you should learn both iOS programming languages.

If you want to be a successful iOS app developer, you will need to understand Objective-C.

Why? Because you will need to understand the framework and the architecture of iOS apps.

Objective-C and the C language has been around for 20 years. Therefore, any iOS developer worth his salt, will need to understand the fundamental building blocks of iOS apps. Amsys Training recommends that you start off with Objective-C and then go on to learn Swift, which will be a walk in the park – as a result.

Every current iOS and OS X App has been developed using Objective-C.

Swift is only in its infancy, and Objective-C won’t be going anywhere for the foreseeable future.

Consequently, your future employer or potential clients will be hiring on the basis that you have at least an intermediate understanding of both languages.

During interviews, you may well be asked a question that refers back to the Objective-C language. If you don’t possess this fundamental knowledge you won’t be able to respond with a confident and correct answer – and you will be shown the door pretty quickly!

You will be lost without Objective-C.

Without learning Objective-C, it will be nigh on impossible to learn the Cocoa libraries (Apple’s native objective oriented application programming interface or APIs). These libraries allow you to add animation, networking and the “native platform appearance and behaviour” to your apps, with just a few lines of code. Once you understand the Cocoa way, the complex nature of Objective-C’s syntax will no longer be a problem.

Plus, as a developer, you will be looking at the source code of a variety of apps, some of which will contain Objective-C, as the two languages can be used side by side. If you don’t know Objective-C, then you simply won’t know what certain lines of code have been created to do.

So… if you’re still at a loss on what do.. learn Objective-C first, and then learn Swift!

2 Replies to "Should I Learn Objective-C or Swift?"

  • Wobba

    I think you’re wrong on this. In just a few short years the vast majority of development on the Mac platform and iOS will be Swift. Why? Performance. Swift does everything much faster than the equivalent code in Object C. Swift was written from the ground up to produce the most optimal code for the Clang compiler. Object C was created long before the Clang compiler and so cannot take advantage of many of its features. Chris Lattner, the creator of the Clang compiler, is also the creator of Swift.

    Thinking that you should stick with Objective C because of existing frameworks is like 8 years ago thinking that you should stick with the Carbon framework. Oops! Adobe did that, and the result wasn’t good. I expect before long Apple will begin converting essential parts of Cocoa to Swift for the performance boost. Also, especially for new developers, they will be able to get up to speed faster with Swift. Most developers only make calls to Cocoa methods, we do not have to dig into the Cocoa framework as you suggest to figure out how to do something. Cocoa is about software abstractions. Digging into the documentation for Cocoa is more useful then digging into the code of Cocoa.

    And finally, Apple has clearly stated that Swift is the future of Mac and iOS development. That means, as in the case of Carbon, that Object C’s days are numbered. If you’ve worked on the Mac platform for a while, you know that when Apple says something is the future, it means it will be just a few years before they drop what it is replacing.

    • Hi Wobba,

      Thanks for you comments – everyone has their own opinions on this topic! However, as Objective-C accounts for 99% of all apps, although this will change overtime, a successful iOS developer will still need to have this knowledge. Swift can’t do a lot of things that Objective-C can.. for example, Core Data, KVC and Predicates. Our recommendations are based on the fact that iOS development is now more than just one language. Swift will evolve over the coming years, but for now, these are our recommendations.

      Thanks again for your comments!

      Charley

Leave a Reply

Your email address will not be published. Required fields are marked *