Swift Concurrency: Feedback Wanted!

Today Apple released the first beta of Xcode 13. This includes Swift 5.5, with support for language-native concurrency. Most of these features have already been accepted as evolution proposals, as well as a few that are still in review.

Swift Concurrency is a huge feature, by far the biggest change to the language that has been through the evolution process. To keep things manageable, the feature has been broken up into individual proposals for async/await, actors, Objective-C interoperability etc. But it’s also important to consider how all the features work together. Even where proposals have been accepted, further feedback about how they interact in practice is still welcome.

Evaluating the impact of the feature on real world applications is also key. Xcode 13 includes an annotated SDK that expands the number of APIs that will work natively with Swift Concurrency.

We’d love people to post their experiences of trying out the feature – what went well and what was more challenging – here in this thread once you have a chance to try them out.

For clarification on how to use the new concurrency features, or talk about common patterns you’ve found useful, the Using Swift section of the forums are also a great place to share ideas and ask questions.

For reference, here is the full list of concurrency-related proposals included in the first beta. Note, in some cases there can be lag between a proposal being updated in open source and it making it into the build, so some proposal amendments are not reflected in the first beta. For example, beta 1 still requires async { } to launch an unstructured async task rather than the now-proposed Task { }. The task-local values proposal also has amendments that will appear in a later beta.

67 Likes