Avec Swift 4.2, Apple se prépare à la stabilisation de l'ABI Swift dans la version 5.0 du langage
Qui est prévue plus tard dans l'année

Le , par Michael Guilloux, Chroniqueur Actualités
Il y a déjà six mois qu'Apple a annoncé la disponibilité de Swift 4.0, la deuxième version majeure de son langage depuis son passage en open source en décembre 2015. Cette version du langage de programmation pour les applications iOS et macOS offre une plus grande robustesse et stabilité, et fournit une compatibilité de code source avec Swift 3. Swift 4.0 a également amélioré la bibliothèque standard et ajouté des fonctionnalités telles que l'archivage et la sérialisation.

Les mises à jour du langage comprenaient une implémentation de String plus rapide et plus facile à utiliser avec un support pour créer, utiliser et gérer des sous-chaines de caractères. Swift 4.0 a par exemple introduit les chaines de caractères littérales multilignes dans le code source Swift ; une fonctionnalité de programmation commune qui, jusque-là, manquait encore au langage d'Apple. On notait par ailleurs l'ajout de la propriété unicodeScalars au type Character et des améliorations pour la création, l'utilisation et la gestion de types Collection, entre autres propositions d’amélioration implémentées dans Swift 4.0. À cela s'ajoutaient aussi de nouvelles fonctionnalités de flux de travail et une API plus complète pour Swift Package Manager.

Rappelons que Swift n'a pas encore de support officiel pour Windows et que seuls Linux et macOS sont pris en charge par Apple. Et pour le développement sur les plateformes Apple, Swift est livré dans Xcode. Bien évidemment, macOS bénéficie également d'un meilleur traitement que Linux en ce qui concerne le support par Swift. Depuis plus d'un mois, Swift 4.1 est disponible en préversion, dans Xcode 9.3, dont la première bêta a été publiée fin janvier. Alors que Swift 4.1 se rapproche de sa sortie officielle, Apple avance également sur le développement de Swift 4.2, la deuxième mise à jour de Swift 4.


Swift 4.2 est axée sur la stabilisation de l'ABI (application binary interface) du langage. Pour information, une ABI ou interface binaire-programme décrit une interface de bas niveau entre les applications et le système d'exploitation, entre une application et une bibliothèque ou entre différentes parties d’une application. Swift 4.2 sera une étape intermédiaire pour atteindre la stabilité de l'ABI dans la version 5.0 du langage qui est prévue pour la fin de l'année. La stabilité ABI permettra une compatibilité binaire entre les applications et les bibliothèques compilées avec différentes versions de Swift.

Swift 4.2 embarquera donc de nombreux changements ABI sous le capot dans le cadre de l'effort de stabilisation de l'ABI Swift ; ce qui fait d'ailleurs que Swift 4.2 n'est pas compatible niveau binaire avec les versions précédentes du langage. Beaucoup de ces changements sont liés à la performance, et d'après l'équipe Swift, il est nécessaire de déployer les changements ABI de manière incrémentielle afin de donner suffisamment de temps aux utilisateurs pour les évaluer avant qu'ils soient inclus dans l'ABI finale. Swift 4.2 viendra également avec de nombreuses corrections de bogues, ainsi que des améliorations ciblées sur les performances de compilation.

Si Swift 4.2 n'est pas compatible niveau binaire avec les versions précédentes du langage, la compatibilité de code source devrait quant à elle être assurée. Comme avec Swift 4.1, la grande majorité des sources construites avec le compilateur Swift 4.0 (y compris celles qui utilisent le mode de compatibilité Swift 3) devraient compiler avec le compilateur de Swift 4.2. Il y aura bien sûr des cas exceptionnels où cela ne pourra pas être une garantie absolue, mais il est prévu que la plupart des projets continuent à compiler sans changement de source. À partir du 20 avril, la branche master de Swift 4.2 n'acceptera que quelques corrections critiques sélectionnées. Sa disponibilité pourrait donc être envisagée après cette date.

