I think your mind is wrong here, but regardless of what I think, you're not offering any hard evidence about your sweeping, overly general and encompassing statements. You are getting specific answers on specific points, but your position seems to always be that even if the answer you got is right, it's "too hard".
The remark about the fact that most people will never catch up is just arbitrary and unsubstantiated.
We all got that NSImage
and many other Apple-specific APIs have not caught up with strict concurrency checking, but that's not a problem with Swift, and extrapolating hard statements about Swift 6 from this is obviously illogical.
That's not true. The whole point is that considering some things "natural" is incorrect: they might seem natural, they feel natural, but they are not, and strict concurrency checking exposes the counterintuitive and hidden problems behind apparently simple things.
Now, it's perfectly possible that, in practice, something that is not technically concurrency safe is used, in a particular place, in a particular case, in a safe way. But for the Swift compiler to understand that, it would need to do a very complex, long and costly analysis of the whole program code, including the code of all libraries (including closed source ones) which is, for all means and purposes, impossible. It is impossible in practice, and there's no point in complaining about it: the vision document actually mentions it in passing, but maybe there should be more emphasis on this basic fact.
The solution adopted by Swift is based on a local analysis, that is, an assumption is made about the rest of the world, given how the boundaries of the local scope are annotated, and then only the local code is analyzed in full. This means that if something has not been adapted and annotated properly yet, the local assumptions will not reflect the practical reality, and that is certainly a problem, but it's, again, a practical problem, not an essential one. Several Apple-specific APIs have not caught up yet, but that's simply because time and effort and limited resources, and a real-world team must prioritize some things over others, which of course will create problems to those that rely on things that were not prioritized. The best we can do is:
- point out what's missing;
- look for other temporary solutions.
Whining about missing APIs is not going to be useful in the long run, nor generate a productive conversation (in fact, it's going to create a bad environment and wrong impressions for newcomers), so I'd suggest to instead provide info and suggestions about what's missing (so that the appropriate people can look into it) and explore alternatives, while reporting on them so other people can benefit from it.
I think you are instead missing the fundamental issue that things are actually complex, even if they don't look that complex to you due to your limited view of the problem (which is as limited as anybody else's, to be clear).
Unhelpful documentation and error messages are very frustrating if they don't clearly refer to the thing that's missing in the local code area where they are mentioned, and that is an objective issue, not a personal perspective, and as such it's going to be more important to solve, and more impactful if it's improved upon.
There's a lot of wrong with passive-aggressive remarks like these, that are not helpful for the conversation and create a negative and unwelcoming environment, and as such should probably ignored, but I also feel this kind frustration in other contexts (that have nothing to do with programming), so I'd like to comment on a couple of things:
- everyone has bias and cognitive dissonance, at different levels, including you of course, so there's really no use in wondering such things; I'd suggest instead to do more self-analysis and understand which biases of yours are affecting your perspective, and how to overcome them; I don't mean to be patronizing, but wondering about "other invested people"'s cognitive dissonance is a sign that you're being uncharitable;
- there's no such thing as "regular dev", as there's no such thing as "normal people"; it seems to me that you're projecting you're very own personal specific experience on the world of Swift developers, assuming that they look more or less like you, but they don't; there are other comments from other people on specific issues, but the tone and approach is very different, and that's going to be better for the conversation, and more helpful in relation to the feedback about the OP.