Swift: le sujet officiel fourre-tout

1356710

Réponses

  • Pas de pommedev, alors ? * sanglote *
  • Un truc qui a l'air bien c'est Playground, il me tarde de l'essayer. Du temps de Xcode 3 il y avait "Fix and Continue" et on était assez nombreux à  avoir signalé sa disparition dans BugReporter, j'espère que ce "Playground" permettra la même chose : modifier son code en train de tourner et voir le résultat sans avoir à  quitter le debbug, recompiler et revenir là  où on en était.


    Sinon, apprendre un nouveau langage c'est toujours le même mélange de travail de mémorisation et de plaisir de la découverte, je suppose. Plus l'amertume des heures passées à  apprendre le coriace Objective-C pour finalement le laisser tomber pour un plus sexy.


    La volonté de Apple de proposer un nouvel OS (et un nouvel environnement de programmation) tous les ans me semble parfois un peu fatigante : on vient à  peine de s'habituer que déjà  il faut passer à  autre chose.. 


  • muqaddarmuqaddar Administrateur


    La volonté de Apple de proposer un nouvel OS (et un nouvel environnement de programmation) tous les ans me semble parfois un peu fatigante : on vient à  peine de s'habituer que déjà  il faut passer à  autre chose.. 




     


    Oui, c'est très dur d'apprendre les nouvelles API et de continuer ses propres développements pour essayer d'en vivre.

  • Pour un non connaisseur des différentes qualités des langages, je trouve le fait que Swift ait été créé par Chris Lattner, auteur du compilateur LLVM, assez rassurant.


     


    Dans la fin des années 80 et début 90, Apple faisait de la recherche pour son futur mais ne se souciait pas tant de la modernité technologique... et ça a donné le drame "Copland", le projet qui devait enfin apporter la modernité au système (multithreading, etc.) était lancé trop tard, Apple était coincé.


    Côté langages, l'Objective-C a bien évolué mais certaines petites voix (John Siracusa le premier) posent depuis quelques années la question du futur, par rapport à  différentes avancées dans le domaine qu'Apple ne pourra pas éviter d'offrir éternellement.


     


    Alors c'est sur que ça fait un peu peur mais au moins Swift a des arguments convaincants, en plus des fonctionnalités de langage dont on ne voit pas forcément immédiatement l'intérêt : 


    • performances (on imagine que certains futurs frameworks seront principalement dédié à  Swift à  l'avenir)
    • nouvelles possibilités dans les outils de travail (playground, autres effets de la meilleure analyse du code par le compilateur?)
  • Intéressant, je trouve, cette vidéo que j'ai découverte en lisant quelques blogs en anglais 


    Interressant ce Monsieur Bret Victor que je ne connaissais pas et dont j'apprends qu'il a travaillé 4 ans chez Apple. 


    Si Swift finit par ressembler à  ça ça me va :D


  • AliGatorAliGator Membre, Modérateur
    Live Rendering de nos custom classes dans InterfaceBuilder avec @IBDesignable, et surtout... exposition de propriétés d'une classe graphique (comme une propriété de type UIColor ou CGFloat) avec @IBInspectable, ça c'est trop cool, faut que je teste ça rapidement !

    Depuis le temps que je dis que les IBOutlet c'est bien, mais qu'avoir aussi un truc genre IBProperty pour régler des propriétés directement depuis IB ça serait top... voilà  que c'est enfin possible !
  • AlakAlak Membre

    Je me suis dit la même chose Ali, la fin du State of union m'a fait rêver :)


  • zoczoc Membre
    juin 2014 modifié #69


    Mais de là  à  sortir un nouveau langage plutôt que de faire une grosse évolution d'ObjC, je suis pas sûr que c'était vraiment utile et la bonne solution... Ils ont déjà  fait évoluer ObjC par le passé, pour plein de nouveautés comme la synthèse auto des @property, le rajout des @optional dans les @protocol, ARC, etc... donc pourquoi ne pas avoir continué dans cette voie ?




     


    C'est simple. La disparition des pointeurs (puisque c'est également une grosse différence entre Obj-C et Swift) ouvre la porte à  tout un tas d'optimisations quasiment impossible à  mettre en oeuvre tant que le développeur peut bidouiller avec des pointeurs.


     


    Le compilateur Swift est notamment capable de courcircuiter toute la machinerie d'envoi de messages (objc_msgSend) lorsqu'il est certain du type de l'objet et de la remplacer par un simple appel de fonction dans le meilleur des cas, ou avec un système équivalent aux vtables de C++. Ca explique partiellement le gain de perfs décrit lors de la Keynote (surtout sur des algos mathématiques constitués de boucles qui appellent des fonctions).


     


    Par contre, du coup, adieu le swizzling de méthodes, qui n'a pas d'équivalent en Swift (et je pense que ça arrange bien Apple qu'on ne puisse plus remplacer leur code par le notre)...


     


     


    Bon, sinon, sur la mailing-list xcode-dev, Chris Lattner a bien précisé que Apple n'avait aucun plan pour mettre fin à  Objective-C.


  • Plus de pointeurs ! * hurle de joie *


  • Plus de pointeurs ! * hurle de joie *




    Attends de t'y frotter :D


    Nan, sinon playground c'est marrant, ça porte bien son nom :) Et puis il y a plein d'autres trucs simpa, les tuples, les autodéclarations, les switch sur autre chose que des entiers, un println qui commence pas par raconter sa vie, les variables dans les chaines, etc, etc, tant d'autres à  expérimenter avant de pouvoir vraiment les utiliser ...

  • SmySmy Membre


    Plus de pointeurs ! * hurle de joie *




     


    Hurle de tristesse...

  • AliGatorAliGator Membre, Modérateur

    Hurle de tristesse...

    Quand tu vas découvrir la puissance de swift (les optionals, l'optional chaining, etc) tu vas voir que c'est encore + puissant et mieux ainsi.

    Moi les pointeurs ne m'ont jamais dérangé, ça fait un bail que je fais de la programmation et j'ai fait du C & co donc les pointeurs je pratique depuis un bail, bah pourtant je trouve ça mieux dans swift sans.
  • SmySmy Membre


    Quand tu vas découvrir la puissance de swift (les optionals, l'optional chaining, etc) tu vas voir que c'est encore + puissant et mieux ainsi.




     


    Après visualisation de la keynote d'ouverture et une lecture en diagonale de certains éléments, j'aime bien Playground (forcément) et les retours multiples de fonctions.

     

    Il va falloir que je remplace mon MBA 11" par au minimum un MBP 13" retina pour Playground :)
  • Pas de variable dans les extensions (aka category), je trouve ça dommage. Même si apparemment on peut encore utiliser objc_setAssociatedObject.


  • Pour ceux qui n'ont pas vu "Platform state of the union", à  côté de playground et REPL, il y a également la possibilité de modifier les exemples de la doc en live.




  • Pour ceux qui n'ont pas vu "Platform state of the union", à  côté de playground et REPL, il y a également la possibilité de modifier les exemples de la doc en live.




    Le coup de la doc qu'on peut modifier c'est sympa je trouve.


     


    J'ai essayé Swift et je commence vraiment a aimer. Les Playground c'est sympa pour taper des petits bouts de codes. Swift sans pointeurs, c'est quand même pas mal. J'aime beaucoup les multiple return qui facilitent pas mal la vie. Et puis c'est rapide, on a une syntaxe claire. Bref j'aime bien. Je pense que je vais traduire mes apps en Swift. Qui compte le faire ici ?

  • muqaddarmuqaddar Administrateur


    Je pense que je vais traduire mes apps en Swift. Qui compte le faire ici ?




     


    Moi, mais ça va être lonnnng.... Je pense commencer par les classes modèles, ça me paraà®t plus logique (et le + simple p-e).

  • SmySmy Membre


    Je pense que je vais traduire mes apps en Swift. Qui compte le faire ici ?




     


    Traduire non, mais en faire une nouvelle, pourquoi pas...

  • muqaddarmuqaddar Administrateur

    Je lis pas mal d'articles en anglais sur Swift et c'est incroyable comme les développeurs sont déchaà®nés. On lit tout et son contraire et j'ai l'impression que 50% aime et que 50% n'aime pas.


  • Les informaticiens sont des gens très conservateurs. Un taux de satisfaction de 50% est un succès colossal ! Un ami me disais même il y a 2 jours qu'il trouve le langage très sympathique et intéressant, (c'est un dev Android java et c, farouche militant anti-Apple).
  • muqaddarmuqaddar Administrateur
    juin 2014 modifié #82

    Moi je trouve la syntaxe discutable, comme par exemple, mettre le type du retour d'une fonction à  la fin de la première ligne avec (->) plutôt qu'un début... 




  • Moi je trouve la syntaxe discutable, comme par exemple, mettre le type du retour d'une fonction à  la fin de la première ligne avec (->) plutôt qu'un début... 




    J'avoue que ça m'a fait bizarre au début mais au final je trouve quand même ça plus logique. Le variables d'entrées au début et les variables de "sorties" à  la fin. Comme en maths.

  • muqaddarmuqaddar Administrateur


    J'avoue que ça m'a fait bizarre au début mais au final je trouve quand même ça plus logique. Le variables d'entrées au début et les variables de "sorties" à  la fin. Comme en maths.




     


    Ok, mais la syntaxe "->" est discutable...

  • Oui comme les "..." dans une boucle par exemple :



    for nombre in 1...5 {
    println(nombre)
    }

    C'est un peu bizarre aussi.


  • 4 ? Strange !
  • muqaddarmuqaddar Administrateur


    Oui comme les "..." dans une boucle par exemple :



    for nombre in 1...5 {
    println(nombre)
    }

    C'est un peu bizarre aussi.




     


    ça me choque moins, c'est pratique et logique (je connaissais en ruby)

  • Ha ok. Je n'ai jamais codé en Ruby. Mais ce sont les seuls trucs qui m'ont fait un peu bizarre pour la syntaxe.


  • zoczoc Membre
    juin 2014 modifié #89


    ça me choque moins, c'est pratique et logique (je connaissais en ruby)




     


    Oui, mais attention, '..' et '...' ont une signification strictement inverse en Ruby et en Swift (en terme d'inclusion de la borne terminale)...


     


    Pour info, la notation '->' pour le résultat des fonctions est aussi utilisé en C++ 0x11 (même si l'ancienne syntaxe reste supportée).

  • Je commence à  peine à  savoir où je m'en vais avec Objective-C (je fais du C# au bureau - les bidules Apple c'est à  temps perdu) et ils viennent larguer cette bombe. Je ne sais pas trop comment accueillir la nouvelle encore.  Est-ce que je laisse faire Objective-C, ou bien si je m'amuse avec les deux. Il n'y a qu'un nombre limité d'heures dans une journée! :)


  • muqaddarmuqaddar Administrateur


    Oui, mais attention, '..' et '...' ont une signification strictement inverse en Ruby et en Swift (en terme d'inclusion de la borne terminale)...




     


    En Ruby, il n'y a que .. si je ne m'abuse, et non ... ?


    Est-ce que les 2 sont en swift ? Ou juste ... ? (je n'ai pas encore lu la doc)

Connectez-vous ou Inscrivez-vous pour répondre.