Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

  1. #1
    Chroniqueur Actualité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 ?

    Que pensez-vous de cette annonce ?

    Voir aussi :

    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
    En route vers Swift 6 : l'équipe en charge du développement de Swift dévoile la nouvelle feuille de route du projet
    Swift est maintenant open source, le code source du langage de programmation d'Apple est disponible sur GitHub
    Un développeur parvient à faire fonctionner du code Swift sur Android, en attendant la sortie de Swift sous licence open source
    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 »
    Contribuez au club : Corrections, suggestions, critiques, ... : Contactez le service news et Rédigez des actualités

  2. #2
    Membre confirmé
    J'espere qu'on pourra developper aussi une gui avec!

  3. #3
    Membre éprouvé
    Plutôt que d'écrire que Swift est offert en code source ouvert, je pense qu'il serait plus exact de préciser que les sources du langage Swift sont disponibles sont disponibles sous la licence open source et libre Apache 2.0 depuis le 3 décember 2015.

  4. #4
    Membre confirmé
    Franchement ça sert à rien ce niveau là. C'est même plus arriver après la bataille. C'est arrivé 3 générations ceux après qui y ont participé. Quand ton langage à la version 5.2 n'est toujours pas officiellement supporté sur Windows c'est que Windows tu n'en a rien à carrer. Mais comme les autres langages (Rust, Go, Kotlin, etc..) n'ont pas eu cette attitude envers Windows il y a pas mal de gens qui ont pu trouvé un langage moderne qui leur convient depuis un moment. Ce qui me fait dire que le nombre de développeurs Swift sous Windows va être excessivement faible.

  5. #5
    Membre extrêmement actif
    @codec_abc : Entièrement d'accord, s'était au lancement qu'Apple aurait dû faire l'effort de pousser le multiplateforme et pas 3-4 ans après.
    Après, dans l'absolue, je ne voit que des avantages à bénéficier d'options de dev communes à plusieurs plateformes.
    Et puis, bénéficier de Swift sur du Linux, compatible glibc, musl, et autres, ce serait franchement pas mal, pas au niveau de Rust, mais pas mal quand même .

    @emilie77 : Pour faire de la GUI, en théorie avec Swift on a l’interopérabilité avec le C donc ça devrait être possible dans tous les cas, mais je doute que Mr Apple nous pondes de son plein grè un SwiftUI multiplateforme pour autre chose que du Apple à voire.

  6. #6
    Chroniqueur Actualités

    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 ?

    Qu'en pensez-vous ?

    Voir aussi

    Swift 5.3 sera officiellement disponible et pris en charge sur Windows, ainsi que sur d'autres distributions Linux

    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

    En route vers Swift 6 : l'équipe en charge du développement de Swift dévoile la nouvelle feuille de route du projet
    Contribuez au club : Corrections, suggestions, critiques, ... : Contactez le service news et Rédigez des actualités

  7. #7
    Chroniqueur Actualité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 ?

    Que pensez-vous de la prise en charge de Swift sur Windows ?
    Allez-vous contribuer à faire prendre en charge Swift sur Windows ?

    Voir aussi :

    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
    En route vers Swift 6 : l'équipe en charge du développement de Swift dévoile la nouvelle feuille de route du projet
    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
    Swift 5.3 sera officiellement disponible et pris en charge sur Windows, ainsi que sur d'autres distributions Linux
    Contribuez au club : Corrections, suggestions, critiques, ... : Contactez le service news et Rédigez des actualités

###raw>template_hook.ano_emploi###