IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

La spécification WebAssembly Core est désormais un standard web officiel


Sujet :

JavaScript

  1. #21
    Membre confirmé

    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    311
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 311
    Points : 545
    Points
    545
    Par défaut
    Bien évidemment que cela ne tuera pas JavaScript, les WebAssembly serviront, surtout, à remplacer les plugins natif Netscape et ActiveX qui sont désormais bloqué par les navigateurs !

    Je me pose des questions sur l’interopérabilité entre WebAssemblies et l’interpréteur JavaScript ! Car actuellement je galère à porter une librairie C de physiques avec Emscripten, si la compilation ne pose pas de problème (Emscripten et totalement compatible avec gcc ), l’export d’une API utilisable en JavaScript est une entreprise long et fastidieuse.

    Il faut bien comprendre que Emscripten ne permet d’exporter que les fonctions avec des signatures simple (avec ccall et cwrap) mais pas les structures et objet (qui en c/c++ sont les mêmes choses). Du coup cela oblige à créer un Wrappeur d’objet JavaScript pour chaque structure.

    Pour exemple : voici la définition de la structure Mass :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    struct dMass {
      dReal mass;
      dVector4 c;
      dMatrix3 I;
     
    #ifdef __cplusplus
      dMass()
        { dMassSetZero (this); }
      void setZero()
        { dMassSetZero (this); }
      void setParameters (dReal themass, dReal cgx, dReal cgy, dReal cgz,
    		      dReal I11, dReal I22, dReal I33,
    		      dReal I12, dReal I13, dReal I23)
        { dMassSetParameters (this,themass,cgx,cgy,cgz,I11,I22,I33,I12,I13,I23); }
      void setSphere (dReal density, dReal radius)
        { dMassSetSphere (this,density,radius); }
      void setCapsule (dReal density, int direction, dReal a, dReal b)
        { dMassSetCappedCylinder (this,density,direction,a,b); }
      void setCappedCylinder (dReal density, int direction, dReal a, dReal b)
        { setCapsule(density, direction, a, b); }
      void setBox (dReal density, dReal lx, dReal ly, dReal lz)
        { dMassSetBox (this,density,lx,ly,lz); }
      void adjust (dReal newmass)
        { dMassAdjust (this,newmass); }
      void translate (dReal x, dReal y, dReal z)
        { dMassTranslate (this,x,y,z); }
      void rotate (const dMatrix3 R)
        { dMassRotate (this,R); }
      void add (const dMass *b)
        { dMassAdd (this,b); }
    #endif
    };
    Je dois donc compter la taille en octet, afin de pouvoir l’allouer sur le tas de la LLVM ici :
    1 (réel mass) +4 (vecteur c)+ 3*4 (matrice3x4 I ) = 17 réel = 17 * 4 octets
    Les réels sont des flottants de simple précision encoder sur 4 octets

    La fonction constructrice d’instance de Mass, exporté en JavaScript, nécessite l’écriture suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    /**************                                   Mass API                                   *********************/
    	var sizeOfMass = (1+4+4*3)*4;
    	var dMassSetZero = Module.cwrap('dMassSetZero',null,['number']);
    	var dMassSetParameters = Module.cwrap('dMassSetParameters',null,['number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number']);
    	var dMassSetSphere = Module.cwrap('dMassSetSphere',null,['number', 'number', 'number']);
    	var dMassSetSphereTotal = Module.cwrap('dMassSetSphereTotal',null,['number', 'number', 'number']);
    	var dMassSetCapsule = Module.cwrap('dMassSetCapsule',null,['number', 'number', 'number', 'number', 'number']);
    	var dMassSetCapsuleTotal = Module.cwrap('dMassSetCapsuleTotal',null,['number', 'number', 'number', 'number', 'number']);
    	var dMassSetCylinder = Module.cwrap('dMassSetCylinder',null,['number', 'number', 'number', 'number', 'number']);
    	var dMassSetCylinderTotal = Module.cwrap('dMassSetCylinderTotal',null,['number', 'number', 'number', 'number', 'number']);
    	var dMassSetBox = Module.cwrap('dMassSetBox',null,['number', 'number', 'number', 'number', 'number']);
    	var dMassSetBoxTotal = Module.cwrap('dMassSetBoxTotal',null,['number', 'number', 'number', 'number', 'number']);
    	var dMassAdjust = Module.cwrap('dMassAdjust',null,['number', 'number']);
    	var dMassTranslate = Module.cwrap('dMassTranslate',null,['number', 'number', 'number', 'number']);
    	var dMassRotate = Module.cwrap('dMassRotate',null,['number', 'number']);
    	var dMassAdd = Module.cwrap('dMassAdd',null,['number', 'number']);
     
    	ODE.Mass = function ()
    	{
    		var pointer = arguments[0] ||  Module._malloc(sizeOfMass);
    		this.getPointer = function() { return pointer;}
    		this.destroy = function() { return Module._free(pointer); }
    		this.setZero = function() { dMassSetZero(pointer); return this;}
    		this.setParameters = function( mass,cgx, cgy, cgz, I11, I22, I33, I12, I13, I23) {  dMassSetParameters(pointer, mass,cgx, cgy, cgz, I11, I22, I33, I12, I13, I23); return this;}
    		this.setSphere = function(density, radius) { dMassSetSphere(pointer,density, radius); return this;}
    		this.setSphereTotal = function(total_mass, radius) { dMassSetSphereTotal(pointer,total_mass, radius); return this;}
    		this.setCapsule = function(density, direction, a, b) { dMassSetCapsule(pointer, density, direction, a, b); return this;}
    		this.setCapsuleTotal = function(total_mass, direction, a, b) { dMassSetCapsuleTotal(pointer, total_mass, direction, a, b); return this;}
    		this.setCylinder = function(density, direction, a, b) { dMassSetCylinder(pointer, density, direction, a, b); return this;}
    		this.setCylinderTotal = function(total_mass, direction, a, b) { dMassSetCylinderTotal(pointer, total_mass, direction, a, b); return this;}
    		this.setBox = function(density, lx, ly, lz) { dMassSetBox(pointer, density, lx, ly, lz); return this;}
    		this.setBoxTotal = function(total_mass, lx, ly, lz) { dMassSetBoxTotal(pointer, total_mass, lx, ly, lz); return this;}
    		this.adjust = function(newmass) { dMassAdjust(pointer, newmass); return this;}
    		this.translate = function(x,y,z) {  dMassTranslate(pointer, x,y,z); return this;}
    		this.rotate = function(rotation) { dMassRotate(mass, rotation.getPointer()); return this;}
    		this.add = function(mass) { dMassAdd(pointer, mass.getPointer()); return this;}
    	}
    Ainsi en javascript il est possible de soit créer une instance de Mass par new ODE.Mass() ; ou de caster une zone mémoire en tant que Mass par new ODE.Mass(pointer) ;

    Mais cela peut encore se complexifier, en effet les données membre de la structure ne sont pas exposer a l’objet JavaScript, pour cela il faut donc ajouter ceci au constructeur Mass :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Object.defineProperty(this,"mass",{
    	enumerable : true,
    	get : function(){ return  Module.getValue(pointer,'float');},
    	set : function(val) { Module.setValue(pointer,val,'float');	}
    });
     
    this.c = new ODE.Vector4(pointer+4);
    this.I = new ODE.Matrix3(pointer+4+4*4);
    De plus un problème persiste avec cette méthode de wrapping, en effet ces feignasses de scripteurs ( dont je fais partie ), non pas pour habitude de se poser des question à propos de la gestion Mémoire. Or ici il est nécessaire d’appeler la méthode destroy avant la collecte du ramasse miettes, afin d’éviter tous Memory leak …

    Bref je vous laisse estimer le tempe qu’il faut pour exporter l’API d’une librairie c/c++ … et j’ai bien peur que tous ce travail soit à pure perte pour un futur export WebAssembly
    ShaderElement : Bénéficier de l’accélération graphique simplement par une nouvelle balise HTML <shader>
    ODE.js : portage JavaScript du célèbre moteur physique 3D Open Dynamics Engine

  2. #22
    Expert confirmé Avatar de DonQuiche
    Inscrit en
    Septembre 2010
    Messages
    2 741
    Détails du profil
    Informations forums :
    Inscription : Septembre 2010
    Messages : 2 741
    Points : 5 485
    Points
    5 485
    Par défaut
    Concernant l'interopérabilité JS et webasm, celle-ci sera abordée plus tard, une fois le coeur lui-même terminé. Au menu on trouvera notamment la possibilité de confier des zones mémoires au ramasse-miettes. Cela te facilitera la vie.

    En revanche tu auras toujours besoin de créer des wrappers mais c'est un problème lié au C++. Ce qu'il te faut c'est un générateur de code qui examine ton code pour créer les wrappers correspondants. En C++ c'est malheureusement tortueux du fait de la gestion mémoire, de la compilation en une seule passe et de l'absence de métadonnées.

  3. #23
    Membre confirmé

    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    311
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 311
    Points : 545
    Points
    545
    Par défaut
    Mais bien sûr laissons la question d’interopérabilité de côté et laissons le champ libre à Unity l’utilisation des WebAssembly a leurs fin personnel !

    Attention je ne souhaite pas dénigrer la techno Unity concernant les jeux vidéo c’est le top , mêmes si leur pseudo JavaScript ne ressemble à rien du vrais JavaScript. Seulement l’interopérabilité avec le navigateur nous ramène 15 ans en arrière, tous comme le vieux flash 7, seuls les échanges de message string sont possibles !
    En tout cas si WebAssembly sert uniquement les intérêts d’Unity, je militerai pour la suppression du terme Assembly du nom de la techno, le nom de WebUnity ou WebApplication serait, du coup, plus approprié !

    Citation Envoyé par DonQuiche Voir le message
    En C++ c'est malheureusement tortueux du fait de la gestion mémoire, de la compilation en une seule passe et de l'absence de métadonnées.
    Pour info Ecmascripten a mis en place un export de métadonnée Objet par WebIDL, mais je n’ai pas réussi à l’utilisé, de plus compiler en C++ ODE fait perdre plus de 60% son API …
    ShaderElement : Bénéficier de l’accélération graphique simplement par une nouvelle balise HTML <shader>
    ODE.js : portage JavaScript du célèbre moteur physique 3D Open Dynamics Engine

  4. #24
    Expert confirmé Avatar de DonQuiche
    Inscrit en
    Septembre 2010
    Messages
    2 741
    Détails du profil
    Informations forums :
    Inscription : Septembre 2010
    Messages : 2 741
    Points : 5 485
    Points
    5 485
    Par défaut
    Citation Envoyé par p3ga5e Voir le message
    Mais bien sûr laissons la question d’interopérabilité de côté et laissons le champ libre à Unity l’utilisation des WebAssembly a leurs fin personnel !
    WebASM est une initiative de Mozilla, Microsoft et Google.

    Unity n'est qu'un des logiciels à l'utiliser et ne contrôle en rien cette techno, pas plus qu'ils ne contrôlent javascript. Même chose pour emscripten qui n'a pas été développé par Unity.

  5. #25
    Expert éminent sénior

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 749
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 749
    Points : 10 666
    Points
    10 666
    Billets dans le blog
    3
    Par défaut
    Si j'ai bien suivi c'est l'aboutissement d'une longue rivalité entre Mozilla avec asm.js d'un côté et Google avec Native Client (NaCl puis PNaCl) de l'autre. C'est quand même fort que ces 2 là + Microsoft aient réussi à tomber d'accord!

    Ca fait déjà plus d'un an que MS travaille à supporter asm.js, ils en dévoilent l'intérêt et la différence par rapport à JS ici:
    https://blogs.windows.com/msedgedev/...CoMVyQsGfRf.97

    Sur la page de Web Assembly, ils disent qu'ils comptent par la suite ajouter le support du multi-threading...

  6. #26
    Expert éminent Avatar de marsupial
    Homme Profil pro
    Retraité
    Inscrit en
    Mars 2014
    Messages
    1 760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Mars 2014
    Messages : 1 760
    Points : 7 185
    Points
    7 185
    Par défaut Un peu de cervelle, beaucoup d'économies
    A l'instar de php, en html5, il existe une balise <system> à sévèrement encadrée donc, oui, on peut parler de web app. Concept ancien du terminal-server. Fort utile et efficace, nécessitant une sécurisation solide du QoS. D'où le cloud, les containers et la réécriture de Libre Office en C/C++ par exemple.

    Imaginez les possibilités. Et la mort de C#. Et peut-être de Java côté serveur.
    Chrome a gagné. Suivi de Mozilla Quantum.

    Vous êtes libres de choisir. Nous, c'est fait.
    Repeat after me
    Le monsieur lutte pour la défense des libertés individuelles et collectives

    Repeat after me...

  7. #27
    Membre expert
    Profil pro
    undef
    Inscrit en
    Février 2013
    Messages
    957
    Détails du profil
    Informations personnelles :
    Localisation : France, Lot (Midi Pyrénées)

    Informations professionnelles :
    Activité : undef

    Informations forums :
    Inscription : Février 2013
    Messages : 957
    Points : 3 523
    Points
    3 523
    Par défaut
    Pour être crédible côté démo, il faudrait donner les spécifications de la machine de test. Parce que sur un vieux duo core ça ne doit autant briller que sur un i7

  8. #28
    Membre expert
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    2 872
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2011
    Messages : 2 872
    Points : 3 716
    Points
    3 716
    Par défaut
    Salut,

    Bon alors je viens de lire ce fil qui a été remonté et je me demande où ça en est cette histoire ?

    JS ne servira plus ou j'ai mal compris ? Moi qui commençais à m'y habituer...

    Bon j'aime bien aussi le C et c'est vrai que coté consommation mémoire je mettais déjà posé la question pour le JS mais je n'ai pas encore vu quelqu'un s'en préoccuper... Je n'ai pas encore vu quelqu'un dire par exemple ce script consomme tant de mémoire vive ou autres... D'ailleurs je ne sais même pas si c'est possible de le savoir...

    Pour l'instant c'est pour le C/C++ mais il y aura d'autres langages c'est ça ? Peut-être le JS et Java aussi alors ?

  9. #29
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    197
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 197
    Points : 300
    Points
    300
    Par défaut
    Bonjour,
    Citation Envoyé par Beginner. Voir le message
    D'ailleurs je ne sais même pas si c'est possible de le savoir...
    Je ne sais pas pour IE, Firefox, Opera ou Safari, mais dans Chrome, tu as un gestionnaire de tâches.
    Un petit shift + ESC et tu sais tout ce qu'il y a à savoir. Et même, si tu en veux plus, sur bouton droit tu peux ajouter une colonne qui te permettra de connaitre l'utilisation mémoire de tes scripts javascript.

  10. #30
    Expert éminent Avatar de marsupial
    Homme Profil pro
    Retraité
    Inscrit en
    Mars 2014
    Messages
    1 760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Mars 2014
    Messages : 1 760
    Points : 7 185
    Points
    7 185
    Par défaut
    Pour l'instant c'est pour le C/C++ mais il y aura d'autres langages c'est ça ? Peut-être le JS et Java aussi alors ?
    Mozilla a créé un transpileur inverse (Javascript vers C/C++). Dans tous les cas, la qualité du code sera à débugger lors du passage vers le web assembly.
    Mais on pourrait le faire en direct sans passer par le C/C++, ce qui serait une étape de moins donc un gain de temps : Javascript vers web assembly.

    Pour Java, demande à Oracle de rendre Sun ou alors OpenJDK.

    Reste que l'assembleur ARM et x86 diffèrent, donc MS continue avec ARM et l'amélioration de la communication réseau. (source ziff davis )
    Mais il existe un assembleur générique amplement suffisant pour l'essentiel des softs permettant de s'affranchir des spécificités matériels

    NB : Pour rappel, Kernhigan et Ritchie ont créé le C sur une base de compréhensibilité par l'être humain alors qu'UNIX avait été écrit en assembleur lié au matériel d'où les multiples erreurs de conversion lors de cast/autres de variables.
    Repeat after me
    Le monsieur lutte pour la défense des libertés individuelles et collectives

    Repeat after me...

  11. #31
    Membre expert
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    2 872
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2011
    Messages : 2 872
    Points : 3 716
    Points
    3 716
    Par défaut
    Merci à vous deux pour vos réponses.

    Sinon personne ne sait où en est ce projet ? Je n'ai pas l'impression que cela fasse beaucoup de "bruits", se pourrait-il qu'il soit abandonné ?

  12. #32
    Rédacteur/Modérateur

    Avatar de SylvainPV
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    3 375
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 3 375
    Points : 9 944
    Points
    9 944
    Par défaut
    C'est de l'open-source, tu peux suivre tous les travaux ici : https://github.com/WebAssembly

    Comme tu peux le constater, il y a des mises à jour très régulières, la dernière il y a 3 minutes. Donc non c'est loin d'être abandonné
    One Web to rule them all

  13. #33
    Membre expert
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    2 872
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2011
    Messages : 2 872
    Points : 3 716
    Points
    3 716
    Par défaut
    Ok merci.

  14. #34
    Inactif  
    Homme Profil pro
    feignant
    Inscrit en
    Mars 2015
    Messages
    300
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : feignant

    Informations forums :
    Inscription : Mars 2015
    Messages : 300
    Points : 0
    Points
    0
    Par défaut
    Mon rêve se réalise, je vais pouvoir faire des stack collision dans le navigateur !!!

  15. #35
    Chroniqueur Actualités

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Mars 2013
    Messages
    8 382
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Mars 2013
    Messages : 8 382
    Points : 196 418
    Points
    196 418
    Par défaut Les principaux navigateurs peuvent déjà livrer des versions avec WebAssembly activé par défaut
    Les principaux navigateurs peuvent déjà livrer des versions avec WebAssembly activé par défaut,
    en attendant les spécifications de la première version

    Étant donné que les applications Web gagnent de plus en plus en complexité, les éditeurs de navigateurs ont apporté de nombreuses optimisations à leur moteur d’exécution JavaScript, afin d’en améliorer les performances. Toutefois, pour ne pas évoluer de façon dispersée, ils se sont mis ensemble pour tirer parti du meilleur de leurs précédents investissements pour développer une solution qui pourra bénéficier d’une large prise en charge.

    C’est ainsi qu’est né le projet WebAssembly, qui est soutenu par Google, Mozilla, Microsoft et des développeurs du moteur de rendu Web Webkit. WebAssembly est un format binaire pour la compilation d’applications pour le Web.

    En novembre 2016, Google, Mozilla et Microsoft ont annoncé la disponibilité d’une WebAssembly Browser Preview. Cette étape a marqué entre autres :
    • une RC pour le design MVP (terme qui désigne la plus petite entité productible, utilisable et vendable dans le domaine informatique) qui inclut notamment la sémantique, le format binaire et l'API JS ;
    • des implémentations compatibles et stables de WebAssembly dans V8 et SpiderMonkey, dans les builds de développement de Chakra et en progression dans JavaScriptCore ;
    • une chaîne d'outils de travail pour les développeurs qui veulent compiler des modules WebAssembly à partir de fichiers sources C / C ++.

    Conformément à sa feuille de route, la WebAssembly Community Group a annoncé hier être arrivé la fin de cette étape.

    « Les membres WebAssembly CG représentant les quatre navigateurs Chrome, Edge, Firefox et WebKit, sont parvenus à un consensus sur le fait que la conception de la première API WebAssembly et le format binaire sont complets dans la mesure où aucun autre travail de conception n’est possible sans expérience de mise en œuvre et usage. Ceci marque la fin de la Browser Preview et indique que les navigateurs peuvent commencer à livrer WebAssembly par défaut. Dès lors, les fonctionnalités futures seront conçues pour assurer la compatibilité ascendante », a déclaré Luke Wagner, un ingénieur travaillant pour le compte de Mozilla et membre de la WebAssembly Community Group.

    Il a expliqué que le consensus inclut une API JavaScript et un format binaire accompagnés d'un interprète de référence. Il est possible de tester WebAssembly à l'aide de la chaîne d'outils Emscripten.

    « Les prochaines étapes consisteront à former un groupe de travail du W3C, pour élaborer des spécifications pour la version initiale de WebAssembly et de continuer à travailler sur l’itération des futures fonctionnalités au sein de l’actuel WebAssembly Community Group », a-t-il continué.

    Il est important de préciser que développer avec WebAssembly n’implique pas abandonner JavaScript. Comme le note Lin Clark, un ingénieur au sein de l’équipe Mozilla Developer Relations, « les développeurs n'ont pas besoin de choisir entre WebAssembly et JavaScript pour leurs applications. Cependant, nous nous attendons à ce que les développeurs échangent des parties de leur code JavaScript pour du WebAssembly ».

    Il a proposé une petite comparaison entre JavaScript et WebAssembly où WebAssembly s’avère plus rapide (et donc plus adapté ?) dans certains cas que JavaScript parce que :
    • faire de la récupération de données avec WebAssembly prend moins de temps, car il est plus compact que JavaScript, même lorsqu'il est compressé ;
    • décoder WebAssembly prend moins de temps que l'analyse de JavaScript ;
    • la compilation et l'optimisation prennent moins de temps avec WebAssembly étant donné que ce dernier est plus proche du code machine que JavaScript et a déjà subi une optimisation côté serveur ;
    • la réoptimisation n’est pas nécessaire puisque WebAssembly a des types et d'autres informations intégrés, de sorte que le moteur JS n'a pas besoin de spéculer quand il optimise de la façon dont il le fait avec JavaScript ;
    • l’exécution prend souvent moins de temps étant donné que l’ensemble d’instructions de WebAssembly est plus idéal pour les machines ;
    • la mémoire est gérée manuellement.

    Source : annonce du consensus, comparaison entre WebAssembly et JavaScript
    Contribuez au club : Corrections, suggestions, critiques, ... : Contactez le service news et Rédigez des actualités

  16. #36
    Membre éclairé

    Femme Profil pro
    Experte JS / Conseillère en best practices / Chercheuse en programmation
    Inscrit en
    Octobre 2007
    Messages
    740
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Experte JS / Conseillère en best practices / Chercheuse en programmation
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2007
    Messages : 740
    Points : 805
    Points
    805
    Par défaut
    Intéressant... mais pas pour demain, alors qu'on doit encore faire du compatible IE.
    Afin d'obtenir plus facilement de l'aide, n'hésitez pas à poster votre code de carte bancaire

    Mon GitHub

    Une alternative à jQuery, Angular, Vue.js, React, ... ? Testez anticore, en quelques secondes à peine !
    (Contributions bienvenues)

  17. #37
    Membre averti
    Homme Profil pro
    Développeur Java
    Inscrit en
    Février 2006
    Messages
    380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2006
    Messages : 380
    Points : 314
    Points
    314
    Par défaut
    Très bonne nouvelle !

  18. #38
    Membre extrêmement actif
    Profil pro
    Développeur
    Inscrit en
    Mars 2012
    Messages
    1 969
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mars 2012
    Messages : 1 969
    Points : 3 375
    Points
    3 375
    Par défaut
    Donc WebAssembly est lié à WebGL?
    Si la réponse vous a aidé, pensez à cliquer sur +1

  19. #39
    Membre confirmé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2009
    Messages
    215
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2009
    Messages : 215
    Points : 558
    Points
    558
    Par défaut
    hotcryx : je ne vois pas ce qui, dans cet article, t'as permis de lier Webassembly (qui se veut un format binaire pour le web, et donc permet d'écrire en n'importe quel langage, compiler vers webassembly pour utiliser ensuite dans le navigateur) avec WebGL, qui concerne la 3D dans le navigateur. Tu es le seul à avoir mentionné WebGL (que ce soit dans l'article ou les commentaires, aucune autre référence n'y est faite).
    Les technologies n'ont strictement rien à voir. On peut peut-être imaginer qu'un code au format Webassembly pourra utiliser, si nécessaire, la technologie WebGL si le but est d'afficher de la 3D. Mais à part cela, les buts des deux technologies sont tout à fait différents.

  20. #40
    Membre extrêmement actif
    Profil pro
    Développeur
    Inscrit en
    Mars 2012
    Messages
    1 969
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mars 2012
    Messages : 1 969
    Points : 3 375
    Points
    3 375
    Par défaut
    C'était une question
    Je sais qu'on ne parle pas de webGL mais il y a un article récent et quand je vois la démo, ça laisse supposer que ce pourrait être du webGL.
    N'était ce pas le moteur Unity dans la démo
    Si la réponse vous a aidé, pensez à cliquer sur +1

Discussions similaires

  1. Réponses: 2
    Dernier message: 12/04/2012, 09h18
  2. Réponses: 1
    Dernier message: 04/11/2011, 18h11
  3. Microsoft propose une version d'évaluation gratuite de Project 2010
    Par Gordon Fowler dans le forum Actualités
    Réponses: 10
    Dernier message: 18/06/2010, 15h47
  4. Réponses: 6
    Dernier message: 09/07/2009, 10h46
  5. Réponses: 0
    Dernier message: 08/07/2009, 14h56

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo