# Swift (Programmiersprache)

Swift ist eine Allzweck-Programmiersprache, die 2014 vom US-amerikanischen Unternehmen Apple veröffentlicht wurde. Swift ist eine multiparadigmatische Sprache, die Ideen von Objective-C, Rust, Haskell, Ruby, Python, C#, CLU, D und anderen Programmiersprachen aufgreift. Sie bietet Mechanismen wie Klassen, Vererbung, Closures, Typinferenz, Funktionen höherer Ordnung, generische Typen und Namensräume sowie multiple Rückgabetypen und -werte. Der Compiler basiert auf LLVM. Mit Swift können Anwendungen für die Betriebssysteme iOS, iPadOS, macOS, tvOS, watchOS, Linux, Windows, z/OS und Android entwickelt werden.
Laut Swifts Chefarchitekten, Chris Lattner, soll Swift Objective-C bei Apple nicht ersetzen, sondern eine zusätzliche Möglichkeit zum Entwickeln für die Plattformen iOS und macOS bieten.

## Geschichte

Die Entwicklung von Swift begann im Juli 2010 durch Chris Lattner, ab Ende 2011 arbeitete eine größere Entwicklungsmannschaft daran. Eine am 2. Juni 2014 veröffentlichte Aktualisierung der WWDC-App war die erste veröffentlichte Anwendung, die in Swift geschrieben wurde. Auf der Entwicklerkonferenz WWDC 2014 wurde Swift erstmals der breiten Öffentlichkeit vorgestellt. Auf der Konferenz wurde das dazugehörige Handbuch angekündigt und im iBooks Store zur Verfügung gestellt. Das Handbuch wurde mit jeder neuen Version aktualisiert. Eine Version für Lehrkräfte wurde auch von Apple bereitgestellt.

### Swift 1

Swift 1.0 wurde am 9. September 2014 von Apple veröffentlicht. An diesem Tag wurde die Golden Master von Swift 1 incl. Xcode 6.1 verteilt.

### Swift 2

Auf der WWDC 2015 am 8. Juni 2015 stellte Apple Swift 2.0 vor. Neben verschiedenen sprachlichen Erweiterungen wie bspw. der Ausnahmebehandlung mittels try, throw und catch wurde auch angekündigt, dass die Lizenz von Swift in eine OSI-konforme Open-Source-Lizenz geändert wird. Am 3. Dezember 2015 stellte Apple dann Swift unter die Apache-2.0-Lizenz, die eine freie Nutzung von Swift (auch für kommerzielle Projekte) ermöglicht. Apple gab den Quellcode in einem GitHub-Repository frei und bietet auch eine Portierung für Linux an.
Die letzte Version von Swift 2 ist Swift 2.3 und wurde mit Xcode 8 veröffentlicht.

### Swift 3

Auf der WWDC 2016 wurde Swift 3.0 zusammen mit iOS 10.0 vorgestellt. Swift 3 ist die erste neue Hauptversion, seit Apple Swift quelloffen gemacht hat. Durch einige tiefgreifende Änderungen ist Swift 3 nicht mehr Quellcode-kompatibel mit den Vorgängerversionen. Grund dafür sind vor allem die neuen API-Designrichtlinien, die die Grundlage für die Weiterentwicklung von Swift bilden und bei denen Klarheit beziehungsweise Übersichtlichkeit besonders wichtig sein sollen.
Die Liste der Neuerungen und Umstellungen in Swift 3.0 umfasst mehr als 100 Punkte. Apple hat einen Migrationsleitfaden als Hilfe für den Umstieg veröffentlicht. Für das Anpassen von vorhandenem Code gibt es ab Xcode 8.0 einen „Code-Migrator“, der einen Großteil der benötigten Änderungen automatisieren soll.

### Swift 4

Im September 2017 wurde mit Swift 4 die nächste Hauptversion veröffentlicht. Neue Funktionen sind zum Beispiel verbesserte Collection Typen sowie ein einfacherer Umgang mit Strings. Um vorhandenen Swift-3-Code weiterverwenden zu können, verfügt der Compiler über einen Swift-3- und Swift-4-Modus, die in einem Projekt auch gemeinsam verwendet werden können. IBM stellte 2018 Swift mit dem „IBM® Toolkit for Swift on z/OS“ in der Version 4.0.1 erstmals auf seinen Großrechnern unter z/OS zur Verfügung.

### Swift 5

Die Version 5.0, die am 25. März 2019 veröffentlicht wurde, brachte einige Änderungen und Verbesserungen, unter anderem in der Standardbibliothek und dem Package Manager. Es gab einen Wechsel vom UTF-16- zum UTF-8-Encoding als Standard bei dem Datentyp String. Swift 5.1 wurde am 20. September 2019 veröffentlicht, die Version 5.2 am 24. März 2020. Hinzugefügte Funktionalitäten umfassten unter anderem Property Wrappers und Opaque Types. Die Version 5.3 erschien im September 2020. Mit dieser Version ist Swift nicht nur für macOS und Linux, sondern auch für Windows verfügbar.