- Cette version étend Swift à davantage de plateformes et de domaines
- Swift est bien connu comme langage de développement d’applications, mais il est aussi excellent pour les bibliothèques, les services à l’échelle d’Internet, le code critique pour les performances, et bien d’autres usages
- Swift 6 va plus loin grâce à de nouvelles fonctionnalités de programmation bas niveau, un sous-ensemble du langage pour l’embarqué, une prise en charge étendue de Linux et Windows, de nouvelles API cross-platform, etc.
Langage et bibliothèque standard
Concurrence
- Swift 6 apporte, via un nouveau mode du langage, des garanties de sécurité pour empêcher les data races dans le code concurrent.
- Le flag compilateur
-strict-concurrency=complete fournit des avertissements de sécurité contre les data races.
- Une nouvelle bibliothèque de synchronisation inclut des API de concurrence bas niveau.
Typed throws
- Il est désormais possible d’indiquer dans la signature le type d’erreur qu’une fonction peut lever.
- C’est utile pour transmettre le type d’erreur dans du code générique ou dans des environnements à allocation mémoire limitée.
Ownership
- Les types non copiables introduits dans Swift 5.9 sont intégrés au système générique afin d’améliorer les performances.
- La syntaxe
~Copyable permet de modéliser les ressources et d’optimiser les performances.
Interopérabilité C++
- Swift 6 prend en charge les types move-only de C++, les méthodes virtuelles, les arguments par défaut, etc.
- L’annotation
SWIFT_NONCOPYABLE permet d’exposer des types C++ comme types non copiables.
Swift embarqué
- Inclut un sous-ensemble du langage et un mode de compilation pour le développement logiciel embarqué.
- Prend en charge les cibles bare metal ARM et RISC-V.
Entiers 128 bits
- Ajoute des types entiers 128 bits signés et non signés.
Gains de productivité
- Introduit plusieurs améliorations de productivité, comme
count(where:).
Débogage
Résumés LLDB personnalisés avec @DebugDescription
- La macro
@DebugDescription permet de personnaliser la manière dont les objets sont affichés dans LLDB.
Amélioration des performances au démarrage grâce aux modules explicites
- L’utilisation de builds avec modules explicites améliore fortement les performances de démarrage du débogueur.
Bibliothèques
Foundation
- Unifie l’implémentation de Foundation sur toutes les plateformes.
- Étend à Linux et Windows l’implémentation Swift utilisée sur macOS et iOS.
Swift Testing
- Introduit une nouvelle bibliothèque de test appelée Swift Testing.
- Utilise des macros pour aider à écrire et organiser les tests.
Prise en charge des plateformes
SDK entièrement statique pour Linux
- Il est possible de construire des exécutables Linux avec liaison entièrement statique.
Nouvelles distributions Linux
- Ajoute la prise en charge officielle de Debian, Fedora et Ubuntu 24.04.
Performances de build sur Windows
- Fournit des toolchains précompilées pour l’architecture arm64.
- Le gestionnaire de paquets Swift parallélise désormais les builds par défaut sur Windows.
Prochaines étapes
Télécharger Swift 6
- Il est possible d’installer la toolchain officielle Swift 6 sur Swift.org/install.
Bien démarrer avec Swift
- Le livre The Swift Programming Language a été mis à jour pour refléter la syntaxe et les fonctionnalités les plus récentes de Swift 6.
Explorer l’écosystème de paquets
- Il est possible d’explorer divers paquets sur Swift.org/packages.
Participer
- En partageant vos retours et votre expérience avec Swift 6, vous pouvez contribuer aux évolutions futures du langage, des outils, de l’écosystème de paquets et de la communauté.
Le résumé de GN⁺
- Swift 6 est une version majeure qui étend Swift à de nombreuses plateformes et à de nombreux domaines.
- Elle inclut plusieurs nouveautés, notamment en concurrence, en interopérabilité C++ et avec Swift embarqué.
- Elle introduit de nouvelles bibliothèques comme Swift Testing ainsi que des améliorations de productivité.
- Elle étend la prise en charge de Linux et Windows tout en améliorant les performances.
- Swift 6 offre aux développeurs davantage de possibilités et d’efficacité.
2 commentaires
Avis sur Hacker News
Swift est en train de mourir lentement à cause de conflits inhérents à sa gouvernance
J’apprends Swift depuis peu et, jusqu’ici, je trouve ça correct
Avec la concurrence sûre et les
throwstypés, Swift commence à ressembler à un Rust plus accessibleSwift 6 représente un grand bond en avant pour le développement cross-platform batteries included
J’ai récemment commencé à apprendre Swift et SwiftUI, et j’ai été surpris par la complexité du langage
@observableObjectJe pensais que Swift resterait cantonné à macOS, mais c’est très intéressant
sigtermne fonctionnent pasSwift doit décider ce qu’il veut être et s’y tenir
J’ai essayé SwiftGodot, et utiliser Swift pour le développement de jeux me paraît plus intéressant que les pauses du GC de C#
Le fait de pouvoir migrer progressivement est très appréciable
Le langage Swift est devenu un monstre
Il semble que le fait de devoir adopter l’écosystème Apple, plutôt coûteux, pour se lancer avec ce formidable langage qu’est Swift constitue une barrière non négligeable pour les développeurs.