The need to know Objective-C

Aaron Hillegass, of Big Nerd Ranch, says:

When Apple announced Swift, I heard a few people say “Hurray! Now I can be an iOS developer without learning Objective-C!” I have three messages for these people:

  • If you want to be an iOS developer, you will still need to know Objective-C.
  • Objective-C is easier to learn than Swift.
  • Once you know Objective-C, it will be easy to learn Swift.

I disagree.

Rockstars vs. Newbies

While a rockstar iOS developer would know both Swift and Objective-C, the same wouldn’t apply to someone who says to himself “Now I can be an iOS developer without learning Objective-C”, who is most likely just starting on iOS development.

For someone new to the iOS dev world, I would recommend starting out with Swift rather than Objective-C.

Looking at Aaron Hillegass’ arguments one by one:

  • “If you want to be an iOS developer, you will still need to know Objective-C.”

    Agreed, but only if you want to be an iOS developer of a super-advanced app right away. As someone starting out with iOS development, you most likely don’t need to talk to C/C++ code or swizzle methods or meddle with the Objective-C runtime. You can get to that when you need to.

    I certainly agree that “the community talks in Objective-C” in blogs and in Stack Overflow, but that’s going to change faster than we think, especially with Apple being okay about discussing beta stuff publicly.

  • “Objective-C is easier to learn than Swift.”

    This is subjective. To me, Swift code looks more readable than Objective-C, and therefore, easier to pick up for a newbie.

    Swift does have some seemingly odd behaviours (like copy semantics of Arrays), but I expect those quirks to either go away or get explained in the near future.

  • “Once you know Objective-C, it will be easy to learn Swift.”

    I totally agree with this. However, this cannot be a reason to start off learning iOS development with Objective-C rather than Swift.

Swift is the future

I would argue in favour of Swift because it’s the future of iOS and Mac development.

Almost anyone starting a new project is going to use Swift. If you intend to be an independent developer once you learn iOS development, it’s a no-brainer to start off with Swift.

While most iOS dev blogs talk in Objective-C at present, a couple of months later, most of the new snippets that get published there are going to be in Swift.

Most importantly, I believe Swift is going to give us completely new design patterns that wouldn’t be possible in Objective-C. For one, I think KVO is going to look quite different in Swift, thanks to closures and property observers. The Objective-C-way will start to look dated in comparison.

It’s a good idea to skate to where the puck is going to be.

Search the internet without giving up your privacy

Hide & Seek is a Safari content blocker I made that lets you search Google and Bing as a logged-out user, while staying logged-in in other Google and Microsoft services.