Swift (Programmiersprache)
Swift | |
---|---|
Logo | |
Basisdaten | |
Paradigmen: | Multiparadigmen (objektorientiert, funktional, imperativ, Blockstruktur) |
Erscheinungsjahr: | 2014 |
Entwickler: | Apple |
Aktuelle Version: | 2.1 (21. Oktober 2015) |
Aktuelle Vorabversion: | 2.2 (3. Dezember 2015) |
Typisierung: | statisch typisiert |
Beeinflusst von: | Objective-C, Rust, Haskell, Ruby, Python, C#, CLU,<ref name="lattner2014">Chris Lattner: Chris Lattner's Homepage. Abgerufen am 3. Juni 2014: „… it also greatly benefited from the experiences hard-won by many other languages in the field, drawing ideas from Objective-C, Rust, Haskell, Ruby, Python, C#, CLU, and far too many others to list.“</ref> D<ref name="swift blog">Building assert() in Swift, Part 2: __FILE__ and __LINE__ - Swift Blog -. Apple Developer. Abgerufen am 26. September 2014: „Swift borrows a clever feature from the D language: these identifiers expand to the location of the caller when evaluated in a default argument list.“</ref> |
Betriebssystem: | OS X, iOS, Linux |
Lizenz: | Apache-Lizenz 2.0 (seit Swift 2.2) |
Swift ist eine Programmiersprache von Apple für iOS, OS X und Linux, die auf der Entwicklerkonferenz WWDC 2014 vorgestellt wurde.
Es handelt sich dabei um eine objektorientierte Sprache, die Ideen von Objective-C, Rust, Haskell, Ruby, Python, C#, CLU, D<ref name="swift blog" /> und anderen Programmiersprachen aufgreift.<ref name="lattner2014" /> Sie bietet Mechanismen wie Klassen, Vererbung, Closures, Typinferenz, generische Typen und Namensräume sowie multiple Rückgabetypen und -werte.<ref>Nathan Ingraham: Apple has a new programming language called Swift, 'and it totally rules'. The Verge, abgerufen am 2. Juni 2014. </ref> Als Compiler wird LLVM genutzt.<ref>Owen Williams: Apple announces Swift, a new programming language for iOS. The Next Web, Inc., abgerufen am 2. Juni 2014. </ref>
Auf der Konferenz wurde das dazugehörige Handbuch angekündigt und im iBookstore zur Verfügung gestellt.<ref>The Swift Programming Language. Apple Inc., abgerufen am 2. Juni 2014. </ref>
Laut Swifts Chefarchitekten, Chris Lattner,<ref name="lattner2014" /> soll Swift Objective-C bei Apple nicht ersetzen, sondern eine zusätzliche Möglichkeit zum Entwickeln für die Plattformen iOS und OS X bieten.<ref>Xcode-users mailing list. Apple Inc., abgerufen am 5. Juni 2014. </ref>
Inhaltsverzeichnis
Swift 2.0
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.<ref>Swift 2.0</ref>
Am 3. Dezember 2015 stellte Apple Swift unter die Apache-2.0-Lizenz, die eine freie Nutzung von Swift (auch für kommerzielle Projekte) ermöglicht. Apple gibt den Quellcode in einem GitHub-Repository frei und bietet auch eine Portierung für Linux an.<ref>The Swift Linux Port</ref>
Geschichte
Die Entwicklung von Swift begann im Juli 2010 durch Chris Lattner, ab Ende 2011 arbeitete eine größere Entwicklungsmannschaft daran.<ref name="lattner2014" /> Eine am 2. Juni 2014 veröffentlichte Aktualisierung der WWDC-App war die erste veröffentlichte Anwendung, die in Swift geschrieben wurde.<ref>Platforms State of the Union. Session 102 auf der WWDC 2014 bei ca. 30 min.</ref>
Code-Beispiele
<syntaxhighlight lang="swift"> var implicitInteger = 70 var implicitDouble = 70.0 var explicitDouble: Double = 70
let apples = 3 let oranges = 5 let appleSummary = "Ich habe \(apples) Äpfel." let fruitSummary = "Ich habe \(apples + oranges) Früchte."
print("Hallo Welt!")
let people = ["Anna": 67, "Julia": 8, "Hans": 33, "Peter": 25] for (name, age) in people {
print("\(name) ist \(age) Jahre alt.")
} </syntaxhighlight>
Siehe auch
Literatur
- Stefan Popp, Ralf Peters: Durchstarten mit Swift. O'Reilly, ISBN 978-3-95561-884-1
- Thomas Sillmann: Swift im Detail. Carl Hanser Verlag, ISBN 978-3446442948
- Holger Hinzberg: Einführung in Swift. mitp, ISBN 978-3826696756
Weblinks
Einzelnachweise
<references />