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?
6 Comments
[…] Swift: Do devs need to learn Swift right away? Are devs still good with ObjC? And for how long? […]
I’m an independent IOS consultant, A client of mine is going in on Swift starting today. Not porting everything, but all new features are going to be in Swift… this was un-prompted by me and they understand the language will evolve to some extent.
As a developer I feel it imperative to learn Swift as… quickly as possible (over halfway through the book now). The language helps so much with so many little frustrations that earlier is better than later.
Good post. For me its evolution and not revolution, no one is going to rewrite all their apps in swift, esp not overnight. Also lets remember this is beta 1, things will change, evolve and become more useful as the betas go on.
As for the project managers and clients that have asked about it, its all about getting the job done, on time, in budget and drawing on as much of my experience as possible to succeed. Switching to swift puts all these at risk at this moment in time.
It’s a very interesting language that, based on my few hours of looking at it, should simplify code creation.
However, my app development timelines tend to be short (a few weeks for most), so it doesn’t make sense to get too far into Swift now since it wouldn’t be releasable until iOS 8. I also reuse a lot of code and I’d be loathe to rewrite the old stuff if I don’t have to.
And really, what’s the advantage? It doesn’t enable access to any more user features. It doesn’t provide for material speed or memory management gains. But it should reduce lines of code and make that code more readable. I think those things make it great for new projects AFTER iOS 8 is released, but that’s the soonest I’d do much with it.
Good points Mike, who knows how much its going to change in the betas too. For now i’m learning swift for fun and to see how it works.
Swift will work on iOS 7 and 8. It was mentioned in either the keynote or the WWDC SotU session.