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

    Swift 5.2 est disponible avec une nouvelle architecture de diagnostic
    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

    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
    Contribuez au club : Corrections, suggestions, critiques, ... : Contactez le service news et Rédigez des actualités

  2. #2
    Membre à l'essai
    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

  3. #3
    Membre expert
    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...

  4. #4
    Membre à l'essai
    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.

  5. #5
    Membre éclairé
    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.

  6. #6
    Membre extrêmement actif
    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.