Objective-C or Swift for iOS Software Development

Objective-C or Swift for iOS Software Development

Most software developers I encounter are aware that Apple is gradually changing the programming language used for iOS software development. Objective-C is the outgoing language and Swift is the incoming language.  But which one is the correct choice for new projects? Apple are helping to smooth this transition by allowing developers to mix and match. You can add Swift classes to your existing Objective-C projects without any problems. For existing iOS developers the dilemma is: “Should I begin to use Swift in production code?”. And new iOS developers are asking, “Which language should I learn”. So far my feeling has been to stick with Objective-C. I’ve been in the software industry long enough to be cautious of anything too new. I prefer to let other people iron out the teething problems, before jumping in. I’m aware that my somewhat cautious approach has been informed by the fact that I’ve mostly worked for or trained companies in Financial Services sector, and they generally prefer established and proven technologies. So does that make me wrong?  Does that make me too cautious?  And what is ‘conventional wisdom’ saying? In the last iOS course I delivered, one of the course delegates recounted, “a contractor came into our company and wrote some classes in Swift. Now, every time we do a build, the Swift parts break”. This is probably a slight exaggeration. What I’m sure he meant was, “every time Xcode gets an update, the Swift parts break”. Last year (June – June) Swift went from version 1.0 to 1.1 to 1.2. Then Swift 2.0 was released for iOS9.  Therein lies the problem. That’s 4 updates to the LANGUAGE in little over a year. Every time...