Journal Javascript n'est pas vraiment du prototype

Posté par  (site web personnel) .
Étiquettes : aucune
6
14
sept.
2010
Il y a environ un an, Nicolas Boulay avait affirmé que javascript n'était pas vraiment un langage à prototype.
Il avait reçu une volée de bois vert, du style "Wikipedia et tout le monde dit que c'est du prototype, donc ce que tu dit est débile". C'est d'ailleurs pour cela que j'ai choisi ce titre provocateur ;-)

Javascript est certes un langage à prototype, mais pas pleinement, en l'occurrence, il ne permet pas une fonctionnalité absolument essentiel de ce type de langage : l'héritage dynamique

C'est assez bien expliqué ici : http://www.bluishcoder.co.nz/2009/07/prototype-based-program(...)
Une tentative a été tentée mais elle ne reste pas très propre.

Bref, javascript est un langage très puissant, mais n'allant pas jusqu'au bout de ces contextes. On peut néanmoins faire des choses extrêmement intéressantes avec.
  • # Proto-langage

    Posté par  . Évalué à 3.

    Ce dont je suis sûr c'est qu'il est bien resté à l'état de prototype.
  • # Et sinon

    Posté par  (site web personnel) . Évalué à 10.

    C'est le même genre de débat un peu stérile que «Est-ce que Java est orienté objet même si le langage et la VM ne considèrent pas les primitives comme des objets à part entière ?».

    JavaScript ne tire clairement pas pleinement profit de son héritage (ahah) côté Self. Pas d'héritage dynamique des prototypes, des structures de contrôles non dynamiques, etc. D'un autre côté il assume bien son héritage et ses compromis vers Java pour la syntaxe principalement.

    Après c'est super de se palucher sur la pureté de LISAAC comparé aux affreux compromis de JavaScript, mais il faut pondérer ça avec le nombre de programmeurs de chaque côté. Comme quoi, le bien, le mieux, tout ça...
    • [^] # Re: Et sinon

      Posté par  (site web personnel) . Évalué à 6.

      Après c'est super de se palucher sur la pureté de LISAAC comparé aux affreux compromis de JavaScript, mais il faut pondérer ça avec le nombre de programmeurs de chaque côté. Comme quoi, le bien, le mieux, tout ça...

      C'est petit de mesurer l'intérêt téchnique de quelques choses avec sa popularité.

      "La première sécurité est la liberté"

      • [^] # Re: Et sinon

        Posté par  (site web personnel) . Évalué à 4.

        Pas vraiment. La popularité et l'intérêt technique ne sont pas antagonique.

        Il suffit de regarder la nouvelle vague de langages sur la JVM comme Scala, Clojure et Groovy, ou sur la CLI comme F# ou Boo pour s’apercevoir que l'on peut apporter des concepts avancés à une masse importante de développeurs.
        • [^] # Re: Et sinon

          Posté par  (site web personnel) . Évalué à -1.

          Pas vraiment. La popularité et l'intérêt technique ne sont pas antagonique.

          C'est surtout des concepts totalement orthogonaux et qui n'ont rien à voir entre eux.

          Il suffit de regarder la nouvelle vague de langages sur la JVM comme Scala, Clojure et Groovy, ou sur la CLI comme F# ou Boo pour s’apercevoir que l'on peut apporter des concepts avancés à une masse importante de développeurs.

          C'est exactement pareil que de produire des fichiers code objet pour être lié avec du C ou du C++, ce qui permet de parler à beaucoup d'autre langage.

          "La première sécurité est la liberté"

    • [^] # Re: Et sinon

      Posté par  (site web personnel) . Évalué à 4.

      Même si je sais qu'Ontologia aime Lisaac, je ne vois pas ou il en parle dans son journal. Bref, je trouve que tu le foudroie gratuitement.

      Pour rebondir de manière plus positive, cela en est où Lisaac ? On a comme l'impression depuis dlfp que ca s'endors petit à petit.
      • [^] # Re: Et sinon

        Posté par  (site web personnel) . Évalué à 3.

        Pour rebondir de manière plus positive, cela en est où Lisaac ?

        LA question qui tue, enfin, qui m'attriste.

        Disons qu'il y avait une dynamique très forte pour sortir une sorte de version 1.0 (stable niveau bug et feature) cet été. Depuis les Jm2l de novembre de l'an passé, cela allait bien. Cela a continué jusqu'en mars.

        Et depuis, l'auteur principal ne donne plus de nouvelles. Il a dû repartir dans un 4ième recodage du compilateur (en utilisant un principe plus générique et extensible) et il a dû aussi faire une méga grosse pause...

        Bref, c'est pas la joie.

        "La première sécurité est la liberté"

        • [^] # Re: Et sinon

          Posté par  (site web personnel) . Évalué à 3.

          C'est un peu ce que je craignais. Tant que le développement, du compilateur notamment, ne sera pas plus communautaire, il y a peu de chance que Lisaac perce. J'ai presque même l'impression que cela a déjà trop traîné...

          En ce moment, je suit pas mal les actualités cotés Perl (5 et 6) et c'est tout l'inverse. Après une longue période assez calme, on peut dire que cela bouge de nouveau et ça fait bien plaisir.
          • [^] # Re: Et sinon

            Posté par  (site web personnel) . Évalué à 1.

            Bonne analyse de la situation de la part de vous deux. Faudrait trouver quelques théorique avec un bon background en programmation pour travailler à plusieurs sur le concept.

            Si certains sont tentés, on est là...

            « Il n’y a pas de choix démocratiques contre les Traités européens » - Jean-Claude Junker

          • [^] # Re: Et sinon

            Posté par  . Évalué à 3.

            En même temps, peut-être qu'il veut se permettre des changements très très radicaux quand il veut pour l'instant. S'il réécrit le compilo pour la 4ème fois, c'est qu'il estime que la base n'est pas encore stabilisée.
            Gageons qu'une fois qu'il aura trouvé la voie qu'il souhaite pour ce compilateur, il sera plus facile d'accueillir des contributeurs extérieurs, plutôt que de laisser la communauté bosser dessus 6 mois et ensuite dire "Désolé les gars, mais là on est dans l'impasse, je propose qu'on recommence tout à zéro!", au risque d'écœurer du monde.
            • [^] # Re: Et sinon

              Posté par  (site web personnel) . Évalué à 3.

              Le problème est que le développement communautaire est une habitude à prendre qui n'est pas si facile que cela. Partager les choix, les décisions. Laisser d'autres faire des commit...

              J'ai deux copains chercheurs qui développent très bien mais sont incapable de partager le commit car ils veulent tous les deux garder le contrôle sur leur code. Bilan, leurs codes sont très bien mais il n'y a quasiment plus personne qui les utilise (à par leur thésard) ! Et le jour de leur départ à la retraite, tout ira à la poubelle... (heureusement, c'est pas pour demain).

              Bref, les mauvaises habitudes ont la vie dure et le vrai partage d'un code n'est pas toujours quelque chose de trivial à accepter sociologiquement.
            • [^] # Re: Et sinon

              Posté par  (site web personnel) . Évalué à 2.

              Il fallait recoder pour permètre de faire plus d'optimisation de haut niveau. Mais la syntaxe était presque stable, on aurait pu augmenter le nombre de codeur, trouver des bugs, augmenter les lib, définir des outils d'aide à la programmation (plugin eclipse,...)etc...

              "La première sécurité est la liberté"

            • [^] # Re: Et sinon

              Posté par  . Évalué à 3.

              ouais, ou alors sinon je pense que sous peu il se lancera dans une 5ème reécriture...
            • [^] # Re: Et sinon

              Posté par  (site web personnel) . Évalué à 2.

              En même temps, peut-être qu'il veut se permettre des changements très très radicaux quand il veut pour l'instant. S'il réécrit le compilo pour la 4ème fois, c'est qu'il estime que la base n'est pas encore stabilisée.

              C'est surtout qu'il à eu une super bonne idée algorithmique pour parcourir l'arbre syntaxique et objet. Du coup, il ne supporte pas l'ancien design et veut tout refaire.

              Cela ne veut pas dire que les choix actuels sont mauvais.

              de toute façon, comme je l'ai dit sur un autre journal, Benoît n'a pas vraiment avancé et va se baser sur la version git actuelle.
          • [^] # Re: Et sinon

            Posté par  (site web personnel) . Évalué à 2.

            C'est un peu ce que je craignais. Tant que le développement, du compilateur notamment, ne sera pas plus communautaire, il y a peu de chance que Lisaac perce. J'ai presque même l'impression que cela a déjà trop traîné...

            Les bonnes volontés ne sont pas écartées.

            Le projet est public sur alioth: http://git.debian.org/?p=lisaac/compiler.git
            Avec un miroir sur gitorious: http://gitorious.org/lisaac

            Tout le monde peut s'inscrire et je peux donner les permissions d'accès au repository. On peut forker, merger, modifier, discuter...

            C'est vrai que le développeur principal, Benoît, n'est pas très communiquant, mais si les autres membres de l'équipe sont là, je dirais que ce n'est pas un si gros problème.
  • # Il faut bien que quelqu'un s'y colle.

    Posté par  . Évalué à -3.

    "ce que tu dis est débile"

    Voila. Sinon, pour répondre au journal, pour faire des menus déroulants ou du Ouaib 2.0, voire même des étoiles qui suivent le curseur de la souris, peu importe que Javascript soit un langage à prototype...
    • [^] # Re: Il faut bien que quelqu'un s'y colle.

      Posté par  (Mastodon) . Évalué à 4.

      Il faut bien que quelqu'un s'y colle.

      Non.

      En théorie, la théorie et la pratique c'est pareil. En pratique c'est pas vrai.

    • [^] # Re: Il faut bien que quelqu'un s'y colle.

      Posté par  . Évalué à 2.

      pour faire des menus déroulants ou du Ouaib 2.0, peu importe que Javascript soit un langage à prototype...

      D'ailleurs pour faire une pauvre page perso pourrie remplie de gif animés, ça sert à rien d'avoir du HTML5.

      Sont vraiment étranges ces gens qui croient encore que le web à un intérêt....
    • [^] # Re: Il faut bien que quelqu'un s'y colle.

      Posté par  . Évalué à 3.

      Oué enfin...

      Il y a des gens qui font du code serveur en JS (node.js)
      Il y a des gens qui font du YACC en js (JS/CC)
      Il y a des gens qui font des compilos métacirculaires en JS (narcissus / comonad.com)
      Il y a des gens qui font des interpreteurs flash,java,ruby,python en JS, d'autres des target LLVM...
      etc etc etc.

      Je t'invite donc à te renseigner sur ce dont tu parles avant de dire trop d'anneries.

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.