Has Swift's concurrency model gone too far?

I spend a lot of time working with Swift concurrency. I do not think it is either useful nor really fair to argue with any of this. No one can tell you your experiences or conclusions are incorrect. But I think what we can do is explore tangible ways to help. And I'm, honestly, quite encouraged to see some agreement that documentation (while necessary and good) is not really a solution.

I think there are three core problems.

  • The language is hard to use in a number of common situations
  • Many APIs are difficult to use in their current state
  • Swift 6 has been adopted too aggressively

I absolutely do believe that the vision document for improving approachability will help tremendously. I think it's premature to say if it will help enough, but I'm quite optimistic.

I'm unsure how to meaningfully comment on the state of Apple's SDKs. There was quite a bit of progress with Xcode 16, and incrementally more with its point releases. There remains considerable work to do.

On the third point, it almost feels insulting to say. And I really don't mean it that way, especially since some concurrency features were introduced years ago. Why wouldn't you? But, for most projects, the Swift 6 language mode makes no sense. It can require a deep understanding to use successfully in many situations. And this isn't always clear until you're quite far into the migration progress.

10 Likes