### Big Wins with Swift Swift - wider gap between source semantics & IR semantics Writing more of the language in the language Generic model - support dynamic dispatch & separate compilation instead of being dependent on template instantiation like Obj-C & C++ Safer Uninitialize vars, unreachable code should be compiler errors Swift has it's own intermediary language (SIL). --> allows for compiler warnings on uninitialize vars, unreachable code should be compiler errors SIL is still built off LLVM provided primitives.. creating boundary between SIL & LLVM responsibilties. --------- 1. Safer - Optionals 2. New developer ramp up. Junior developer - Playgrounds - Syntax 3. Language perks. Generics. Swift 1.0 Goals: - Integrating with iOS libraries. Ex. IBOutlets. - Basic language - Generics, optionals Issues: Source: https://github.com/ksm/SwiftInFlux/blob/52674b1ee87488159d6e0690fc9959579a8fe070/README.md Swift 2.0 Goals: Issues: Swift 3.0 Goals: - Definition API design guidelines - Adoption of guidelines in key APIs Swift 3 is the first release to enable broad scale adoption across multiple platforms, including significant functionality in the Swift core libraries (Foundation, libdispatch, XCTest, etc), portability to a number of platforms including Linux/x86, Raspberry Pi, and Android, and the Swift package manager to easily manage the distribution of Swift soure code. Issues: - No support for running both swift 2.0 & 2.3 - Created huge migration issues for many teams https://github.com/apple/swift-evolution/blob/master/releases/swift-3_0.md Swift 4.0 Goals: - Stabilizing the ABI Resilience: resilience provides a way for public APIs to evolve over time, while maintaining a stable ABI. For example, resilience eliminates the fragile base class problem that occurs in some object-oriented languages (e.g., C++) by describing the types of API changes that can be made without breaking ABI (e.g., "a new stored property or method can be added to a class"). Defining a memory ownership model will fundamentally shape the ABI Issues: