I use Swift everyday but haven't (yet) contributed to the language itself. Above all criticism I might have, I'm very grateful for what the Swift community is providing.
Two things I really wish would improve are diagnostics and type inference, in particular when it comes to closures and generics. (I'm beginning to accept the limitations on PATs)
Incidentally, I recently stumbled over this post by Max Howell (Creator of Homebrew and the Swift PromiseKit):
Therein, he lays out how PromiseKit's type system and elegance have been compromised due to Swift's incomplete type inference and partially useless diagnostics. I have the utmost respect for Max, so I'm a bit worried when someone like him is frustrated with Swift and sounds like he's losing patience:
Swift is great… and terrible, specifically its error diagnostics are so bad in certain conditions that I honestly have started to wonder if recommending the language is still a good idea. [...] Swift lies.
If there is an error inside a closure, Swift, with no improvements since v1 :(, has told you the wrong error.
I even see experienced developers not know how to proceed here, and this is for the additional reason that getting Xcode to show you the function definition for Swift code is a toss-up, half the time it doesn’t work, so experienced devs have stopped trying to make it work. When you can’t trust your tools you can’t get things done.
So I was wondering:
- What would be the process to fix such basic annoyances?
- Was the focus on ABI stability the main reason for why these issues still exist?
- What will be the Swift evolution focus after ABI stability?