Par ailleurs, il est important de souligner que version après version, Swift gagne du terrain parmi les développeurs iOS et macOS et semble désormais aussi, voire, plus populaire qu'Objective-C au sens de RedMonk. Publiant son classement des langages populaires au premier trimestre 2018, le cabinet d'analyse RedMonk a en effet fait remarquer, pour la première fois, Swift a pu rattraper Objective-C dans son classement. « Même si Swift a évolué à un rythme incroyable, l'historique d'Objective-C l'a maintenu devant son remplaçant. Finalement, cependant, les trajectoires ont dû se croiser, ce trimestre est le premier où cela s'est produit », a expliqué RedMonk la semaine dernière. « Dans un monde où il est incroyablement difficile de se classer dans le Top 25 des langages de programmation, sans parler du Top 10, Swift a géré la tâche en moins de quatre ans. Il reste un phénomène de croissance, même si sa capacité à pénétrer le serveur n'a pas répondu aux attentes, » a-t-il ajouté.

Source : Blog Swift

Et vous ?

Avez-vous déjà utilisé le langage d’Apple ? Quelles versions et quelles ont été vos impressions ?
Qu'attendez-vous d'Apple et son langage Swift ?


Vous avez aimé cette actualité ? Alors partagez-la avec vos amis en cliquant sur les boutons ci-dessous :


 Poster une réponse

Avatar de Michael Guilloux Michael Guilloux - Chroniqueur Actualités https://www.developpez.com
le 30/03/2018 à 14:51
Apple annonce la sortie officielle de Swift 4.1 pour macOS et Linux
avec des mises à jour pour le compilateur et des progrès significatifs pour la stabilisation de l'ABI

Après une préversion livrée dans la bêta de Xcode 9.3 fin janvier, la version stable de Swift 4.1 est officiellement disponible pour toutes les plateformes prises en charge. Dans cette version mineure, Apple apporte des améliorations à son langage de programmation comme expliqué ici. Swift 4.1 introduit également de nouvelles options de compilation.

Pour aller un peu plus dans les détails, en ce qui concerne les mises à jour du compilateur, on peut noter que Swift 4.1 permet de mieux configurer vos builds, avec par exemple un nouveau mode d'optimisation de la taille du code. Cette version permet aussi de tester s'il est possible d'importer un module sur une plateforme avec la fonction canImport(). Son argument est donc le nom d'un module qui peut ne pas être présent sur toutes les plateformes. Si le module est présent, la fonction renvoie true ; sinon, elle renvoie false. Swift 4.1 offre également des moyens plus simples de spécifier l'environnement cible, avec par exemple la condition de plateforme targetEnvironment(simulator) qui renvoie true lorsque le code est compilé pour un simulateur ; sinon, elle renvoie false.

Il y a aussi quelques améliorations pour le gestionnaire de paquets Swift dans cette nouvelle version du langage d'Apple. Swift Package Manager résout désormais correctement les dépendances dans les graphes de packages qui utilisent différents schémas d'URL, tels que ssh et http. Les performances ont également été significativement améliorées pour les graphes de packages qui ont des dépendances partagées.

En outre, des progrès significatifs ont été réalisés dans le cadre de la stabilisation de l'ABI (application binary interface) du langage. Pour information, une ABI ou interface binaire-programme décrit une interface de bas niveau entre les applications et le système d'exploitation, entre une application et une bibliothèque ou entre différentes parties d’une application. La stabilité ABI permettra donc une compatibilité binaire entre les applications et les bibliothèques compilées avec différentes versions de Swift.


Swift 4.1 est disponible pour macOS et Linux. Les binaires officiels de Swift 4.1 pour Linux (Ubuntu 14.04, Ubuntu 16.04 et Ubuntu 16.10) sont disponibles en téléchargement sur le site officiel. Pour le développement sur les plateformes d'Apple, Swift 4.1 est inclus dans Xcode 9.3.

Cette nouvelle version est compatible niveau source avec Swift 4.0. Pour vous aider à migrer à Swift 4.1 depuis les versions précédentes de Swift, Xcode 9.3 d'Apple contient un outil de migration de code qui peut gérer automatiquement la plupart des modifications de source nécessaires. Il y a aussi un guide de migration pour vous aider pour les changements qui ne peuvent pas être gérés automatiquement.

Source : Blog Swift

Et vous ?

Avez-vous déjà utilisé le langage d’Apple ? Quelles versions et quelles ont été vos impressions ?
Que pensez-vous de cette mise à jour ?
Qu'attendez-vous d'Apple et son langage Swift ?
Contacter le responsable de la rubrique Accueil