Mit Swift 4.0 steht die nächste Major-Version von Apples Programmiersprache ab sofort offiziell zur Verfügung. Das Update kommt mit einigen Neuerungen und Verbesserungen an der Sprache sowie der Standard-Library daher, zudem bietet die neue Swift-Version auch neue Kompatibilitäts-Modi zu Swift 3. Wie im Ausblick auf Swift 5 angekündigt, fehlt die ursprünglich für Swift 4 geplante ABI-Stabilität; sie soll aber auf jeden Fall in der nächsten Major-Version implementiert werden.
Sprach-Updates in Swift 4
Swift 4 kommt mit einigen neuen Sprach-Features sowie verschiedenen Verbesserungen der Programmiersprache daher. Dazu zählt zum einen eine schnellere und einfacher zu nutzende String
-Implementierung, die die Richtigkeit von Unicodes beibehält sowie Support für das Erstellen, Nutzen und Managen von Substrings hinzufügt.
Auch das Erstellen und Managen von Collection-Types wurde verbessert. So können künftig etwa Custom-Collections für Dictionary-Keys und -Werte genutzt werden; zudem wurde der Standard-Library Dictionary
-Type mit allerhand weiteren Verbesserungen versehen (siehe Proposal 0165 „Dictionary & Set Enhancements“).
Neu ist auch die Unterstützung für die Archivierung von struct- und enum-Types sowie die Aktivierung von type-sicherer Serialization in externen Formaten wie JSON und plist. Mehr Informationen dazu bietet das Proposal 0166: „Swift Archival & Serialization“. Darüber hinaus wurden auch einige weitere Sprach-Updates vorgenommen; sie sind im Ankündigungsblogpost von Ted Kremenek zusammengefasst.
Neue Kompatibilitäts-Modi
Mit Swift 4 muss der eigene Code nicht zwingend modifiziert werden, um die neue Version des Compilers zu nutzen. Er unterstützt zwei Sprach-Modi, die jeweils über das -swift-Version
-Flag spezifiziert werden:
- Swift 3.2: der Compiler akzeptiert einen Großteil der Quellen, die mit den Swift 3.x-Compilern erstellt wurden; die meisten Sprachfeatures von Swift 4 sind verfügbar
- Swift 4.0: enthält alle Swift-4.0-Sprach- und API-Änderungen; Source-Migrationen werden für die meisten Projekte nötig
Zu den Vorteilen der neuen Kompatibilitäts-Modi sagt Kremenek:
you can start using the new Swift 4 compiler and migrate fully to Swift 4 at your own pace, taking advantage of new Swift 4 features, one module at a time.
Updates beim Package Manager
Auch dem Package Manager wurden in Swift 4 einige neue Workflow-Features sowie neue APIs spendiert. So ist es nun einfacher, mehrere Packages zusammen zu entwickeln, bevor das erste Release getaggt wird. Außerdem wurden die Package-Produkte formalisiert, und das neue Package API gibt Package-Autoren mehr Kontrolle über das Erstellen von Packages.
Mehr Informationen zu den Neuerungen sind im oben genannte Blogpost von Ted Kremenek zusammengefasst. Swift 4 steht auf der Download-Seite sowie als Teil von Xcode 9 zur Installation bereit.

Creating a hybrid and multi-cloud strategy using Azure API Management
Eldert Grootenboer (Motion10)

From Horror Story to Fairy Tale: Writing code people want to read
Michael Dowden (Andromeda Galactic Solutions)