Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

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

Le , par Bill Fassinou

81PARTAGES

12  0 
Après la sortie de Swift 5.1 en septembre 2019, Apple a publié cette semaine la première version bêta de Swift 5.2. Cette version bêta de Swift 5.2 a été publiée en même temps que la version bêta de Xcode 11.4. Elle comprend une poignée de changements ainsi que des réductions de la taille du code et de l'utilisation de la mémoire. Elle apporte aussi une nouvelle architecture de diagnostic qui vous aidera à diagnostiquer les erreurs plus rapidement.

Swift 5.1 s'appuie sur les points forts de Swift 5. Cette version de Swift a étendu les fonctionnalités stables du langage pour compiler le temps avec l'introduction de la stabilité des modules. Depuis Swift 5.1, il est possible de créer et de partager des frameworks binaires qui peuvent fonctionner avec les futures versions de Swift. La version 5.1 du langage a aussi apporté des fonctionnalités telles que les enveloppes de propriétés, les types de résultats opaques, la recherche de membres de chemins clés, de nouvelles API pour String, etc.


Les nouvelles fonctionnalités de Swift 5.1 ont facilité la conception de meilleures API et bien d’autres choses. La version 5.2 de Swift étend à son tour les fonctionnalités de la précédente version. Jetons un coup d’oeil ci-dessous aux nouveautés de Swift 5.2.

Swift 5.2 introduit des valeurs appelables statiquement dans le langage. En fait, les valeurs appelables sont des valeurs qui définissent un comportement de type fonctionnel et peuvent être appelées en utilisant la syntaxe d'appel de fonction. Elles sont différentes des valeurs appelables dynamiquement. Cette fonctionnalité prend en charge les arités déclarées statiquement, les étiquettes d'arguments et les types de paramètres, et n'est pas limitée aux déclarations de type primaire. Elle apporte plus de flexibilité aux développeurs.

Cette fonctionnalité vous permet désormais de directement appeler une valeur si son type implémente une méthode appelée callAsFunction(). Swift adapte de manière automatique vos sites d'appel en fonction de la définition de callAsFunction(). Par exemple, vous pouvez ajouter autant de paramètres que vous le souhaitez, vous pouvez contrôler la valeur de retour, et vous pouvez même marquer les méthodes comme étant muettes (mutating) si nécessaire. Pour une utilisation plus avancée, callAsFunction() supporte à la fois throws et rethrows, et vous pouvez même définir plusieurs méthodes callAsFunction() sur un seul type. Swift choisira la bonne en fonction du site d'appel, tout comme une surcharge normale.

En ajoutant des indices personnalisés à un type de votre code, vous pouvez désormais utiliser des arguments par défaut pour n'importe lequel des paramètres. Par exemple, en présence d’une structure PoliceForce qui a un indice personnalisé pour lire les officiers de la force, vous pourriez ajouter un paramètre par défaut à renvoyer si quelqu'un essaie de lire un index en dehors des limites du tableau. Notez que vous devez écrire vos étiquettes de paramètres deux fois si vous voulez qu'elles soient utilisées, car les indices n'utilisent pas d'étiquettes de paramètres autrement.

Swift 5.2 a introduit une nouvelle architecture de diagnostic qui vise à améliorer la qualité et la précision des messages d'erreur émis par Xcode lorsque vous faites une erreur de codage. C’est particulièrement évident lorsque l'on travaille avec du code SwiftUI, où Swift produirait souvent des messages d'erreur faussement positifs.

Les développeurs de Swift ont introduit dans le langage une fonction qui permet d'utiliser des raccourcis clavier dans certaines circonstances spécifiques. Vous avez la possibilité d'utiliser “\Root.value” partout où les fonctions “(Root)->Value” sont autorisées.

Source : Swift

Et vous ?

Que pensez-vous des nouveautés dans Swift 5.2 ?

Voir aussi

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

Swift 4.0 : la nouvelle version du langage de programmation d'Apple est disponible avec deux modes de langage pour assurer une migration en douceur

Programmation : Python gagne de plus en plus en popularité et Swift fait à nouveau son entrée dans le top 10 de l'index TIOBE d'octobre 2018

Une erreur dans cette actualité ? Signalez-le nous !

