1. 15
  1.  

  2. 8

    Huge write-up about a huge release!

    • Async/await - SE-0296
    • Async/await: sequences - SE-0298
    • Effectful read-only properties - SE-0310
    • Structured concurrency - SE-0304
    • async let bindings - SE-0317
    • Continuations for interfacing async tasks with synchronous code - SE-0300
    • Actors - SE-0306
      • Beyond actor isolation, there are two other important differences between actors and classes:
        • Actors do not currently support inheritance, which makes their initializers much simpler – there is no need for convenience initializers, overriding, the final keyword, and more. This might change in the future.
        • All actors implicitly conform to a new Actor protocol; no other concrete type can use this. This allows you to restrict other parts of your code so it can work only with actors.
    • Global actors - SE-0316
    • Sendable and @Sendable closures - SE-0302
    • #if for postfix member expressions - SE-0308
    • Allow interchangeable use of CGFloat and Double types: - SE-0307
    • Codable synthesis for enums with associated values - SE-0295
    • lazy now works in local contexts
    • Extend property wrappers to function and closure parameters - SE-0293
    • Extending static member lookup in generic contexts - SE-0299
    • Concurrency Interoperability with Objective-C - SE-2097
    • Task Local Values - SE-0311
    • Package Collections - SE-0291
    1. 2

      This feels like a lot more changes than a typical minor Swift version. Maybe that’s because almost all of them are of one topic. We’ve been looking forward to these concurrency features for years, and then they all arrived at once. I hope this means Swift is much more viable for server work.