Journal hey wasm : wasi ! wazaaaaaaa

PostĂ© par . Licence CC By‐SA.
Étiquettes :
6
1
avr.
2019

Bonjour Nal<,

Quelques mots pour te signaler que Mozilla vient de starter une nouvelle disruption : il sera peut-ĂȘtre bientĂŽt possible d’écrire un seul code (en Rust, C & C++, au hasard) qui s’exĂ©cute partout. Le mĂȘme. Si si. Et lĂ , cher Nal ton Noeil aiguisĂ© comme ceux d’un aigle chassant sa proie tu sautes sur le trollomĂštre et crie « mais ça existe dĂ©jĂ , c’est Java !»

Non, Java a besoin d’un greffon pour ĂȘtre exĂ©cutĂ© dans un navigateur. Et toc. En plus c’est tout naze. Re toc. Et on voit rarement des gens coder en C pour ensuite passer tout ça en Java. Re re toc. Et non ce n’est pas un april fool. Re re re toc.

WebAssembly c’est ce machin qui permet de faire des trucs vachement bien pour les apps dans les navigateurs. C’est Jaynial. Mais c’est quant mĂȘme dommage d’avoir besoin d’un navigateur pour exĂ©cuter de telle merveille. Si wasm (webassembly) pouvait servir en dehors du navigateur nous aurions alors un seul code (扊陀) qui les gouverne tous (ć‰Šé™€ă“ă“ăŸă§) qui pourrait ĂȘtre lancĂ© sur MacOS, iOS, (扊陀) BSD/Linux (ć‰Šé™€ă“ă“ăŸă§)Android, GNU/Linux, les BSD et Windows, et dans ou en dehors de leurs brouteurs web. C’est lĂ  que wasi (WebAssembly System Interface) interviendra.

Allez plus loin :

