Believe it or not, Swift debuted a year ago today

Believe it or not, Swift debuted a year ago today
Credit: iStockphoto

Although not fully mature, Swift has proven both popular and powerful for modern development

One year ago today, Apple surprised the world by introducing its Swift language as a successor to Objective-C, releasing a beta to developers at its WWDC (Worldwide Developers Conference) on June 2, 2014. (The production version Swift 1.0 version debuted on Sept. 9.) No one suspected Apple had been working since 2010 to replace the Objective-C language used to build OS X and iOS apps.

Since then, Swift has done well in language popularity indexes like Tiobe, PyPL, and RedMonk, and a quick search on repositories in GitHub finds nearly 400 entries on Apple Swift.

Swift's adoption has been quicker than normal. "Historically, programming language adoption moves at a very slow pace because learning programming languages is experiential and time-intensive," says IDC analyst Al Hilwa. "Having said that, I think what we are seeing in Swift adoption is encouraging and faster than what is typical."

But Objective-C legacy code will be around for some time, he says: "Most developers will continue to have to maintain Objective-C code bases for some time, however."

Speed concerns have dissipated, but Swift still faces a climb

Although there were initial concerns about the performance of Swift, they appear to waning, says iPhone application developer Paul Solt in a recent video: "Swift is approaching the performance of C++, which is good. And that is going to make you want to use it for your application." Swift is becoming a language that can be relied on for performance when needed, he says, and it's easier to read than Objective-C, requires less code, and has a unified memory management model.

But the "changing nature" of the language has been a problem, says Rob Percival, an instructor at technology learning site Udemy. "Each Xcode upgrade has brought changes to the language, some quite fundamental. This is particularly difficult for an educator like myself but also means that developers need to keep updating their code, which is a big hassle," he says. (Xcode is Apple's development environment for iOS and OS X.)

Also, "there are also a few high-level features of Objective-C that are not yet supported by Swift, but Apple is quickly closing the gap," Percival says.

Developer Christopher Allen, who focuses on Apple technologies, says he has not used Swift for anything serious yet. "It is getting more mature, but so far I feel to master it you also have to have mastery of Objective-C, which somewhat defeats the point. This may change at the next WWDC," to be held on June 8.

Allen endorses Apple's interactive "playgrounds" for Swift, used to aid learning the language, but he says older Objective-C APIs require adaptation to work well with Swift. "For now, if you have a mastery of the APIs using Objective-C, you can make it work with Swift, but it is suboptimal. I presume that Apple will adapt toward Swift as new APIs are created and old ones are updated."

Swift can only grow from here

Although Apple declined to comment on what is in store for Swift, Allen sees further integration improvements coming. "But it might be two major releases -- two years -- before it is truly mature. It's wise for Apple to be doing so, just as it is for Google do be working on Go and Mozilla on Rust. But all are longer term."

Percival sees Apple pushing Swift as a natural first programming language for people to learn. "It's a very simple language, and Xcode makes for a much friendlier environment that most other development environments," he says. "This has obvious benefits for Apple, and while there is a danger of people learning Swift instead of more open languages, I think that even if people start with Swift once they realize the power of coding they will quickly move on to other areas."

From CIO: 8 Free Online Courses to Grow Your Tech Skills
View Comments
Join the discussion
Be the first to comment on this article. Our Commenting Policies