-
Notifications
You must be signed in to change notification settings - Fork 544
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Signed-off-by: Guillaume BERNARD <[email protected]>
- Loading branch information
1 parent
e6abd6a
commit 8bb4b6d
Showing
1 changed file
with
23 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,23 @@ | ||
--- | ||
title: WebAssembly | ||
status: Completed | ||
category: Concept | ||
tags: ["Application", "", ""] | ||
--- | ||
|
||
WebAssembly (souvent abrégé en Wasm) est un format d'instructions binaires conçu comme une cible de compilation portable pour des langages de haut niveau tels que C, C++, Rust et autres. Il permet le déploiement d'applications clientes et serveur sur le web. | ||
Il s'agit d'un format de code à octets (bytecode en anglais) de bas niveau qui peut être exécuté dans une machine virtuelle, généralement intégrée dans les navigateurs web. Bien qu'initialement développé pour le web, Web Assembly est un moteur d'exécution universel et est utilisé dans des environnements autres que le web, tels que l'internet des objets (IoT en anglais) et l'informatique en périphérie (Edge Computing en anglais). | ||
|
||
## Problème auquel il répond | ||
|
||
Pendant de nombreuses années, la pile LAMP (Linux Apache MySQL PHP) a été la norme pour les applications web. Plus tard, Javascript a dominé le développement d'applications frontales et les applications basées sur node.js sont devenues la norme. Au fur et à mesure que les technologies autour du web évoluaient, elles favorisaient fortement les langages interprétés, qui sont généralement moins performants que les langages compilés, malgré les avancées technologiques. | ||
Bien que JavaScript se soit amélioré au fil des années, il reste confronté à des limites de performance lors de l'exécution de tâches à forte intensité de calcul. | ||
Les langages interprétés qui sont compilés au moment de l'exécution connaissent souvent des problèmes de performance et de fonctionnalité lorsque le code est exécuté dans différents environnements. À l'inverse, les binaires compilés s'exécutent généralement de la même manière tant qu'ils ont été compilés correctement. Cependant, historiquement, un binaire compilé est moins adapté à l'environnement web. | ||
|
||
## Quelle en est l'utilité | ||
|
||
WebAssembly fournit un format binaire de bas niveau qui peut être exécuté à des vitesses proches du niveau natif, ce qui permet aux applications web d'effectuer des calculs complexes de manière efficace. | ||
Il permet aux développeurs de créer des applications web en s'appuyant sur leurs compétences existantes dans des langages tels que C, C++, Rust et autres. | ||
Cela ouvre de nouvelles possibilités et permet aux développeurs de réutiliser les bases de code et les bibliothèques existantes. | ||
En outre, les modules WebAssembly peuvent fonctionner de manière cohérente sur différents navigateurs, systèmes d'exploitation et appareils, ce qui réduit la nécessité d'un code spécifique à la plateforme. | ||
Dans l'ensemble, WebAssembly répond aux limitations de performance, aux restrictions de langage, à la portabilité du code, aux problèmes de sécurité, à la taille du code et aux problèmes de temps de chargement, offrant ainsi un environnement plus robuste et plus flexible pour le développement d'applications web. |