5 ms·
Great language-level features (especially the concrete extensions, finally), but I'm most interested in whether the compiler still crashes, whether it can corre
by chris_7 10y ago
Great language-level features (especially the concrete extensions, finally), but I'm most interested in whether the compiler still crashes, whether it can correctly report error messages in code using type inference and closures, and whether incremental compilation works properly.
- rudedogg 10y agoYeah I agree. I've been using Swift for about 2 years, and my major issue is the tooling (Xcode, CocoaPods, etc.). I've been trying plugins for every editor I like (emacs, sublime text, VS Code), and all the code completion sucks. I've researched it a bit, and it all appears to be issues with SourceKit itself. I think Swift would do much better on Linux with proper tooling - when I look at Go and Rust tools everything seems to work (I've never tried them - just going off the project readme.md and videos). I wish this was a bigger priority, but it doesn't appear to be. It seems like this will all probably get better when the Swift Package Manager supports iOS/tvOS/watchOS. Most completion tools don't parse the Xcode project for frameworks, so you don't get completions outside of UIKit/Foundation and what's declared in your file. I imagine when SPM is ready it'll make it much easier to parse dependencies and include completions for them.
- chris_7 10y agoCocoaPods isn't an official tool so it's not really the Swift team's fault that it's bad. SPM should certainly have been "done" by now though, Carthage was put together quicker by a team of volunteers without access to Apple's resources and generally works perfectly (yes, deferring most of the work to xcodebuild).
- pivo 10y agoFor me, the amount of pleasure I derive from using Swift instead of Objective-C far outweighs the downside of crashes and bad error messages. At this point I think I'd stop working on iOS/macOS if I had to go back to working in Objective-C again. Though I do hope they make fixing the compiler crashes a priority soon.
- slavapestov 10y agoWe fixed a lot of bugs while working on the new generics features in Swift 3.1 (and also recursive protocol constraints, which didn't quite make it in but a lot of the plumbing was done for it). For example, in practicalswift's fuzzer collection, 260 cases were fixed between 3.0 and 3.1, for a total of 5426 fixed (with 39 still open).
- pivo 10y agoThanks Slava, that's great news!
- slavapestov 10y agoThere were some improvements to type inference with closures in 3.1. Do you have example snippets that are giving you trouble?