Swift, Apple’s new programming language for iOS and Mac OS X apps, has undergone several key changes in its short life. In late 2015, Apple made the language open-source; it began integrating changes from hundreds of non-Apple contributors by March, when it released Swift 2.2; and now there are rumors that Google will support it for Android development.
If you’re an iOS or Mac developer, it’s not past developments that matter so much as future releases, and the next major version of Swift, 3.0, will offer quite a few changes.
Some of those changes will be source-breaking from Swift 2.x, which is a very big deal for programmers. According to Apple’s profile on GitHub, other major alterations will include a stabilized ABI (in order to guarantee a “level of binary compatibility going forward”), API design guidelines, and portability to other platforms.
With 3.0, Apple’s development team will also introduce added resilience, which it claims will solve the problem of fragile binary interface. At the moment, if there are any changes to the underlying libraries, an application must be recompiled. “Adding a new stored property or overridable [sic] method to a class should not require all subclasses of that class to be recompiled,” the GitHub page mentioned in passing. But resiliency comes with its own issues, including more execution overhead.
On a broad level, Swift 3.0 will represent an attempt to focus and refine the language, which has grown quickly over the past two years. That may require some weeding of library APIs. Other potential features, such as full-source compatibility, concurrency, C++ interoperability, and major new functionality, will need to wait for a future release.
At the moment, Apple has scheduled Swift 3.0 for a fall release, but hasn’t narrowed down that timetable any further. If you work with iOS or Mac, but still rely on the aging Objective-C for app building, now might be a good time to start familiarizing yourself with Swift, which is one of the fastest-growing languages in the world.