Swift eignet sich zur Entwicklung nativer Apps für das Apple-Ökosystem, Linux und Windows. Die vielseitige Programmiersprache ist Open Source und greift Ideen von Objective C und weiteren Programmiersprachen auf, darunter Rust, Ruby, Haskell und Python.
Neue Concurrency-Features
Das wohl interessanteste Feature des neuesten Release ist die Interoperativität der Nebenläufigkeit in Swift mit Objective C. Das Proposal verbindet die Nebenläufigkeitsfeatures in Swift mit dem konventionsbasierten Ausdruck asynchroner Funktionen in Objective C. Das Ziel: Asynchrone Objective-C-API sollen damit unmittelbar mit Swifts Concurrency-Modell verwendbar sein.
Moderne Swift-Programmierung greift zwar häufig auf async
-Funktionen zurück, die entsprechenden API waren aber bisher nicht gerade einfach zu verwenden. Version 5.5 führt ein neues async/await-Konstrukt ein, das die Semantik asynchroner Funktionen festlegt. Es soll den Einsatz von async/await insgesamt weniger fehleranfällig machen. Ein weiteres neues Feature namens strukturierte Nebenläufigkeit – oder structured Concurrency – soll die nebenläufige Ausführung asynchronen Codes ermöglichen – mit einem Modell, das sowohl ergonomisch als auch vorhersehbar sein sowie eine effiziente Implementation erlauben soll.
Package-Collections
Eine weitere Neuerung in Swift 5.5 sind sogenannte Package-Collections. Collections sind statische JSON-Dateien, die Listen von Packages sowie zugehörige Metadaten beinhalten. Der Swift-Package-Manager erhält zudem ein neues Command-Line-Interface zum Hinzufügen und Entfernen von Collections, die indiziert werden, sodass sich das passende Paket künftig leichter auffinden lässt.
Weitere Neuerungen
Unter den weiteren Neuerungen sind sogenannte Aktoren sowie neue Möglichkeiten für den Einsatz sogenannter Property-Wrapper. Ein actor dient als Referenztyp, der den Zugriff auf seinen veränderbaren State schützt. Property-Wrapper wurden bereits mit Version 5.1 eingeführt. Sie dienen dazu, in lokalen Variablen und Type-Properties gängige Property-Zugriffsmuster wegzuabstrahieren. Mit Version 5.5 wurde ihr Einsatzbereich auf die Parameter von Funktionen und Closures erweitert.
Heruntergeladen werden kann die neue Version via swift.org.