Aide En Informatique
Latest Posts:

Qu'est ce que les webassembly et pourquoi il faut le marquer à l'oeil?
Qu'est ce que les webassembly et pourquoi il faut le marquer à l'oeil?

Les webAssembly(wasm), BLAZOR et la deuxième guerre des technologies web.

Je vous ai parlé ici plusieurs fois des WebAssembly ou plus simple wasm qu'il faut etre curieux pour comprendre de quoi il s'agit car un dev doit etre en pertpetuel recherche de connaissance et connaitre qu'une chose existe et comment elle fonctionne est un atout majeur pour faire une analyse quand on veut mettre sur pied une plateforme informatique.

Le monde web, controllé par les navigateurs, fonctionne avec le triplet HTML+CSS+JS bref avec javascript car au finish, meme le HTML+CSS sont convertit en javascript à travers la structure de donnée DOM(Document Object Model) pour etre ensuite compilé en code binaire et executer dans la machine de l'utilisateur (la machine ou est installé le navigateur). La première guerre du web a été celle de rendre compatible les technologies web à tous les navigateurs car au début chacun en faisait à sa tete et les developpeurs devaient faire le meme travail plusieurs fois pour rendre leur site web compatible avec tous les navigateurs, la standardisation qui a vu le jour des consortium comme Ecmascript puis le w3c avec les HTML 5 par exemple, a levé cette difficulté et désormais tous les navigateurs interpretent de la meme manière les code HTML +CSS +JS.

La deuxième guerre des technologies web s'est tournée vers les performances de javascript, je rappelles ici que de plus en plus on parle d'application web et non de site web car l'idée c'est de pouvoir faire tout ce qu'on fait dans une application lourde/desktop aussi dans un navigateur en ayant la meme performance, Ajax et les single page application ont apporté un début de solution, mais dans la melé, le wasm ou les webassembly ont été standardisés, et  pour mieux comprendre les web assembly, il faut d'abord comprendre comment le code js est compilé et executé dans la machine de l'utilisateur.

Dans l'image 1, le fichier javascript doit d'abord etre importé du serveur dans le navigateur puis il est ensuite parser par le moteur javascript du navigateur par exemple moteur V8 de google chrome ou Chakra de microsoft edge, après le parsing, il est ensuite traduit en bytecode puis successivement compilé en JIT(Just In Time Compilation) en code binaire native de la machine ou est executée le navigateur, tout ce processus demande beaucoup de temps.

En image 2, le webasembly prend une approche differente en faisant le parsing + compilation non plus dans le navigateur mais sur le serveur, donc le resultat est en fait un format binaire qu'on appelle wasm qui peut etre chargé dans le navigateur quand l'utilisateur accède au site et executé en JIT directement dans le navigateur ce qui rend l'application plus performante ainsi- ceci donne une grande grande opportunité pour exécuter du code non javascript dans un navigateur par exemple executer du code C, C++, java, C# etc.. dans un navigateur car il suffit de les compiler en format binaire wasm et le tour est joué, allez par exemple ici sur le site de google earth (https://earth.google.com/.../@13.55190623,128.92590147...), au debut, google earth est une application desktop car c'est une application qui demande beaucoup de resource et impossible de le faire via web et js, donc il a fallu la standardisation des wasm qui est actuellement present dans tous les navigateurs pour voir cela possible, au debut du lancement de la page de google earth c'est un peu lent car le wasm doit etre chargé en memoire mais une fois faite, c'est une prestation incroyable. C'est les webassembly qui de nos jours permettent par exemple de faire des jeux video avec les framework comme unity et de le convertir en web et d'avoir les memes prestations que sur un PC, d'ailleur des gens on pris une version de windows 2000 l'ont entièrement compilé en wasm et mis ça comme site web, incroyable (https://bellard.org/jslinux/vm.html?url=https://bellard.org/jslinux/win2k.cfg&mem=192&graphic=1&w=1024&h=768) ce que vous voyez dans ce lien n'est pas une machine virtuelle mais un webassymbly pour tout vous dire la potentialité de cet instrument et dans le futur beaucoup de site web pourront utilisé autre langage de programmation different de javascript pour faire du web c'est le cas de BLAZOR de microsoft.

Comment fonctionne BLAZOR la première solution SPA basé sur wasm?

les technologies microsoft depuis des années sont basées sur ce qu'on appelle .net ou dotnet qui de nos jours est devnu dotnet core, dotnet en fait c'est une specification mais qui avant était seulement implementé pour windows uniquement car windows est microsoft, cependant des developpeurs independant avaient decidé de faire une implementation de dotnet qui pouvait fonctionner en dehors de windows donc par exemple sur linux ou sur MAC, ils ont donc crée le framework Mono qui est un environement d'execution du code qui respecte la specification dotnet comme par exemple le c# dans tous les plateformes, Mono lui meme est écris en c++ et c'est Mono qui a été utilisé pour faire du mobile avec Xamarin et par la suite microsoft a acheté et adopté mono dans ses plateformes. Comme il est très facile de compiler du c++ en format wasm(webassembly), Mono étant C++, Mono etant aussi un environnement d'execution du code dotnet donc du c#, la boucle était bouclée Lol, les technologies web avec la plateforme asp.net MVC qui sont basées sur razor pouvait donc etre compilé dans Mono qui est successivement traduit en wasm et servit au navigateur ceci s'appelle BLAZOR ainsi, on peut completement de nos jours faire du web et de la SPA avec BLAZOR sans meme l'ombre de javascript.

Happy Coding


Author: admin
29.09.2022, 13:18
Category: SPA-WebAssembly
Comments: 0
Views: 345
-

Share

Comments (0)
There are no comments yet.

Leave A Comment
processing...