At the WWDC 2014 Keynote, Apple introduced a new development language called Swift. Swift is an exciting, modern language and it’s one that shows great promise. Its release has not caused a crisis for iOS and OS X developers, who will continue to use Objective C for at least a little while longer. In my estimation, nearly all the apps you’ll see launch for iOS 8 will continue to be built primarily in Objective C.
Swift is very, very new. Many developers are just now exploring the language and its toolsets. You can expect its implementation to evolve significantly over the next few months as Apple responds to bug reports and enhancement suggestions. While you can build an entire app today in Swift, most developers will choose not to — especially for any app more complicated than a Flappy Birds clone.
Apple’s developer tools continue to support Objective C development. Developers who write and maintain their applications using Objective C libraries and software repositories will keep on doing so. Their sanest plan is gradual adoption. Because Swift components and Objective C ones can co-exist within a single project, we’re much more likely to see a marriage of the two over the next few years than an abrupt transition. Most developers have strict timelines and work schedules. Developers won’t walk away from time-tested routines they’ve invested time and energy in, to plunge fully into a new language when there’s no compelling reason to do so.
Nearly all the questions I’ve received on this topic have been from non-developers. I decided to put up this post to have something to point them to. And as for the questions in the topic, here are the answers:
- No, developers don’t need to learn Swift right away but it’s going to be an important skill to pick up over the next year. You can expect to see more emphasis on Swift in sample code, in technical talks, and so forth, as time goes by.
- Developers are still good with Objective C and will continue to be so, but they should strategize about transition plans for their products. Some products will live out their lives in Objective C, others will require modernization and refactoring to fit into the development environment of the next few years.
- Time scales are going to be an intensely individual decision. If I were starting a new project today with a short term delivery, I’d stick with Objective C. I’m going to keep developing test elements in Swift and pushing boundaries, but I’m not sure when I’ll be ready to make a permanent jump to a more presumably stable Swift-primary development commitment.
As developer Landon Fuller pointed out to me, now is your best chance to influence the language. Even though you can put off learning Swift, people who want a say in defining what the Swift community and its library and platform standards look like will want to get involved with Swift now.
What about you? What are you going to tell the clients, the editors, and the project leaders who come to you for answers on the Swift question?