Lin Clark, un ingénieur de Mozilla définit WebAssembly comme étant : « un moyen de prendre du code écrit dans des langages de programmation autres que JavaScript et d'exécuter ce code dans le navigateur ». Cela permet de déployer une application sur un périphérique avec un navigateur Web compatible sans passer par des étapes d'installation explicites. L'application sera exécutée dans un bac à sable, séparée des autres programmes en cours d'exécution. De la sorte, les défaillances du système ou les vulnérabilités logicielles ne pourront pas être exploitées. Cette technique est appropriée pour les applications qui n'ont pas besoin d'un accès complet aux fonctionnalités du périphérique, mais qui bénéficient d'un processus d'installation rapide et simple.
Qt pour WebAssembly est actuellement en développement. Une version d'aperçu technique est prévue pour la version 5.11.0 de Qt. Ce qui permettra d'essayer de lancer des applications Qt directement dans la fenêtre du navigateur.
Pour la compilation et l'exécution des applications, vous pourriez utiliser /path/to/qmake && make, comme d'habitude avec Qt. Ensuite, il faudra démarrer un serveur web. Finalement, dans un navigateur web, vous pourriez entrer localhost:8000/appname.html. Les développeurs de Qt disent avoir déjà fait le test sur Chrome, Firefox et Safari (sur ordinateur).
La commande /path/to/emscripten/emrun --browser=firefox appname.html, vous pourriez également l'utiliser.
Les développeurs de Qt ont mis à disposition une liste de problèmes pas encore résolus de Qt pour WebAssembly. Entre autres :
- il n'est actuellement pas possible d'utiliser Windows en tant que plateforme hôte, mais il est possible d'utiliser le sous-système Windows pour Linux ;
- Qt Quick utilisera actuellement le backend « logiciel », ce qui affectera les performances pour les interfaces utilisateurs compliquées et désactivera également l'utilisation des effets de shader. Une solution pour cela arrive bientôt ;
- en raison de la prise en charge de threads (ou fils d'exécution) désactivée dans WebAssembly pour le moment, la chaîne de configuration pour certains nombres va générer Qt sans le support des threads. Si votre application les utilise, cela peut entraîner des effets inattendus.
Pour avoir une idée du rendu avec WebAssembly, voir ci-dessous une vidéo de Zen Garden proposée par Epic Games.
Sources : Qt Blog, Qt for WebAssembly
Et vous ?
Qu'en pensez-vous ?
Voir aussi :
WebAssembly a-t-il pour vocation de remplacer à long terme JavaScript ?, le standard est au centre des discussions des développeurs web
WebAssembly : Chrome, Firefox et Edge peuvent déjà livrer des versions de leurs navigateurs, avec WebAssembly activé par défaut
Le support de WebAssembly est désormais disponible dans tous les principaux navigateurs, Safari et Microsoft Edge emboîtent le pas à Firefox et Chrome