Avatar de sergio_is_back
Membre expert https://www.developpez.com
Le 07/02/2020 à 16:08
Citation Envoyé par Quentincestino Voir le message
Bon sinon c'est quand que Swift sera dispo officiellement sur d'autres plateformes que MacOS ?
A croire que Apple refuse que son langage (qui est excellent) se développe et devienne potentiellement quelque chose d'ultra répandu
Apple a toujours voulu faire des exclusivités à son matos et à chaque fois les gens paient les frais (exemple: Lightning), il serait peut-être temps qu'ils arrêtent leurs conneries
Apparemment c'est déjà le cas (source Wikipédia) :
Le projet de développement de Swift est géré par Apple qui en est également le principal contributeur mais de nombreux membres de la communauté Swift ainsi que d'autres acteurs tels que Google et IBM participent activement à son développement. Swift est officiellement supporté sur les systèmes d'exploitation Linux Ubuntu, iOS, macOS, watchOS et tvOS. Un support non officiel (géré par la communauté) existe sur d'autres plateformes Linux telles que Debian et Fedora.
Sous Linux c'est supporté mais pas sous Windows....
Après je ne m’intéresse plus guère au monde Apple depuis que j'ai remisé mon Apple II+ au grenier, de plus c'est pas très utilisé dans ma branche...
1  0 
Avatar de Quentincestino
Membre à l'essai https://www.developpez.com
Le 07/02/2020 à 16:22
Citation Envoyé par sergio_is_back Voir le message
Apparemment c'est déjà le cas (source Wikipédia) :

Sous Linux c'est supporté mais pas sous Windows....
Après je ne m’intéresse plus guère au monde Apple depuis que j'ai remisé mon Apple II+ au grenier, de plus c'est pas très utilisé dans ma branche...
Il y a un support non-officiel pour Windows aussi, mais le truc c'est que
1- C'est non-officiel
2- C'est pas foufou

Swift est réellement excellent, surtout à une période où on essaye de remplacer le C dans des milieux où il est omniprésent (comme l'embarqué), notamment via Rust, mais juste Apple doit se sortir les doigts du fion.
1  0 
Avatar de redcurve
Membre éclairé https://www.developpez.com
Le 07/02/2020 à 19:50
Citation Envoyé par sergio_is_back Voir le message
Apparemment c'est déjà le cas (source Wikipédia) :

Sous Linux c'est supporté mais pas sous Windows....
Après je ne m’intéresse plus guère au monde Apple depuis que j'ai remisé mon Apple II+ au grenier, de plus c'est pas très utilisé dans ma branche...
IBM a lâché l'affaire avec Swift y'a deux semaines.
0  0 
Avatar de defZero
Membre confirmé https://www.developpez.com
Le 08/02/2020 à 22:53
Que pensez-vous des nouveautés dans Swift 5.2 ?

Que du plus de version en version, une ABI enfin stable (depuis 5.1 je croit) qui n’oblige plus à linker le runtime en static, du coup des bin plus petit et des MaJ du runtime qui passe crème.

Les seules choses qui me gêne avec Swift sont :
- Temps de compilation vraiment très long (et en comparant à du C++/Rust, c'est dire)
- LLVM/Swift qui n'as jamais (ne sera jamais ?) mainliner dans LLVM/Clang et qui rend l'argument du multiplateforme très bancale à mon avis.

Si ces deux points était corrigés, alors Swift pourrait grandir sur les autres plateformes.
Dans le cas contraire et c'est ce que je sens poindre à l'horizon, étant donner le comportement d'IBM, alors le langage n'ira pas beaucoup plus loin que l'Objective-C en dehors de chez Apple.
C'est dommage, mais venant d'Apple, c'est une habitude élevé au rang de modèle économique.
0  0 
Avatar de Quentincestino
Membre à l'essai https://www.developpez.com
Le 07/02/2020 à 15:38
Bon sinon c'est quand que Swift sera dispo officiellement sur d'autres plateformes que MacOS ?
A croire que Apple refuse que son langage (qui est excellent) se développe et devienne potentiellement quelque chose d'ultra répandu
Apple a toujours voulu faire des exclusivités à son matos et à chaque fois les gens paient les frais (exemple: Lightning), il serait peut-être temps qu'ils arrêtent leurs conneries
0  1