Le ouebsite
La vidio
Un article du blog de Lin Clarke sur wasi
Un autre article (long et particuliùrement bien fait, pour rappeler ce qu’est wasm) du blog de Lin.
Et y' a mĂȘme des tut_tut_oraux
Enfin la jolie Nimage :
vieux logo de mozilla qu'il ne faut plus montrer

  • # Rien compris

    PostĂ© par (site web personnel) . ÉvaluĂ© Ă  5. DerniĂšre modification le 01 avril 2019 Ă  19:40.

    J'ai essayé de suivre, mais difficile... J'ai des logiciels codé en C++ mis en WASM donc je peux mettre dans le navigateur (avec ces limitations d'API genre impossible d'avoir l'API fichier "normale"), ça OK je comprend WASM.
    J'ai sans doute rien compris sur WASI, car ce que je vois c'est un concurrent d'API de navigateurs en terme d'Ă©volution qui pourraient ĂȘtre dans le navigateur aussi, avec une forme de navigateur sans interface web (node.js?), bref juste un fork de navigateur "Ă©tendu" en terme d'API et "sans GUI" saupoudrĂ© d'un peu de marketing.
    J'ai loupé quoi?

    • [^] # Re: Rien compris

      PostĂ© par . ÉvaluĂ© Ă  2.

      A mon avis pas grand chose. Et faut aussi rappeller que wasm a d'énormes limitation, genre les threads etc...

    • [^] # Re: Rien compris

      PostĂ© par . ÉvaluĂ© Ă  3.

      A mon avis pas grand chose. Et faut aussi rappeller que wasm a d'énormes limitation, genre les threads etc...

    • [^] # Re: Rien compris

      PostĂ© par . ÉvaluĂ© Ă  4. DerniĂšre modification le 01 avril 2019 Ă  22:37.

      Le ton du journal est volontairement humoristique, mais la techno est intĂ©ressante : avoir une app qui s'exĂ©cute aussi bien dans un navigateur qu'en dehors, donc sur le bureau : qu'il soit Linux, Mac ou Windows, c'est trĂšs allĂ©chant, non ? MĂȘme s'il s'agit d'un fork de navigateur soupoudrĂ© d'un peu de marketing comme tu le dis, ou bien si les enjeux pour le navigateur lui mĂȘme peuvent ĂȘtre floues (?), il n'en reste pas moins cette allĂ©chante idĂ©e : un seul code pour partout. Qui ne peut rĂ©pondre Ă  tout les besoins, certe, mais dont on peut dĂ©jĂ  entrevoir les possibilitĂ©s pour un paquet de trucs (et les impacts Ă©ventuels sur les stores pe aussi)

      • [^] # Re: Rien compris

        PostĂ© par . ÉvaluĂ© Ă  5.

        Hum... Si les GAFAM continuent Ă  "pousser" toujours plus l'utilisation du navigateur, l'intĂ©rĂȘt d'avoir une application "native" diminue en proportion... La plupart des gens se moquent de lancer une application sur leur systĂšme, eux ils vont "sur Google"...
        Du coup, proposer un systĂšme qui permet Ă  la fois de lancer sur le systĂšme et dans le navigateur va juste assurer une transition douce... vers le "tout navigateur"...

        Celui qui pose une question est bĂȘte cinq minutes, celui qui n'en pose pas le reste toute sa vie.

  • # un libc pour webassembly en somme ?

    PostĂ© par . ÉvaluĂ© Ă  4.

    qui permettra donc des appels systĂšmes sur les OS qui auront un runtime.

    • [^] # Re: un libc pour webassembly en somme ?

      PostĂ© par . ÉvaluĂ© Ă  4.

      Si j'ai bien suivi, l'idée est de distribuer le runtime avec ton application (linkage statique). Mais sinon c'est exactement ça oui. En gros le portage standardisé sur le desktop de WASM et du coup de tout l'écosystÚme web (HTML, CSS).

      Alors est-ce souhaitable ? Probablement pas en théorie. Mais pratico-pratiquement c'est déjà ce que font beaucoup de gens avec Electron JS et c'est une horreur qui a besoin de disparaßtre du coup s'il faut WASI pour parvenir à ces fins, c'est à mon sens un compromis honorable.

      • [^] # Re: un libc pour webassembly en somme ?

        PostĂ© par (site web personnel) . ÉvaluĂ© Ă  2.

        C'est un peu comme feu chrome native-client ?

        Sauf que native-client gérait les dépendances...

        • [^] # Re: un libc pour webassembly en somme ?

          PostĂ© par . ÉvaluĂ© Ă  3.

          • [^] # Re: un libc pour webassembly en somme ?

            PostĂ© par (site web personnel) . ÉvaluĂ© Ă  1. DerniĂšre modification le 04 avril 2019 Ă  13:43.

            Oui, j'avais remarqué, aprÚs avoir bien joué avec dans le temps.

            Les avantages de native client: déjà sandboxé, possibilité d'utiliser GCC, ou LLVM (portable Native Client) donc tous les langages, gestion des dépendances, presque pas de machine virtuelle, multithread. Le tout en 2013...

            Bien que le projet était Open Source, il faut réinventer la roue, c'est WebAssembly qui a remporté les suffrages. Les objectifs futures de WebAssembly aujourd'hui, ressemblent vraiment à ce que faisait Native Client. Je comprends mal les raisons du détour qu'on est entrain de faire... C'est bien de faire comme la dame évangéliste de chez moz avec ces dessins Photoshop hyper hype, sans aborder le fond (les fonds, car j'ai lu les 2 articles, qui parte dans tout les sens).

            Dans le genre "naufrage dommageable", j'ajouterai Dart qui c'est fait détrÎné par TypeScript par paresse et Anti GG.

            J'aimerai bien connaitre l'opinion qu'ont les utilisateurs de TypeScript de Dart pour voir, et les arguments (j'aime autant TypeScript que Javascript, c'est dire).

            • [^] # Re: un libc pour webassembly en somme ?

              PostĂ© par . ÉvaluĂ© Ă  3.

              Dans le genre "naufrage dommageable", j'ajouterai Dart qui c'est fait détrÎné par TypeScript par paresse et Anti GG.

              Tu veux dire que quand les développeurs d'Angular ont choisi typescript c'est par anti-google primaire ? :D

              • [^] # Re: un libc pour webassembly en somme ?

                PostĂ© par (site web personnel) . ÉvaluĂ© Ă  2.

                Angular, tu veux dire le machin qui bondi de 2 versions tous les 6 mois, ou 50 % du code ressemble à du Json tellement c'est structuré?

                Ă  la belle Ă©poque, celle oĂč les dĂ©veloppeurs dĂ©veloppaient au lieu de faire des dessins dĂ©biles dans Photoshop, il Ă©tait question de mettre une machine virtuelle Dart dans les navigateurs, chose qui ne s'est pas faite.

                Avant Angular et AngularJS, il y avait les WebComponents en Dart ... ça Ă  disparu, au mĂȘme moment que la promesse d'intĂ©grer Dart dans les navigateurs...

                Et oui, j'adorai les WebComponents avec Dart. J'aime vraiment pas Angular.

                Regarde ce blog de 2012 pour en avoir une idée :
                http://blog.sethladd.com/2012/11/your-first-web-component-with-dart.html

                Ce n'est pas toujours le meilleur qui gagne.

                • [^] # Re: un libc pour webassembly en somme ?

                  PostĂ© par . ÉvaluĂ© Ă  3.

                  Ma remarque était surtout que les développeurs d'angular étant des employés de Google leur reprocher un comportement anti-google c'est plutÎt rigolo. Je ne sais pas ce qui les a fait choisir ts face à dart, mais je doute que ce soit dû à un anti-google.

                  Avant Angular et AngularJS, il y avait les WebComponents en Dart ...

                  Wikipedia me dit que la premiÚre version d'AngularJS date de 2009 et la premiÚre version de dart de 2011 (avec un travaille qui aurait commencé en 2010).

                  Il faut savoir gérer sa frustration. Oui on a tous des préférences et elles sont pas toujours gagnantes. Les ruminer pendant des années (ça fait 4 ans qu'ils ont annoncer abandonner l'idée d'intégrer dart à chrome), ça rend aigris.

                  • [^] # Re: un libc pour webassembly en somme ?

                    PostĂ© par (site web personnel) . ÉvaluĂ© Ă  1.

                    j'avais remarqué ton smiley, j'ai pas été trÚs courtois mais ça n'était pas contre toi. En plus t'as raison, c'est Google qui a peur de son ombre qui a fait sombrer les WebComponent et Dart et le reste..

                    Il existe maintenant Angular Dart, mais je sais pas. J'ai passé trop de temps à jouer avec des technos hyper prometteuses, j'en ai marre. D'autant plus que faire de l'Angular 7, 8 ou 9 TS inside quand on a fait du Dart avec les WebComponent, ça fait pas envie. On fait tout sur le serveur, et on utilise un minimum de React en Javascript (avec quelques composants en AngularJS).

                    Ça vaut ce que ça vaut. C'est pas l'extase, mais mon besoin est surtout que la techno soit pĂ©renne dans le temps. Au moins, Javascript, je pense que c'est lĂ  pour un moment.

      • [^] # Re: un libc pour webassembly en somme ?

        PostĂ© par (site web personnel) . ÉvaluĂ© Ă  3.

        Alors est-ce souhaitable ? Probablement pas en théorie. Mais pratico-pratiquement c'est déjà ce que font beaucoup de gens avec Electron JS et c'est une horreur qui a besoin de disparaßtre

        Question conne, mais si c'est tant une horreur, pourquoi ça existe et ça se développe ?
        Quelle alternative existe aujourd'hui pour faire des app multi-plateformes (desktop + web Ă  minima) ?

        • [^] # Re: un libc pour webassembly en somme ?

          PostĂ© par . ÉvaluĂ© Ă  2.

          Question conne, mais si c'est tant une horreur, pourquoi ça existe et ça se développe ?

          Il y a beaucoup de choses qui se dĂ©veloppent sans que ce soit particuliĂšrement souhaitable (extrĂ©misme, les cyberattaques, le harcĂšlement, le spam, les platistes, les antivax,...). Se questionner sur le pourquoi est-ce que ça existe est tout Ă  fait pertinent, mais ça n'est pas en soit un argument qui va dans leur sens. On peut expliquer la violence des manifestations (et donc la comprendre) sans pour autant ĂȘtre d'accord.

          Mais pour répondre :

          [...] pourquoi ça existe et ça se développe ?

          Parce que les navigateurs ne font pas encore un boulot suffisant, je pense. Si une application peu fonctionner sur le web, il n'y a pas de raison qu'elle en sorte. C'est en soit une méthodologie qui permet d'avoir les inconvénients des 2 mondes.

          Par exemple l'un des enjeux des navigateurs c'est de mieux les ressources : pas forcément consommer moins, mais segmenter mieux chaque site et mieux isoler/montrer quel site consomme les ressources.

          Il y en a probablement d'autres.

          • [^] # Re: un libc pour webassembly en somme ?

            PostĂ© par (site web personnel) . ÉvaluĂ© Ă  4.

            Question conne, mais si c'est tant une horreur, pourquoi ça existe et ça se développe ?

            Il y a beaucoup de choses qui se développent sans que ce soit particuliÚrement souhaitable (extrémisme, les cyberattaques, le harcÚlement, le spam, les platistes, les antivax,...)

            Je sais bien qu'on est sur linuxfr, mais c'est sérieux comme réponse ?
            Une question sur l'omniprésence d'electron et la réponse parle de "extrémisme, les cyberattaques, le harcÚlement, le spam, les platistes, les antivax" ?

            Surtout que la question Ă©tait quand mĂȘme prĂ©cisĂ©e, orientĂ©e :

            Quelle alternative existe aujourd'hui pour faire des app multi-plateformes (desktop + web Ă  minima) ?

            Parce que on peut crasher autant qu'on veut sur electron, aujourd'hui c'est tout de mĂȘme ce qui permet Ă  plein d'app d'exister aussi bien sous forme d'appli desktop que de site web.
            Ça a Ă©crasĂ© les derniĂšres tentatives Ă  la GTK, Qt, etc.

            • [^] # Re: un libc pour webassembly en somme ?

              PostĂ© par . ÉvaluĂ© Ă  2. DerniĂšre modification le 04 avril 2019 Ă  14:11.

              Je sais bien qu'on est sur linuxfr, mais c'est sérieux comme réponse ?

              C'est une méta-argumentation, les exemples ne sont pas heureux certe, mais ils ne sont pas là pour faire un parallÚle. Juste pour illustrer mon argument. Je le redis de maniÚre plus simple et sans fioriture :

              Indépendamment de la qualité ou non d'electron/nodejs/js, l'argument qui dit que si ça se développe c'est que c'est souhaitable (ce que tu sous-entendais), n'est pas valide à mon humble avis.

              Ça te choque moins, exprimĂ© ainsi ?

              Surtout que la question Ă©tait quand mĂȘme prĂ©cisĂ©e, orientĂ©e :

              Et j'y ai répondu, je sais bien qu'on est sur linuxfr, mais répondre à un commentaire sans lire ou chercher à comprendre le commentaire auquel on répond ?

              Tu remarquera que je n'ai dis nul part que ces techno ont en soit un problÚme de qualité, juste que faire du desktop + web pose des soucis de gestions.

        • [^] # Re: un libc pour webassembly en somme ?

          PostĂ© par (site web personnel) . ÉvaluĂ© Ă  3.

          La question amÚne sa réponse : sur le web il n'y a que le JS de possible.
          À partir de là, ta question revient à demander pourquoi il n'y a pas de concurrence dans les domaines couverts par un monopole d'État...

        • [^] # Re: un libc pour webassembly en somme ?

          PostĂ© par (site web personnel) . ÉvaluĂ© Ă  1.

          Quelle alternative existe aujourd'hui pour faire des app multi-plateformes (desktop + web Ă  minima) ?

          Avant d'utiliser Electron, j'utilisais Chromium Embedded Framework, qui, comme son nom le laisse entendre, est également basé sur Chromium, et, encore avant ça, j'utilisais XULRunner, qui utilisait le moteur de rendu de Firefox, mais qui n'est plus officiellement maintenu.

          Zelbinium: pour la génération qui crée, pas celle qui scrolle...

      • [^] # Re: un libc pour webassembly en somme ?

        PostĂ© par . ÉvaluĂ© Ă  2.

        WASM n'a pas vraiment de rapport avec le HTML, CSS ou mĂȘme javascript. De base un programme en Webassembly, mĂȘme exĂ©cutĂ© dans un navigateur, ne peut mĂȘme pas interagir directement avec le DOM.

        Le but ici est simplement de dĂ©finir une sorte de sous-ensemble de POSIX ce qui permettrait de compiler un programme desktop "classique" vers un binaire multiplateforme qui s’exĂ©cuterait dans une sandbox au travers de la VM webassembly.

        C'est difficile de comparer ça avec Electron car tu n'as pas besoin de dĂ©baller un navigateur au complet, la norme actuelle de webassembly est relativement simple et est prĂ©vu pour ĂȘtre indĂ©pendante du reste du web.

  • # Applet Java

    PostĂ© par . ÉvaluĂ© Ă  4.

    Non, Java a besoin d’un greffon pour ĂȘtre exĂ©cutĂ© dans un navigateur.

    Non non ça n'existe plus depuis Java 11.

Suivre le flux des commentaires

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