A lot of the iOS development conversation now centers on Swift, but Objective-C is still around. Although the latter is Apple’s “old” programming language, it’s still used pretty widely, despite Swift overcoming it in some rankings. A new blog post tackles why some developers refuse to jump onboard the Swift bandwagon, and it’s enlightening.
Paul Hudson, who makes a living teaching iOS development (and does a great job, by the way), recently sourced opinions on what made Swift untouchable to some well-established iOS developers. Noting that Objective-C has been “pushed from the limelight” by its little brother, Hudson wanted to know why some were holding out and continuing to develop iOS apps in Objective-C.
The reasons for not using Swift were varied, ranging from “I don’t enjoy using it” to issues with Xcode. The more grounded reasons included Swift’s lack of legacy app code-bases, which still need to be redone. Other developers simply don’t want to learn a new language.
One interesting takeaway from the survey: Objective-C fans feel a bit stigmatized due to their association with a fading technology. One of the more salient responses comes from Simon Wolf of Otter Software:
I realize that Swift is the new shiny thing and, since I know Swift well enough to understand it, it really doesn’t worry me. Had I buried my head in the sand and not bothered to learn Swift I may feel left out but I don’t think that approach is conducive to being a good developer.
But Todd Thomas of TapBots thinks stigmatization shouldn’t be any concern. “I don’t worry too much about it,” he said. “The app should speak for itself. If it is good, the users won’t care what it is written in.”
Poignantly (or maybe fortunately), these developers also see the proverbial writing on the wall. Seven of the eight developers queried say Swift has effectively halted Objective-C development, and Apple has stopped focusing energy on its legacy code unless absolutely necessary.
To be honest before version 3.0 the main roadblock for me was the missing source code compatibility, and even after 4.0 I am still waiting for ABI stability. I think that’s the only one issue left, and personally I feel that this is less important for me if the source compatibility works.
The final piece of the puzzle, ABI stability, is set to arrive in late 2018. Until then, Swift and Objective-C will continue to waltz together through the iOS development community, causing much consternation amongst the old guard.