Bienvenue sur le forum !

Si vous souhaitez rejoindre la communauté, cliquez sur l'un de ces boutons !

Qt 5 : 5.9.1 - Qt Creator : 4.4.0 - Qt Installer : 2.0.3 - JOM : 1.1.2 - Qt Build suite : 1.7.0 - VS Qt 5 : 2.0.0

Nouveau langage SWIFT d'Apple

Avez-vous jeté un coup d'œil au nouveau langage SWIFT d'Apple, si oui vous en pensez quoi ?

Pour les autres, un lien pour voir de quoi il retourne :
http://www.swiftcode.fr

Réponses

  • July 2015 modifié
    Tu viens de m'apprendre son existence. Je suis allé jeter un œil. À première vue, avec le point virgule et les parenthèses pas obligatoires il a l'air un peu moins chiant à écrire que le c++. Attention, ce n'est que l'avis d'un tâcheron C++, pas d'un expert ès langages... ;)
  • July 2015 modifié
    [mode sale réac' activé]
    J'ai regardé 2 minutes, mon jugement est limité mais :
    -Au niveau de la syntaxe, c'est un mélange entre du fonctionnel sans en avoir les avantages, du python tout en étant plus verbeux et du javascript, espérons que ce soit plus performant que ce dernier;
    -Il n'y a effectivement pas de point virgule, il faut donc un autre mécanisme de délimitation des instructions : tout comme en python, il faut respecter les retours à la ligne et l'indentation ? Bref, on gagne 1 point virgule et on chope plein de règles implicites et donc non documentée. Cela implique également qu'il est impossible de faire des "one line" parfois pratiques;
    -C'est encore une fois un langage non typé (au moment de la déclaration des variables), cela a des implications sur la compréhension du code et sa vitesse d'exécution mais encore une fois sur la documentation : avez-vous déjà pleuré devant une doc qui ne précise pas le type attendu (car il y a bien un type mais t'as pas le droit de le savoir !) ? Moi oui, mon psy en a eu marre et s'est reconverti;
    -Les fonctions, elles, sont typées, pourquoi ?! Une fonction et une variable, c'est la même chose, c'est une adresse en RAM (ou en mémoire GPU, je sens les trolls arriver), pourquoi les traiter différemment ? Pour une autre catégorie de trolls, je pars du principe fondé qu'on est sur architecture de Von Neumann;
    -On économise le ';' aussi démoniaque que les pointeurs mais ce n'est pas dérangeant de devoir écrire "func" et "->" à chaque fonction ?;
    -De manière plus générale, arrêtez de faire de nouveaux langages ! L'autre jour, c'était mozilla qui s'y mettait avec rust. Tout ce que ça fait c'est :
    *diviser les communautés
    *réduire la documentation et les retours d'expérience pour une technologie donnée;
    *augmenter le nombre de langages à utiliser pour un seul projet et donc il devient plus difficile de savoir ou est le problème. J'utilise actuellement sur un projet environ 5 technos différentes sans parler de l'électronique, c'est épuisant et chaque techno n'en n'a rien à faire de l'autre;
    *créer des effets de mode. Par comparaison, le XML, c'était cool il y a quelques temps, aujourd'hui, c'est has been, il faut se mettre au JSON pour être in. Si les mecs s'étaient rendus compte juste 2 secondes que le XML ça ajoute un overhead ignoble, ils ne l'aurait pas développé et on aurait pas toutes ces lib qui vont devenir obsolètes. À quand le démodage du JSON ?
    *Un point positif (pour les pirates) : une techno jeune et faiblement maintenue (tout le monde n'a pas 4000€ pour s'acheter un iOS ou a simplement un UNIX-like mieux et libre) est truffée de failles : c'est encore le cas de java, une blague qui a assez durée mais qui a encore les défauts d'un langage jeune;
    -Il n'y a pas de pointeurs, c'est rassurant. C'est aussi une merde sans nom qui premièrement effectue des opérations en O(N) alors qu'elles pourraient être en O(1) par exemple. C'est deuxièmement un des méandres les plus obscures et les moins documentés qui font qu'on ne sait jamais si une copie en profondeur est exécutée ou non. J'ai récemment utilisé une API python dont je tairai le nom (sinon, ils sauront que la bombe dans leur bureau c'était moi) qui vidait un ensemble après le premier parcours en lecture seule. J'ai hésité quelques temps à élever des moutons après avoir vu ça...;
    -Mais pourquoi diable inventer un langage spécifique à une plate-forme ? on gagne 4,7 secondes à économiser les ';' et on passe 5 mois à porter l'application sur une autre plate-forme. Nan, ça doit être moi qui suis nul en math, y'a un truc qui m'échappe... Sans parler des 5 mois que ça prend à une entreprise de former du monde à cette nouvelle techno qui va mourir tel un avorton éclaté sur le carrelage (remplacez la phrase précédente par "une rose fanée" si vous êtes sensibles);
    -Si tous les groupes qui inventaient de nouvelles technos passaient du temps à réfléchir à l'utilisation des technos efficaces (je sais pas, une techno basée sur un langage sain comme le C++, qui propose des fonctions pour faire une interface graphique, qui apporte une gestion multi pate-forme, certes imparfaite), on boufferait beaucoup moins de ressources comme l'électricité à l'utilisation d'un logiciel. Développez écologique, développez Qt.
    -Sur quel IDE fermé et plein de bug ça va tourner ça ? Il y avait jusque récemment un bug sur QtCreator qui empêchait de commenter une ligne, m'en fout, comme c'est un standard ouvert et facilement accessible, j'ai toujours développé sous kate et un coup de "make -j12" ça divise par 8 le temps de compilation sur ma machine. Désolé, c'est vrai que c'est has been la ligne de commande...
    -Je suis en mode pessimiste mais c'est du déjà vu 100 fois : quels systèmes IPC vont être développés et incompatibles avec les autres ? Combien de projets à moitié aboutis pour faire (un peu) communiquer une application avec ce nourisson de langage et combien d'entre eux seront arrêtés 2 ans avant qu'on en ait besoin ?

    Après, vu la mouvance actuelle de l'informatique, ça sert peut-être juste à faire parler d'iOS, le marketing est tout de même bien plus important qu'un système efficace, sinon comment expliquez vous le succès de windows ?

    [mode sale réac' non fermé, zut à la fin]
  • Bien parlé mika.
    Il n'y a effectivement pas de point virgule, il faut donc un autre mécanisme de délimitation des instructions
    Non c'est le point virgule qui délimite. Mais s'il y a 1 seule instruction sur la ligne il n'est pas obligatoire. C++ aurait pu le faire, le choix a été différent. :(

    Le for...in sans parenthèses, j'aime. C'est beau. Ça se lit infiniment mieux que le for du C++.
    var nbDeLignes: Int

    for nbDeLignes in 1...1000 {
    println("\(nbDeLignes). Je dois apprendre mes leçons en cours de Swift.")
    }
    make -j12
    Impressionnant. Combien de processeurs, combien de RAM ???
  • Réaction rapide après ton intéressant argumentaire mika !

    Tu ne râles pas après Qt 5, après tout devoir utiliser cette saloperie de Javascript pour faire l'IHM ?

    Je suis décidément un vieux hasbeen car j'aime les pointeurs et pire gérer moi même la mémoire de mes applis...

    Je vais prendre le temps de te répondre point par point dans un prochain message...
  • PapaJaac said:

    Il n'y a effectivement pas de point virgule, il faut donc un autre mécanisme de délimitation des instructions
    Non c'est le point virgule qui délimite. Mais s'il y a 1 seule instruction sur la ligne il n'est pas obligatoire. C++ aurait pu le faire, le choix a été différent. sad
    C'est une règle implicite (dans le sens où on n'est pas obligé de la connaitre pour programmer) comme je n'aime pas trop mais elle a l'avantage d'être transparente si on ne la connais pas. À la rigueur, je peux le concéder. Personnellement, le point virgule ne me dérange pas. Pareil pour les parenthèses, je préfère sur-parenthéser que compter sur ma propre connaissance des priorités des opérateurs. Dans le cas du for que tu présentes, c'est différent mais justement j'aime bien la syntaxe générique qui fait qu'il y a des parenthèses pour tous les tests. Pour le for in ... c'est le même problème pour moi : dans 99% des cas, c'est beau, on comprend tout de suite ce que ça veut dire mais dans 1% des cas, on veut faire :

    for(int i = 0; i<1000; i+=2)
    for(int i = 0; i<1000; i--)
    for(char* my_pointer = my_array; my_pointer++; my_pointer < my_array_end)
    Et là la notation est beaucoup plus complexe avec une notation non générique. Le python par exemple propose tout un tas de fonctions pour gérer ça, c'est un choix...
    PapaJaac said:

    make -j12
    Impressionnant. Combien de processeurs, combien de RAM ???
    Un simple i7 et 8 Gio de RAM :P mais c'est surtout que la consommation CPU qui s'affiche dan ma barre des tâches indique une utilisation à 100% du CPU par rapport à un maximum de 12-13% avec un make non parallélisé. J'ai lu quelque part qu'un bon nombre de threads pour make, c'est 1,5x le nombre de threads du processeur.
    dergen said:

    Tu ne râles pas après Qt 5, après tout devoir utiliser cette saloperie de Javascript pour faire l'IHM ?
    C'est que je n'ai toujours pas trouvé le courage de m'y mettre :8
    dergen said:

    j'aime les pointeurs et pire gérer moi même la mémoire de mes applis
    Et oui mais ça fait peur... D'nos jours, les jeunes n'utilisent même plus mmap() pour faire un système de fichiers optimisé pour leur application !
  • mika said:
    -Sur quel IDE fermé et plein de bug ça va tourner ça ? Il y avait jusque récemment un bug sur QtCreator qui empêchait de commenter une ligne, m'en fout, comme c'est un standard ouvert et facilement accessible, j'ai toujours développé sous kate et un coup de "make -j12" ça divise par 8 le temps de compilation sur ma machine. Désolé, c'est vrai que c'est has been la ligne de commande...
    Remarque, le fait d'utiliser un IDE ou non, n'interdit pas d'utiliser cette option -j (heureusement).

    Et le bug de QtCreator n'était pas un bug qui empêcher de commenter les lignes (heureusement aussi). C'est un bug qui empêcher de commenter les lignes sur un système spécifique, avec une combinaison de touches spécifiques. Pour la très grande majorité des utilisateurs (dont moi), il n'y avait pas de problème (ce qui explique que le bug est pris autant de temps à être corrigé).
    mika said:

    [quote=dergen]
    j'aime les pointeurs et pire gérer moi même la mémoire de mes applis
    Et oui mais ça fait peur... D'nos jours, les jeunes n'utilisent même plus mmap() pour faire un système de fichiers optimisé pour leur application ![/quote]
    Même des vieux comme moi :)
    Je crois que l'on insiste beaucoup plus maintenant sur la qualité logiciel qu'avant. Et donc sur le choix des "bons" outils, pour chaque utilisation.
    Les pratiques ont évoluées, les outils aussi, les besoins et les contraintes aussi (en particulier la puissance des ordi). Un pointeur nu, c'est une augmentation de la maintenance (débug, évolutivité), pour un gain potentiel de performances. Si les performances réelles (ie celle observées par l'utilisateur final) ne sont pas perceptible, alors c'est une erreur d'utiliser un pointeur nu
  • Pour la très grande majorité des utilisateurs (dont moi), il n'y avait pas de problème (ce qui explique que le bug est pris autant de temps à être corrigé).
    ça te démangeait, hein !
    Ceux pour qui le seul critère de prise en charge d'une anomalie est le nombre d'utilisateurs impactés n'ont visiblement pas beaucoup de notions de qualité logicielle ni de service client. Mais il est vrai que tant que ce n'est pas en vendant leurs logiciels qu'ils gagnent leur vie, ils n'ont aucun intérêt à changer de manières.
  • Bonjour,
    Je pense que c’est une idée géniale d’aider les développeurs et ceux qui travaillent dans le domaine du web. C’est cool de pouvoir créer soit même des applications. Quand une idée nous vient, il ne faut pas laisser aller. Swift est là pour nous aider à réaliser notre imagination. C’est à la fois un peu hésitant pour l’initiative de créer un langage spécifique pour une plateforme. Certains pensent que c’est très difficile mais à travers ce site, vous trouverez que vous aussi, vous pourriez devenir un géni comme celui qui a fait ça.http://swift.developpez.com/cours-tutoriels/ dispose des tutoriels et aussi d’autres programmes pour vous aider à développer en Swift.Que ce soit en développement des applications pour iOS, ou autres, le langage Swift vous serait très familier en peu de temps. Si vous avez des questions la FAQ est disponible à tout moment pour vous répondre. De plus, un amateur peu devenir un professionnel en quelques temps grâce à ce site.

  • Je me trompe peut être mais ce dernier message, on dirait de la pub ?
    Bon sinon swift est quand même proche du C++ : https://blog.michaelckennedy.net/2014/12/08/comparison-of-modern-c-and-apples-swift-programming-language-syntax/
    mais avec une limitation de taille : sa compatibilité limité en plateforme (seulement du apple)
    Donc bye bye.
  • March 2016 modifié
    Bon.
    @emanuella mon ami (e ?), ça ne va pas du tout.
    Tu réactives des sujets épuisés depuis longtemps, tes interventions ne brillent pas par leur pertinence, tu ignores les demandes de présentation, tout cela commence à me peser.
    Par conséquent je veux (note : je ne te demande pas) que ton prochain message soit un post de présentation dans la rubrique adéquate.
    Si tu ne fais pas comme cela nous classerons tes interventions dans la categorie spam et prendrons des mesures pour t'éloigner du forum.
Connectez-vous ou Inscrivez-vous pour répondre.