Swift is a general-purpose, compiled development language manufactured by Apple Inc. for iOS, macOS, watchOS, tvOS, and Linux. Swift is designed to make use of Apple’s Cocoa and Cocoa Touch frameworks together with large human body of extant Objective-C (ObjC) code written for Apple services and products. It is intended that Swift will be more resilient to erroneous code (“safer”) than Objective-C, and more concise. It is made with the LLVM compiler framework a part of Xcode 6 and later and, on platforms other than Linux, uses the Objective-C runtime library, which permits C, Objective-C, C++ and Swift code to operate within one program.
Swift supports the core concepts that made Objective-C flexible, particularly dynamic dispatch, widespread late binding, extensible development and similar features. These features also have distinguished safety and performance trade-offs, which Swift was made to address. For security, Swift introduced a system that helps address common programming errors like null pointers, and introduced syntactic sugar designed to prevent the pyramid of doom that can result. For performance issues, Apple has invested effort that is considerable aggressive optimization that may flatten out method calls and accessors to eliminate this overhead. More fundamentally, Swift has added the style of protocol extensibility, an extensibility system that can be applied to types, structs and classes. Apple promotes this as an alteration that is genuine in development paradigms and they term “protocol-oriented programming”.
Swift is an alternative to the Objective-C language that employs programming-language that is modern ideas and strives to present a simpler syntax. During its introduction, it was described simply as “Objective-C minus the C”.
By standard, Swift does not expose pointers as well as other accessors which are unsafe as opposed to Objective-C, which uses pointers pervasively to make reference to object instances. Also, Objective-C’s use of a syntax that is smalltalk-like making method calls is replaced with a dot-notation style and namespace system more familiar to programmers from other common object-oriented (OO) languages like Java or C#. Swift introduces true named parameters and retains key Objective-C concepts, including protocols, closures and groups, often changing syntax that is former cleaner versions and enabling these principles to be applied to many other language structures, like enumerated types (enums).