Swift was created by Apple in 2014 for iOS, watchOS, tvOS, macOS app development as a logical substitute for Objective-C, which had flaws and was outdated to a certain extent. Although Swift continues some of the Objective C concepts, e.g., extensible programming, the approach is different due protocol-oriented design and static typing. Swift supports Linux apps as well. Like any other programming language, it has both pros and cons.
In 2014, It was first presented at Apple’s Worldwide Developers Conference and caused mixed reactions - there were both critics and supporters. Most developers said it was too "raw" to use in production. However, each new release brought positive changes, and eventually it occupied a well-deserved position among most popular technologies. It is also testified by the fact that the Swift community had been rapidly growing after Apple made it open source in 2015. According to the Tiobe index, which shows which programming language is worth adopting when starting a new project, Swift is in the12th place. Swift also boasts many handy third-party tools and is an increasingly popular choice, especially for small apps and startups. Apple is putting a lot of effort into making it desirable for coding and beginner-friendly, constantly introducing new great utilities and auxiliaries that fuel the interest. For instance, the Playgrounds app in 2016, which allows you to quickly learn programming in Swift. Besides, there are plenty of official e-books, podcasts, guidelines, and courses to foster language adoption.
Advantages of Swift
Concise syntax of Swift simplifies the development process - less code is necessary than with Objective-C for the same task, which means time economy for app building. Succinct syntax also ensures good readability, error prevention, fast and easy onboarding for new team members.
2. Scalability of projects
Apple will support the coding language in the future, and it makes projects in Swift easily scalable with new features. Therefore, it is a more reliable choice when it comes to long-term investment.
3. Enhanced performance
Ìt was initially designed to outperform Objective-C, and as many tests confirm, this goal was reached. Apple states that it's 8.4x faster compared to Python and 2.6 -to Objective-C. Also, memory usage of the application is tracked with Automatic Reference Counting (the garbage collection function detects which instances are no longer used and eliminates them automatically), so there is no need to do it manually. Therefore, ARC allows boosting the apps performance without slowing down memory or CPU.
4. High safety
Thanks to its strong typing system and a shorter feedback loop, Swift allows to fix code errors very early before the deployment.
Decreased memory footprint
When building an app, developers use a proportion of third-party code - libraries or frameworks. Static libraries get locked in the code and make its file size and load time larger. Swift allows using dynamic libraries, which, on the one hand, take more time to call to, but reduce the apps memory footprint, on the other, as they load only when the task is run. Starting from version 5.0, standard Swift libraries become an integral part of all watchOS, iOS, tvOS and macOS releases, which means all apps created for them will be more lightweight.
5. Interoperability with Objective-C
It means that developers can add new features in Swift to the codebase in Objective C, or vice versa. It is valuable for large-scale projects that require extension or updating.
6. Full stack
Swift can be used both for client- and server-side development. With active support from IBM, the language is in the cloud and integrates with many popular backend technologies. It enables code sharing and reuse, again, reducing the development time.
7. Open source
Thanks to its active open-source community, Swift is getting better and stronger. The language supports Linux and Windows as an open source project.
Weaknesses of Swift
Some drawbacks of Swift are related to the fact that it is a young language. In the past, although Apple provides a tool for migrations between versions, it was not always easy, especially for large-scale projects and those containing both Objective C and Swift code. This problem was solved with the introduction of ABI stability on all Apple platforms, backward compatibility of all versions, and updated documentation. It is a big progress in language maturity. Module stability 384 made possible the creation of stable binary frameworks.
2. Limited number of developers
Despite its growing adoption, Swift still has a limited talent pool. According to StackOverflow Developer Survey 2019, only 6.8 % of professional developers use it, and few have extensive experience with it.
3. Lack of support for earlier versions of iOS
Swift is not compatible with apps targeting earlier versions than iOS7 and macOS 10.9. However, only up to 5% of devices run on those, respectively, there aren't so many legacy projects for which it might constitute a problem.
Despite being a toddler in the programming languages world, Swift has proven its efficiency and is used by such companies as LinkedIn, Vimeo, Coursera, Twitter, etc. Considering all the effort Apple is taking to fix Swifts flaws with every new release, we many assume that it will eventually outflank Objective-C and become a leader for iOS mobile app development. Swift 5.2 is the latest version, launched on March 24, 2020. According to the Swift Core team, the language software ecosystem will continue to grow. Among the main goals: make it fully compatible with other platforms; improve installation and deployment processes for Swift-based software; extend libraries to make the language suitable for developing a variety of services and use cases, including machine learning.