Overview of accepted proposals for Swift 3
Each major release of Swift will have high-level goals to which accepted features must adhere. For the Swift 3 release, the Swift team outlined that the primary goal of this release is to solidify and mature the Swift language and development experience.
In their own words, the Swift team went on to stated that While source code breaking changes to the language have been the norm for Swift 1 through 3, we would like the Swift 3.x (and Swift 4+) languages to be as source-compatible with Swift 3.0 as reasonably possible. However, this will still be best-effort: if there is a really good reason to make a breaking change beyond Swift 3, we will consider it and find the least invasive way to roll out that change (for example, by having a long deprecation cycle).
In order to achieve the release goal for Swift 3, each of the following are considered important in terms of getting the basics right for future releases:
- API design guideline
- Automatic application of naming guidelines to imported Objective-C APIs
- Adoption of naming guidelines in key APIs
- Swiftification of imported Objective-C APIs
- Focusing and refining the language
- Improvements to tooling quality
You can learn more about each of these areas on the Swift Evolution repository page as well as see the complete list of implemented proposals, accepted but not yet implemented proposals, and rejected or withdrawn proposals.