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.