Version WASM
#RichnouLang vient de faire un grand pas en avant, avec la mise en place d'une version WebAssembly, c'est à dire utilisable dans le navigateur!!!
Dans le navigateur !
Première version ouverte, même si très expérimentale.
Pour tester https://wasm.richnou.ovh
Tout n'est pas encore terminé (on en est loin) mais au moins ça tourne. Quelques exemples accessibles directement.

La doc est chargeable (mais minimaliste), et bien sûr les fonctions de chargement/sauvegarde de fichiers non opérationnelles du fait des limitations du navigateur... Ce qui va me forcer à ajouter des fonctionnalités pour charger des éléments depuis des urls...
Ce qui me fait penser qu'il va falloir créer un plugin pour CodeMirror... et highlightjs...
Dans le navigateur !
Pour l'aspect technique, la version WASM est finalement incroyablement facile à faire.
Il "suffit" de rediriger les entrées/sorties depuis et vers le JavaScript, un fichier wasm_exec.js se chargeant de faire le pont entre le fichier main.wasm.
sequenceDiagram
participant DOM as DOM
participant JS as App Logic<br/>(JS)
participant WE as wasm_exec.js
participant WA as main.wasm<br/>(Go)
DOM->>JS: User input / Event
JS->>WE: Call exported Go function
WE->>WA: Invoke wasm function
WA-->>WA: Execute Go code
WA->>WE: Return result
WE->>JS: Resolve/Parse result
JS->>DOM: Update UI / Output
Dis comme ça... mais cela montre quand même que (toute modestie mise à part) le code GO du RichnouLang est plutôt bien organisé.
Performances
Côté performances, cela tient la route la plupart du temps, même si moins performant que la version cli.
J'ai pour l'instant peu testé cet aspect, mais deux hypothèses:
- j'ai testé sur la génération de grandes images, et c'est le transert de l'image qui est lent.
- c'est juste plus lent...
A suivre.