Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[FR] add webassembly #3320

Open
wants to merge 4 commits into
base: main
Choose a base branch
from
Open
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
23 changes: 23 additions & 0 deletions content/fr/webassembly.md
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.
guillaumebernard84 marked this conversation as resolved.
Show resolved Hide resolved
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, WebAssembly 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).
guillaumebernard84 marked this conversation as resolved.
Show resolved Hide resolved
guillaumebernard84 marked this conversation as resolved.
Show resolved Hide resolved

## 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.
guillaumebernard84 marked this conversation as resolved.
Show resolved Hide resolved
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.
guillaumebernard84 marked this conversation as resolved.
Show resolved Hide resolved
Cela ouvre de nouvelles possibilités et permet aux développeurs de réutiliser les bases de code et les bibliothèques existantes.
guillaumebernard84 marked this conversation as resolved.
Show resolved Hide resolved
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.