With plans to slowly retire the long-used Objective-C, Apple has introduced a new programming language, called Swift, for designing apps and applications to run on Apple iOS devices and Apple Macintosh computers.
"Swift is fast. It is modern. It is designed for safety and it enables a level of interactively and development you've never seen before on the platform," said Craig Federighi, Apple senior vice president of software engineering, who introduced the language to the surprise of the audience at the company's Worldwide Developers Conference, being held this week in San Francisco.
Craig explained that Swift was designed to eliminate entire categories of common programming errors. It includes modern constructs such as generics, closures, type inference, multiple return types, operator overloads and other time-saving capabilities that developers have wanted to see in their languages.
Developers respond to Swift
Many Apple developers expressed cheer at the news of Swift. The WWDC audience applauded thunderously upon Craig's introduction to the language. The enthusiasm is understandable given the shortcomings of the aging Objective-C, which was created in the 1980s and came to Apple by way of Steve Jobs' NeXT workstation company, purchased by Apple in 1996.
On Twitter, one programmer expressed satisfaction that Swift could treat emojis – electronic smileys formatted in unicode – as variables. Another posted a picture of a Objective-C programming book that had been tossed into a trash can.
Although Apple has done a commendable job of maintaining the language, and its developer ecosystem, Objective-C still suffers from undue complexity in many ways, noted Al Hilwa, program director for software development research at IDC. Objective-C was based on C, a programming language which on its own is difficult to master. Secondly, the approach that Objective C takes to passing messages between an application or within an application is difficult to learn as well.
Swift has all the power of Objective-C, but without the "baggage of C," Craig told the audience. He compared some benchmarks that showed Swift code running faster than Python and just as quickly as Objective C.
Swift may be easier to learn and work with, but it will still take developers time to switch from Objective-C, Hilwa speculated.
Moving to Swift
Apple is working to make the transition easier, though. Swift code can be run on the same run-time as Objective-C, and uses the same memory management module. It also can use Objective-C's Cocoa libraries. "Your Swift code can fit along side your Objective-C code and C code in the same application," Craig said.
Apple is updating its Xcode IDE (integrated development environment) to include a feature called Playground, which allows the developer to inspect the output of code as soon as it is typed in.
Swift does not appear to be related to another language with that name, designed for writing scripts to run in parallel computing environments.