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.