1 pièce(s) jointe(s)
Prendre en charge le langage de programmation Swift sur Windows
Swift 5.3 sera officiellement disponible et pris en charge sur Windows,
ainsi que sur d’autres distributions Linux
Alors que Swift 5.2 venait de sortir officiellement il y a une semaine, et que la feuille de route du développement de Swift 6 a été récemment présentée, un article publié sur le blog officiel dédié au langage de programmation d’Apple révèle que Swift 5.3 est en cours de développement.
La version 5.3 va inclure des améliorations en termes de performances et de qualité. La nouveauté la plus marquante est que « cette version augmentera le nombre de plateformes sur lesquelles Swift est disponible et pris en charge, notamment en ajoutant la prise en charge de Windows et de distributions Linux supplémentaires (à part Ubuntu) », d’après le billet de blog.
Il est toutefois à noter qu’il existe déjà un support non officiel pour Windows, Debian et Fedora, depuis qu’Apple a annoncé en 2015 que Swift est offert en code source ouvert. « Maintenant que le code source de Swift est ouvert, toute la communauté de développeurs peut contribuer au langage de programmation et à sa diffusion sur de nouvelles plateformes (…) ils pourront développer leurs idées partout, que ce soit sur un appareil mobile ou dans le Cloud », avait alors déclaré Craig Federighi, vice-président principal de la division Software Engineering d’Apple.
Bien que la date de sortie de Swift 5.3 n’a pas encore été dévoilée, il est fort probable qu’Apple pourrait sortir une version bêta lors de l’Apple Worldwide Developers Conference (WWDC), prévue en juin 2020.
Source : Swift
Et vous ?
:fleche: Que pensez-vous de cette annonce ?
Voir aussi :
:fleche: Swift 5.2 est disponible avec une nouvelle architecture de diagnostic, qui vise à améliorer la qualité et la précision des messages d'erreur
:fleche: En route vers Swift 6 : l'équipe en charge du développement de Swift dévoile la nouvelle feuille de route du projet
:fleche: Swift est maintenant open source, le code source du langage de programmation d'Apple est disponible sur GitHub
:fleche: Un développeur parvient à faire fonctionner du code Swift sur Android, en attendant la sortie de Swift sous licence open source
:fleche: Bientôt le portage de Swift sur Android ? Un contributeur présente « le premier exemple d'une compilation croisée à l'extérieur de Darwin »
Swift 5.3 est disponible avec de meilleures performances et axée sur une meilleure productivité
Swift 5.3 est disponible avec de meilleures performances et axée sur une meilleure productivité
et améliore l'ergonomie de l'écriture du code Swift
Lors de la publication de la feuille de route de Swift 5.3, Apple annonçait que cette version va inclure des améliorations en termes de performances et de qualité. « Cette future version augmentera le nombre de plateformes sur lesquelles Swift est disponible et supporté, notamment en ajoutant la prise en charge de Windows et de distributions Linux supplémentaires (à part Ubuntu) », avait-il dit. Swift 5.3 est sortie mercredi et Apple confirme que la nouvelle mouture du langage intègre de profondes améliorations de performances et est effectivement axée sur la productivité.
« Swift 5.3 continue de se concentrer sur le perfectionnement du langage, l'expérience des développeurs et l'expansion de l'écosystème Swift pour offrir plus d'opportunités d'écrire Swift », a déclaré Apple en prélude à la présentation des différentes améliorations apportées dans Swift 5.3. Swift 5.3 est disponible pour les développeurs sur le site Web Swift ou encore avec la dernière version de l'environnement de développement intégré de l’entreprise, Xcode 12 GM, qui comprend également les SDK pour iOS 14, iPadOS 14, tvOS 14, watchOS 7 et macOS “Big Sur”.
Apple a annoncé la sortie de Swift 5.3 en mars, peu après la sortie de Swift 5.2. Depuis 2015, il développe le langage en libre accès, ce qui permet aux développeurs Swift de suggérer de nouvelles fonctionnalités par le biais de propositions qu'Apple pourrait adopter. Voici les fonctionnalités les plus marquantes de la version 5.3 du langage.
Nouvelles fonctionnalités et améliorations de la bibliothèque standard
Apple indique que Swift 5.3 intègre beaucoup d’améliorations linguistiques qui améliorent l'ergonomie de l'écriture du code Swift. En plus, ces mises à jour sont à même de vous aider à être un développeur Swift plus productif en réduisant le nombre d'instructions et de codes redondants, et en vous permettant de définir plus de fonctionnalités dans les bibliothèques que vous pouvez utiliser. Swift 5.3 a mis en œuvre les propositions suivantes issues du processus d'évolution de Swift :
- l'ajout d’un initialisateur de chaîne de caractères avec accès à un stockage non initialisé ;
- la synthèse de la conformité “Comparable” pour les types enums ;
- les clauses where sur les déclarations génériques contextuelles ;
- le peaufinement de la sémantique de didSet ;
- l'accroissement de la disponibilité du self implicite dans les fermetures @escaping lorsque les cycles de référence sont peu susceptibles de se produire ;
- les clauses de capture à motifs multiples ;
- Float16;
- clarifier le modèle de cohérence de la mémoire Swift ;
- faciliter la transition vers des chaînes de fichiers magiques et concises ;
- appariement par anticipation des fermetures successives.
Swift 5.3 est aussi livrée avec des correctifs pour plusieurs limitations du compilateur communément signalées :
- les références non appliquées aux exigences des protocoles sont désormais prises en charge ;
- les propriétés paresseuses peuvent définir les accesseurs didSet et willSet ;
- les classes génériques peuvent utiliser des implémentations par défaut des exigences de protocole lorsqu'elles se conforment à des protocoles de types associés.
Amélioration des performances d'exécution
Swift 5.3 améliore considérablement la taille du code binaire et l'utilisation de la mémoire d'exécution. Les mesures de ces améliorations ont donné des résultats intéressants dans le cadre de divers projets. En commençant par Swift 4, l'équipe Swift a mesuré la taille du code binaire d'une réécriture Swift d'une application UIKit (développé avec Objective-C) qui fonctionne sous iOS. Dans Swift 4, la taille du code était environ 2,3 fois plus grande que celle de la version Objective-C. Dans Swift 5.3, la taille du code est inférieure à 1,5 fois la taille de la version Objective-C.
Dans MovieSwiftUI, une application open source SwiftUI, la taille du code logique de l'application est réduite de plus de 40 % par rapport à Swift 5.1. Dans une application de test qui crée un tableau de 400 objets modèles, la mémoire de tas due à la surcharge d'exécution a été réduite pour utiliser moins d'un tiers de la mémoire de tas utilisée dans Swift 5.1. Ces mesures avaient été rapportées dans le discours “What's New in Swift” au cours de la conférence WWDC 2020. Cela dit, les améliorations de la taille binaire varient selon les modes d'utilisation.
L'amélioration la plus importante concerne les projets qui déclarent un grand nombre de types, grâce à la réduction de la taille des “fonctions de valeur”, c’est-à-dire les fonctions invisibles que le compilateur génère pour créer, copier et détruire les types de valeur. Selon l’équipe, ceci est surtout bénéfique pour les applications SwiftUI. De plus, les applications Swift ont maintenant une surcharge de mémoire moins importante au moment de l'exécution. En d’autres termes, le runtime de Swift met en cache moins d'informations au démarrage.
Cela lui permet de suivre des choses comme les conformités de protocole, en raison des améliorations du temps d'exécution qui ont rendu cette mise en cache moins nécessaire. Selon l'équipe, une application écrite en Swift devrait maintenant utiliser moins de mémoire en tas qu'une application identique écrit en Objective-C.
Améliorations apportées à l’expérience des développeurs
Dans un premier temps, les améliorations concernent l'indentation lors de l'édition du code Swift. L'implémentation de l'indentation automatique dans SourceKit a été révisée dans Swift 5.3, corrigeant près de 50 rapports de retour d'information dans le processus. En particulier, l'indentation automatique des cas suivants a été améliorée dans cette version :
- les appels de méthode enchaînés impliquant des fermetures ;
- les arguments d'appel, les paramètres et les éléments de collecte qui couvrent plusieurs lignes ;
- les conditions multilignes if, guard et while.
Dans un second temps, les améliorations se sont alignées autour de l’achèvement du code. Swift 5.3 améliore un peu plus les performances et la qualité de l'achèvement du code grâce aux travaux suivants :
- les invocations répétées de complétion de code à l'intérieur des corps de fonction sont désormais jusqu'à 15 fois plus rapides que celles de Swift 5.2. Ce résultat a été obtenu en réutilisant dans le même fichier une partie des calculs effectués pour les complétions précédentes. Ces accélérations seront visibles à la fois dans Xcode et chez les utilisateurs de SourceKit-LSP ;
- les valeurs appelables des types nominaux définis par l'utilisateur (SE-0253) sont désormais prises en charge dans la complétion du code Swift. La complétion de code affiche la signature appelante après une expression de base suivie d'une parenthèse ouvrante.
Les changements à ce niveau concernent les améliorations apportées aux délais de construction. Swift 5.3 a une nouvelle stratégie sur la manière dont le compilateur traite les déclarations dans le code Swift. Cela donne lieu à plusieurs améliorations concrètes, notamment :
- des temps de compilation incrémentiels plus rapides en évitant la duplication du travail de compilation entre les fichiers sources, et en identifiant plus précisément le code qui n'a pas changé par rapport à la compilation précédente ;
- une meilleure correction, en corrigeant les cas multiples où le comportement du compilateur était sensible à l'ordre de déclaration ou à l'imbrication ;
- une compilation plus rapide du code qui utilise des types avec un grand nombre de propriétés et de fonctions qui sont importés d'une autre bibliothèque.
- Ces améliorations ont été obtenues en étendant l'adoption d'un nouveau framework centralisé dans le compilateur, qui enregistre des informations de dépendance à grain fin, met en cache les résultats de calculs coûteux qui peuvent devoir être répétés et détecte automatiquement les cycles de dépendance dans votre code Swift.
Source : Swift 5.3
Et vous ?
:fleche: Qu'en pensez-vous ?
Voir aussi
:fleche: Swift 5.3 sera officiellement disponible et pris en charge sur Windows, ainsi que sur d'autres distributions Linux
:fleche: Swift 5.2 est disponible avec une nouvelle architecture de diagnostic qui vise à améliorer la qualité et la précision des messages d'erreur
:fleche: En route vers Swift 6 : l'équipe en charge du développement de Swift dévoile la nouvelle feuille de route du projet
2 pièce(s) jointe(s)
Prendre en charge le langage de programmation Swift sur Windows
Prendre en charge le langage de programmation Swift sur Windows,
Grâce au compilateur, la bibliothèque standard et les bibliothèques de base telles que Dispatch
Apple avait promis dans la feuille de route de la version 5.3 de son langage de programmation Swift que cette version allait apporter de profondes améliorations de performances, dont l’ajout de la prise en charge sur Windows. Swift 5.3 est sorti la semaine dernière et Apple a confirmé que la nouvelle mouture du langage intègre effectivement des outils nécessaires pour porter le langage sur Windows, d’après un billet de blog publié sur Swift.org par Saleem Abdulrasool, membre de la Swift Core Team et ingénieur logiciel chez Google Brain.
« Le projet Swift introduit de nouvelles images téléchargeables de la chaîne d'outils Swift pour Windows ! Ces images contiennent les composants de développement nécessaires pour construire et exécuter le code Swift sous Windows », lit-on dans le billet.
Apple a annoncé en 2015 que Swift est offert en code source ouvert. « Maintenant que le code source de Swift est ouvert, toute la communauté de développeurs peut contribuer au langage de programmation et à sa diffusion sur de nouvelles plateformes (…) ils pourront développer leurs idées partout, que ce soit sur un appareil mobile ou dans le Cloud », avait alors déclaré Craig Federighi, vice-président principal de la division Software Engineering d’Apple. Depuis lors, il existe déjà un support non officiel pour Windows, Debian et Fedora.
Mais pour la sortie officielle du portage sur Windows, Abdulrasool a écrit que la Swift Core Team travaille depuis plus d'un an maintenant en collaboration avec la communauté des développeurs de swift.org. L’équipe annonce maintenant que le support de Windows est à un point où les premiers utilisateurs peuvent commencer à utiliser Swift pour construire des expériences réelles sur cette plateforme.
Selon Abdulrasool, prendre en charge Swift sur Windows ne consiste pas simplement à porter le compilateur, mais plutôt à s'assurer que tout l'écosystème est disponible sur la plateforme. « Cela inclut le compilateur, la bibliothèque standard et les bibliothèques de base (Dispatch, Foundation, XCTest). Ces bibliothèques font partie de ce qui permet aux développeurs d'écrire des applications puissantes avec facilité et sans avoir à se soucier de nombreux détails du système sous-jacent », a écrit Abdulrasool.
« Grâce à ces bibliothèques de base et à l'interopérabilité flexible de Swift avec le C, il est possible de développer des applications sur Windows uniquement dans Swift tout en profitant du corpus de bibliothèques existant sur les plateformes Windows », lit-on.
Abdulrasool a publié un exemple d'application, une calculatrice de démonstration, entièrement écrite en Swift :
La calculatrice a été créée en utilisant, d’une part, la chaîne d'outils Swift sur Windows et, d’autre part, une installation de Visual Studio 2019 qui fournit les autres pièces nécessaires sous la forme de CMake, Ninja, et le SDK Windows. Selon le billet, bien que l'application de démonstration soit construite avec CMake, le support du gestionnaire de paquets Swift sous Windows est en cours. Ce qui veut dire qu’il sera bientôt possible d'obtenir la construction de l'application en utilisant "swift build" sans avoir besoin de CMake ou de Ninja.
Applications multiplateformes en Swift
Comme l’a mentionné le billet de blog, les premiers adeptes du langage comme Readdle expérimentent déjà des applications multiplateformes écrites en Swift, ce qui permet d'intégrer facilement de nombreuses bibliothèques Swift existantes à Windows pour prendre en charge leurs applications. Readdle est une société ukrainienne de développement d'applications mobiles.
Alexander Smarus, responsable de l'ingénierie produit dans Spark Team chez Readdle Inc, a partagé l’expérience Swift sur Windows de son équipe avec Abdulrasool :
Nous, à Readdle, avons commencé à expérimenter Swift sur Windows il y a plus d'un an, au deuxième trimestre 2019. À cette époque, nous avions déjà publié Spark pour Android qui utilise Swift pour partager le code de base avec iOS/macOS, et l'opportunité d'étendre à une autre plateforme était vraiment tentante.
Bien que certaines fonctionnalités ne soient pas encore prêtes, Swift sous Windows s'est avéré répondre pleinement à nos besoins. En fait, certaines dépendances C/C++ tierces nous ont donné plus de maux de tête que Swift lui-même. Toute la logique commerciale de Spark se trouve dans un module Core séparé. Un ensemble de modules, en fait, mais nous les appelons "Core". Cela nous permet d'utiliser n'importe quel framework d'interface utilisateur sur la plateforme cible : AppKit sur macOS, UIKit sur iOS, UI Toolkit natif sur Android. En gros, nous avons donc dû porter Spark Core sur Windows. Après que tous les concepts initiaux aient été prouvés, il s'agissait surtout d'un travail de routine au quotidien pour le rendre vivant sur Windows.
Après tout ce temps, l’équipe de Smarus dispose maintenant des éléments suivants : 9 modules Swift (255 739 SLOC, 2 133 fichiers sources) ; 3 modules Swift tiers ; 1 452 tests (alimentés par XCTest) ; l’environnement CI basée sur Windows pour les tests et un système de construction hétérogène, partiellement CMake, partiellement des scripts personnalisés.
Selon Smarus, des modules Swift purs comme CryptoSwift et OAuthSwift ont presque fonctionné dès le départ. L’équipe de Smarus a dû procéder « à un ajustement trivial des importations, exclure quelques références AppKit/UIKit et voilà ! » Un autre défi dont l’équipe de Smarus a dû faire face était de décider comment mettre en œuvre l'interface utilisateur. Elle a fini par opter pour Electron comme interface du futur Spark for Windows, après de longues discussions. Ce qui signifiait que l’équipe devait non seulement pouvoir construire Spark Core sur Windows mais aussi l'utiliser comme un addon chargeable pour Node.js.
L'addon de Node.js en pur Swift ? Cela a semblé étonnamment facile. Swift importe parfaitement les en-têtes N-API. Nous avons toujours besoin de trois lignes de code C plus un petit en-tête C pour définir le point d'entrée de l'addon, mais toute la logique est dans Swift. Grâce à la nature multiplateforme de Node.js, nous avons pu utiliser macOS comme plateforme de développement avec Xcode comme IDE, puis utiliser l'agilité de CMake pour construire le même code sous Windows.
Dès le premier jour, Swift sous Windows a fait un pas de géant en termes de support et de stabilité de la plateforme. Je dirais que si vous envisagez d'étendre la base de code de votre application existante à des plateformes autres que macOS/iOS, vous pouvez absolument le faire avec Swift maintenant, ou du moins bientôt. Si vous maintenez une petite bibliothèque Swift - vous pourriez facilement ajouter le support de Windows déjà !
Selon Saleem Abdulrasool, l'ajout du support de Windows à Swift n’est que le début d'un long voyage. Le support actuel pose le premier jalon où le langage est utilisable. Mais une autre partie encore plus large de l'écosystème comme lldb et le gestionnaire de paquets Swift ont encore besoin de plus de travail pour être aussi complets dans leur support de la plateforme Windows.
L’équipe Swift invite ceux qui souhaitent contribuer à faire avancer Swift sur Windows à publier de nouvelles bibliothèques et de nouveaux paquets pour Swift sur Windows ou à porter des paquets existants sur la nouvelle plateforme. Pour ceux qui souhaitent travailler sur les outils de base, l’équipe demande qu’ils commencent par améliorer le débogueur et le support de Windows dans le gestionnaire de paquets Swift.
Source : Swift.org
Et vous ?
:fleche: Que pensez-vous de la prise en charge de Swift sur Windows ?
:fleche: Allez-vous contribuer à faire prendre en charge Swift sur Windows ?
Voir aussi :
:fleche: Swift 5.3 est disponible avec de meilleures performances et axée sur une meilleure productivité, et améliore l'ergonomie de l'écriture du code Swift
:fleche: En route vers Swift 6 : l'équipe en charge du développement de Swift dévoile la nouvelle feuille de route du projet
:fleche: Swift 5.2 est disponible avec une nouvelle architecture de diagnostic, qui vise à améliorer la qualité et la précision des messages d'erreur
:fleche: Swift 5.3 sera officiellement disponible et pris en charge sur Windows, ainsi que sur d'autres distributions Linux