Partage
  • Partager sur Facebook
  • Partager sur Twitter

Que pensez vous du JS

et de son futur

    23 mars 2014 à 15:53:44

    Personnellement je suis prêt à oublier toutes les bizareries et le manque de rigueur de JS pour la simplicité d'utilisation qu'il procure. Exemple très simple : avec la bibli THREE.js, en 100 lignes de code on a une scène 3D avec des objets très facilement manipulable, dans une page web. Alors franchement, quand on me dit que JS c'est le mal parce que 'false' == false renvoie faux, je me dit que je m'en tape complètement. Pour peu qu'on ai un peu de rigueur, le Javascript est pas plus mal que n'importe quelle autre langage.

    iGwann a écrit:

    • Je ne sais pas pourquoi tu parles de « caractères » (en particulier dans ton explication de false == 'false').

    Bah généralement ce qui est entre ' ' est un caractère ou une chaine de caractère. Donc '0' == '' qui renvoie faux, ça me parait normal. Il suffit de regarder la table ASCII pour voir que ce n'est pas vrai. Idem pour 'false' == false. En plus ça n'a aucun sens de comparer une chaine avec false.

    Sinon, où est passé le vrai Gwenn ?

    • Partager sur Facebook
    • Partager sur Twitter
      23 mars 2014 à 16:09:40

      Tycoon a écrit:

      Personnellement je suis prêt à oublier toutes les bizareries et le manque de rigueur de JS pour la simplicité d'utilisation qu'il procure. Exemple très simple : avec la bibli THREE.js, en 100 lignes de code on a une scène 3D avec des objets très facilement manipulable, dans une page web. Alors franchement, quand on me dit que JS c'est le mal parce que 'false' == false renvoie faux, je me dit que je m'en tape complètement. Pour peu qu'on ai un peu de rigueur, le Javascript est pas plus mal que n'importe quelle autre langage.

      Je comprends bien ton argument, et par exemple je pense aussi que des initiatives comme npm sont bonnes — si j'ai bien compris tu ne peux pas installer Node sans installer npm avec, et, comme aujourd'hui tous les langages disposent d'un équivalent, je ne comprends pas pourquoi certains ne les livrent pas encore avec l'implémentation officielle.

      Maintenant, est-ce que cette bibliothèque three.js tire vraiment parti de JavaScript ? Sans doute pas. Est-ce inimaginable d'avoir le même genre de choses dans d'autres langages ? Si non, pourquoi est-ce que les développeurs choisissent effectivement JavaScript ? C'est une vraie question hein, et je ne pense pas que la réponse soit uniquement « parce qu'ils sont stupides ou mal renseignés ». Mais je n'y connais rien en 3D, alors j'ai décidé de commencer par m'intéresser Node.js pour comprendre. Chaque chose en son temps. Si tu as une explication, elle m'intéresse.

      Remarque quand même que, il y a 10 ans, les gens utilisaient des arguments similaires au tiens quand on leur disait « mais Perl ça pue, c'est illisible et mal implémenté ». Aujourd'hui Perl 5 est un langage qui n'attire plus tant que ça — donc parfois les gens évoluent, vers des langages (un peu) mieux conçus (en l'occurrence, Python ?).

      iGwann a écrit:

      • Je ne sais pas pourquoi tu parles de « caractères » (en particulier dans ton explication de false == 'false'). Bah généralement ce qui est entre ' ' est un caractère ou une chaine de caractère. Donc '0' == '' qui renvoie faux, ça me parait normal.

      Oui je suis d'accord avec ça, mais un caractère et une chaîne de caractères ça n'est pas la même chose, et pendant un moment je me suis demandé si Eskimon ne confondait pas les caractères et les chaînes de caractère en réutilisant les notations du C. C'était spécifiquement aux arguments d'Eskimon que je m'attaquais parce que je pense qu'il est passé à côté du propos intéressant ; évidemment il n'y aurait aucune façon de justifier intelligemment que false == 'false'.

      Il suffit de regarder la table ASCII pour voir que ce n'est pas vrai. Idem pour 'false' == false. En plus ça n'a aucun sens de comparer une chaine avec false.

      Je suis d'accord avec ça aussi, c'est pour ça que je n'utilise que des langages typés. Comme ça, quand je me trompe dans mon programme et que je suis susceptible de comparer un booléen à une chaîne, mon compilateur m'engueule et me force à corriger mon code.

      Sinon, où est passé le vrai Gwenn ?

      Je ne sais pas. Je suis déçu, j'avais créé ce compte spécialement pour lui.

      • Partager sur Facebook
      • Partager sur Twitter
        23 mars 2014 à 16:28:52

        Oui je suis d'accord avec ça, mais un caractère et une chaîne de caractères ça n'est pas la même chose, et pendant un moment je me suis demandé si Eskimon ne confondait pas les caractères et les chaînes de caractère en réutilisant les notations du C. C'était spécifiquement aux arguments d'Eskimon que je m'attaquais parce que je pense qu'il est passé à côté du propos intéressant ; évidemment il n'y aurait aucune façon de justifier intelligemment que false == 'false'.

        Ah mais j'ai jamais défendu que false == 'false' puissent être correcte ! (ou alors je me suis mal exprimé) car je fais bien la différence chaine != caractère ^^ Je suis moi même grand fan des langages fortement typé !

        • Partager sur Facebook
        • Partager sur Twitter

        Retrouvez moi sur mon blog et ma chaine Youtube !

          30 mars 2014 à 11:10:44

          Je viens un peu après la bataille pour signaler que le livre "JavaScript: The Good Parts" de Douglas Crockford est toujours d'actualité. Le mieux est encore de suivre ses conseils et de ne pas utiliser l'opérateur "==". Le triple égal ("===") se comporte normalement.

          Il reste les comparaisons "<" et ">" qui sont forcément laxistes ("null < 3" donne TRUE) mais elles sont un peu moins courantes et ce n'est pas trop lourd de faire attention.

          Personnellement je trouve que le balayage des tableaux (il manque un foreach) et des maps (avec un nécessaire "hasOwnProperty") est pénible.

          Mais JavaScript a aussi des atouts. J'utilise TypeScript, une implémentation en EcmaScript 5 (le JS actuel) de EcmaScript 6 (le JS futur) et c'est du bonheur.

          • Partager sur Facebook
          • Partager sur Twitter
            30 mars 2014 à 15:45:18

            Par rapport à l'article cité par Tycoon, qui contient des approximations, je recommande la lecture de cette réponse : https://gist.github.com/DavidBruant/9549803#file-gistfile1-md .

            • Partager sur Facebook
            • Partager sur Twitter
              30 mars 2014 à 16:09:54

              Tu veux dire par meuhia , l'OP. Moi, je n'ai rien cité du tout ! J'ai juste fait référence à la bibli THREE.js et mon avis sur le sujet.

              C'est pas mal, ce que le gars raconte dans ton lien, Tarh, mais bon, quand il finit par "Aucune importance. C'est ce qu'on a, il faut vivre avec, bon gré mal gré.", je trouve ça un peu moyen. C'est pas un vrai argument, ça.

              • Partager sur Facebook
              • Partager sur Twitter
              Anonyme
                30 mars 2014 à 17:23:07

                Thiht a écrit:

                Par contre prendre les comportements indéfinis de langages comme C ou C++ pour s'en moquer (des trucs comme i = ++i;ou tous les immondices liés au préprocesseur) c'est interdit, et là les défenseurs ont le droit de dire que c'est la faute du développeur et pas du langage :-°

                Franchement, je ne connais aucun programmeur C compétent qui trouve que le préprocesseur soit un truc élégant. Un outil utile pour cacher les lourdeurs du langage, certes, mais je n'ai jamais vu quelqu'un être content de trouver 500 lignes de # en ouvrant un .h...

                Concernant la spécification du langage, je suis plus sceptique. De nombreux comportements indéterminés le sont pour éviter de trop contraindre le code généré voire l'architecture de la machine, des motifs techniques qui semblent aujourd'hui archaïques mais qui vont avec l'usage d'un langage normalisé il y a 25 ans et utilisé depuis 40 (faut-il rappeler que certaines plateformes ne supportent encore que C89 ?).

                On sera d'accord sur le fait que c'est moche, mal foutu, et que c'est bien "la faute du langage". Quelqu'un qui utilise le C aujourd'hui devrait avoir une bonne raison de le faire, je n'ai jamais compris pourquoi on continue à l'enseigner à des débutants... 

                iGwann a écrit:

                Sinon, où est passé le vrai Gwenn ?

                Je ne sais pas. Je suis déçu, j'avais créé ce compte spécialement pour lui.

                C'est marrant ça parce que si tu ne l'avais pas dit, j'aurais probablement jamais percuté. Tu veux troller sur quoi ?

                • Partager sur Facebook
                • Partager sur Twitter
                  30 mars 2014 à 18:08:15

                  Tycoon a écrit:

                  Tu veux dire par meuhia , l'OP. Moi, je n'ai rien cité du tout ! J'ai juste fait référence à la bibli THREE.js et mon avis sur le sujet.

                  Oui pardon !

                  • Partager sur Facebook
                  • Partager sur Twitter

                  Que pensez vous du JS

                  × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                  × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                  • Editeur
                  • Markdown