- Diese Veröffentlichung erweitert Swift auf mehr Plattformen und Einsatzbereiche
- Swift ist vor allem als Sprache für die App-Entwicklung bekannt, eignet sich aber auch hervorragend für Bibliotheken, Services im Internet-Maßstab und leistungskritischen Code
- Swift 6 erweitert dies weiter mit neuen Low-Level-Programmierfunktionen, einer Embedded-Swift-Sprachuntermenge, erweitertem Linux- und Windows-Support sowie neuen plattformübergreifenden APIs
Sprache und Standardbibliothek
Nebenläufigkeit
- Swift 6 bietet über einen neuen Sprachmodus Sicherheit, die Datenrennen in nebenläufigem Code verhindert.
- Über das Compiler-Flag
-strict-concurrency=complete werden Warnungen zur Sicherheit vor Datenrennen bereitgestellt.
- Mit einer neuen Synchronisierungsbibliothek sind Low-Level-APIs für Nebenläufigkeit enthalten.
Typed throws
- Der Fehlertyp, den eine Funktion wirft, kann nun in der Signatur angegeben werden.
- Das ist nützlich, um Fehlertypen in generischem Code weiterzureichen oder in Umgebungen mit eingeschränkter Speicherzuweisung.
Ownership
- Nicht kopierbare Typen, die in Swift 5.9 eingeführt wurden, werden in das Generics-System integriert, um die Performance zu verbessern.
- Mit der Syntax
~Copyable lassen sich Ressourcen modellieren und die Performance optimieren.
C++-Interoperabilität
- Swift 6 unterstützt Move-only-Typen, virtuelle Methoden, Standardargumente und mehr aus C++.
- Über die Annotation
SWIFT_NONCOPYABLE können C++-Typen als nicht kopierbare Typen offengelegt werden.
Embedded Swift
- Enthält eine Sprachuntermenge und einen Compiler-Modus für die Entwicklung eingebetteter Software.
- Unterstützt Bare-Metal-Ziele für ARM und RISC-V.
128-Bit-Ganzzahlen
- Fügt vorzeichenbehaftete und vorzeichenlose 128-Bit-Ganzzahltypen hinzu.
Verbesserte Produktivität
- Führt mehrere Funktionen zur Produktivitätssteigerung ein, etwa
count(where:).
Debugging
Benutzerdefinierte LLDB-Zusammenfassungen über @DebugDescription
- Mit dem Makro
@DebugDescription lässt sich anpassen, wie Objekte in LLDB angezeigt werden.
Bessere Start-Performance durch explizite Module
- Die Verwendung expliziter Modul-Builds verbessert die Start-Performance des Debuggers deutlich.
Bibliotheken
Foundation
- Vereinheitlicht die Implementierung von Foundation auf allen Plattformen.
- Erweitert die auf macOS und iOS verwendete Swift-Implementierung auf Linux und Windows.
Swift Testing
- Führt mit Swift Testing eine neue Testbibliothek ein.
- Hilft mit Makros beim Schreiben und Organisieren von Tests.
Plattformunterstützung
Vollständig statisches SDK für Linux
- Es können ausführbare Dateien mit vollständig statischem Linking für Linux gebaut werden.
Neue Linux-Distributionen
- Fügt offiziellen Support für Debian, Fedora und Ubuntu 24.04 hinzu.
Build-Performance unter Windows
- Stellt vorgebaute Toolchains für die arm64-Architektur bereit.
- Der Swift Package Manager parallelisiert Builds unter Windows standardmäßig.
Nächste Schritte
Swift 6 herunterladen
- Die offizielle Swift-6-Toolchain kann unter Swift.org/install installiert werden.
Mit Swift loslegen
- Das Buch zur Programmiersprache Swift wurde aktualisiert, damit es die aktuelle Swift-6-Syntax und die neuen Funktionen abbildet.
Paket-Ökosystem erkunden
- Unter Swift.org/packages lassen sich verschiedene Pakete erkunden.
Mitmachen
- Wer Feedback und Erfahrungen zu Swift 6 teilt, kann zur weiteren Entwicklung der Sprache, der Tools, des Paket-Ökosystems und der Community beitragen.
Zusammenfassung von GN⁺
- Swift 6 ist ein wichtiges Release, das auf verschiedene Plattformen und Einsatzbereiche ausgeweitet wurde.
- Es enthält mehrere neue Funktionen wie Nebenläufigkeit, C++-Interoperabilität und Embedded Swift.
- Es führt neue Bibliotheken wie Swift Testing und verschiedene Produktivitätsverbesserungen ein.
- Der Support für Linux und Windows wird erweitert und die Performance verbessert.
- Swift 6 bietet Entwicklerinnen und Entwicklern mehr Möglichkeiten und Effizienz.
2 Kommentare
Hacker-News-Kommentare
Swift stirbt aufgrund inhärenter Konflikte in seiner Governance langsam
Ich lerne Swift gerade erst und finde es bisher in Ordnung
Dank sicherer Concurrency und typisiertem
throwswirkt Swift zunehmend wie ein zugänglicheres RustSwift 6 ist ein großer Sprung für plattformübergreifende Entwicklung mit Batteries Included
Ich habe vor Kurzem angefangen, Swift und SwiftUI zu lernen, und war überrascht, wie komplex die Sprache ist
@observableObjectverstehe ich nichtIch dachte, Swift würde auf macOS beschränkt bleiben, aber es ist sehr interessant
sigterm-Signal funktionieren nichtSwift muss entscheiden, was es sein will, und dann dabei bleiben
Ich habe SwiftGodot ausprobiert, und Swift für Spieleentwicklung zu verwenden ist interessanter als die GC-Latenz von C#
Dass man schrittweise migrieren kann, ist sehr gut
Die Swift-Sprache ist zu einem Monster geworden
Es scheint, dass es für Entwickler keine kleine Hürde ist, dass man, um mit der großartigen Sprache Swift zu beginnen, praktisch gezwungen ist, das recht teure Apple-Ökosystem einzuführen.