Swift is a fast, safe and a fun language to code in with full stack potential and great community support. It is about 2.6 times faster than Objective-C according to Apple, however, some studies indicate that the difference is not that dramatic. Swift code is easier to maintain as there are no separate interface and implementation files, the syntax is shorter and the language supports dynamic frameworks.
The language has grown significantly and has been adopted by a large number of developers. It is the 6th most loved language according to StackOverflow Developer Survey 2018. For a language released in just 2014, the adoption rate is phenomenal.
Those are some of the benefits of Swift, now let us look at the drawbacks from a developers’ perspective. Swift is still not mature and is like a moving target with major changes being introduced with every new release. One of the key problems articulated by many developers is the lack of backward compatibility with older language versions and the version-lock which means there can be only a single version of Swift in the entire project and its external dependencies. Consequently, developers are forced to completely rewrite their projects if they want to switch to the latest Swift version and update their external dependencies. For developers who make frameworks, they have to update their framework for every new Swift version and they cannot distribute it as a binary precompiled framework.
Luckily the Swift team and the Open-Source community are working on this issue and are expected to address this in the next major release of Swift i.e. Swift 5.0, having been pushed forward since Swift 3.0.