Überblick über die Swift-Programmiersprache

von @ralfebert · aktualisiert am 30. Oktober 2021

Swift ist eine moderne, objektorientierte Programmiersprache, die viele Ideen aus anderen Paradigmen wie der funktionalen Programmierung und aus Programmiersprachen wie Objective-C, Rust, Haskell, Ruby und Python aufgreift.

Obwohl Swift eine typsichere, compilierte Sprache ist, für die der Compiler viele Fehler bereits in der Compilierphase erkennen kann, hat sie eine sehr elegante und kompakte Syntax, die an Skriptsprachen erinnert. Beispielweise können Typdeklarationen in Swift-Code häufig entfallen, da der Swift-Compiler die Typen automatisch ermittelt:

let names = ["Bob", "Alice"]    // Compiler ermittelt den Typ Array<String> für names
for name in names {             // Compiler ermittelt den Typ String für name
   print("Hello \(name)!")      // Einsetzung von Werten in Strings per String Interpolation
}

Historie

Seit der ersten Vorstellung in 2014 wurde die Sprache in den letzten Jahren umfangreich erweitert und verbessert. Nachdem die ersten Versionen von Instabilitäten und mit den Vorgängerversionen inkompatiblen Sprachänderungen geprägt waren, hat sich die Entwicklung der Sprache seitdem stabilisiert.

Seit Dezember 2015 ist die Implementierung der Sprache, die auf dem Compiler-Projekt LLVM basiert, quelloffen unter der Apache-2.0-Lizenz verfügbar.

Jedes Jahr wird im Juni auf der WWDC eine neue Xcode-Version angekündigt und als Beta veröffentlicht, die auch die nächste Version der Swift-Sprache und der zugehörigen Tools enthält. Meist erfolgt im September/Oktober darauf die Veröffentlichung der finalen Version zusammen mit dem neuen iOS-Release.

Mit Xcode 13 wurde im September 2021 Version 5.5 von Swift ausgeliefert. Die Versionen der letzten Jahre waren vollständig rückwärtskompatibel und es wurden keine Änderungen an bestehendem Code notwendig.

Swift vs. Objective-C

Im Gegensatz zu Swift ist Objective-C, das vor Swift zur Programmierung von Apps für iOS und macOS verwendet wurde, eine Erweiterung der C-Programmiersprache. Es erweitert C um Sprachkonstrukte zur objektorientierten Programmierung. Die Syntax von Objective-C wurde stark von der Sprache Smalltalk inspiriert und hat daher eine ungewöhnliche Syntax - zum Beispiel werden Methodenaufrufe in eckigen Klammern geschrieben:

NSString *str = @"Hello world";
NSString *hello = [str substringToIndex:5];

Apple hat mehrfach deutlich gemacht, das Objective-C neben der neuen Programmiersprache Swift weiterhin unterstützt wird. Es wurde auf die Kompatibilität zwischen den beiden Sprachen geachtet - so können Objective-C Klassen aus Swift heraus verwendet werden und umgekehrt. Schwierig wird dies, wenn neue Swift-Sprachfeatures zum Einsatz kommen, zu denen es in Objective-C keine Entsprechung gibt.

Aufgrund seineren einfacheren und moderneren Syntax ist Swift der klare Favorit für die Entwicklung von Apps. Objective-C kommt hauptsächlich in bestehenden Projekten zum Einsatz, die bereits in Objective-C entwickelt wurden oder in Projekten, in denen die Notwendigkeit besteht, tiefgreifend mit bestehendem C/C++-Code zu interagieren.

Weitere Informationen