That'll definitely be nice, for people already using the language, but I don't know of anyone actually held back by that. I'm more concerned by issues like lack of a good concurrency story, and lack of a good cross-platform story (differing behavior on Darwin/Linux, no Windows support).
ABI stands for Application Binary Interface. It's basically how compiled code interfaces with each other (e.g. how functions are called and values are returned).
In Swift, this is currently not stable, meaning it changes with each version. The result is that you can't use a library compiled with version X of Swift with version Y of Swift. From version 5 onward the ABI will be compatible between version 5 and versions >5.
Totally agree with this. I tried v1 and then v2 and nearly never came back because all my code broke going 1-2 and it was just generally awful. V4 is lovely though. Some people with common sense must have joined the party
> Some people with common sense must have joined the party
More likely the language just matured. I'm glad they were not afraid to iterate as it is hard to get everything right on the first try and being stuck with a suboptimal design for the next 20 years would have been much worse.
It's funny to bring this comparison up (since Graydon is now on the Swift team), but Rust _also_ iterated like mad and took a while to mature — however, they waited until some degree of maturity before they called it 1.0, and have since been incredibly cautious about breaking changes. And they did this all of this iterating while building Servo in-house at Mozilla on the unstable version.
This is, in many ways, the diametric opposite of what this thread is discussing: pushing out nominally "stable" versions to the outside world, breaking things, but not committing internally.
I agree they probably shouldn't called Swift a 1.0 so soon, but I ascribe that to Apple management not allowing them to come out of the gate with something labelled 0.x
Agree with this comment. If you’ve watched the community work at this language it’s been a very clear and well documented process. I’ve learned a lot just by watching Swift evolve through proposals.
I've developed since for version 1, small utilities, and even for those projects, it was not enough.
Version 4 and it's my favorite language to develop for.