Swift development lead Ted Kremenek has announced a preliminary vision of what Swift 6 could include and how the community will get there on Swift's mailing list. Swift 6 will bring significant improvements to the language, including better concurrency support and memory ownership. No fixed timeline has been set yet, though, leading people to think it will not happen in 2020.
According to Kremenek, the reason why a fixed timeline for Swift 6 cannot be set yet is the scope and depth of changes required by the new language version.
These are major changes to the language that will take discussion, investigation, and time to implement. Instead of announcing a specific timeline for “Swift 6”, the plan is for the community to be a part of seeing these efforts progress, with focused efforts and goals, and we release Swift 6 when those efforts culminate.
This does not mean the Swift team will go silent until Swift 6 is ready. Quite on the contrary, Kremenek sees a number of intermediate releases leading to Swift 6, with each of them being a major release in its own right.
The goals for those intermediate 5.x releases, as proposed by the Swift Core team, span across three main areas: the Swift ecosystem, developer experience, and language refinement. That does not exclude additional focuses that the community may deem relevant.
The Swift ecosystem is certainly thriving on Apple platforms. To accelerate its growth on other domains, Kremenek says, Swift should provide improved support on other platforms. This effort would include redefining the way Swift programs are installed and deployed; work towards better tooling, with Swift Language Server and Package Manager at the center of focus; enrich Swift open-source library ecosystem, with special attention to support for using Swift server-side and for numerical applications.
Developer experience is already an area of major focus for Swift, according to Kremenek, including work on faster builds, more accurate diagnostics, better code completion and debugging support.
On the language front, there are a number of interesting evolutions that can be attained before getting to the major changes envisioned for Swift 6. In particular, the Swift 5 series should improve variadic generics support, add DSL capabilities through function builders, and make its general use more convenient on embedded systems or for machine learning applications, among other things.
Reactions to Kremenek's announcement were mostly positive, albeit marked by a different perception of the urgency to add proper concurrency support to the language. On a negative note, long-time Apple developer John Shier remarked there are still no plans for an integrated Swift package repository. Kremenek replied to this by acknowledging the value this would have and pointing to GitHub's recent announcement about supporting Swift packages in their GitHub registry, while not ruling out more related efforts for Swift 6. Many Reddit commenters stressed the importance of improving Swift support for concurrency, with preferences going in the direction of async/await
support at the language level or to a solution inspired in Go channels. At the moment, though, it is not clear which direction Swift will take, with the current view being reflected in Chris Lattner Swift concurrency manifesto. Similarly, the direction work on memory ownership could take is reflected in the Swift ownership manifesto.