IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

Le projet AssemblyScript compile un sous-ensemble de TypeScript en WebAssembly
Il est open source et disponible sous licence Apache 2.0

Le , par Michael Guilloux

565PARTAGES

8  0 
AssemblyScript est un projet qui vise à créer un pont entre WebAssembly et le surensemble JavaScript typé de Microsoft, TypeScript. WebAssembly est un langage de programmation binaire de bas niveau pour le développement d’applications dans les navigateurs Web. Introduit en 2015, il est actuellement standardisé dans le cadre du W3C. WebAssembly est destiné à dépasser les performances de JavaScript en matière d'exécution d'opérations à forte intensité de calcul dans un navigateur, avec un format de code binaire portable conçu pour rendre les applications Web plus rapides.

D’après la page GitHub du projet, AssemblyScript définit un sous-ensemble de TypeScript qu'il compile en WebAssembly. Il vise à fournir à toute personne avec un background en TypeScript et les API JavaScript standard un moyen confortable de compiler en WebAssembly, éliminant la nécessité de basculer entre les langages ou d'en apprendre d'autres uniquement à cette fin.

Ce que fait AssemblyScript sous le capot, c'est qu'il « relie » l'API du compilateur de TypeScript au backend de Binaryen (un compilateur et toolchain pour WebAssembly, écrit en C ++.) Il faut également noter que le compilateur lui-même est écrit et basé sur TypeScript et aucune dépendance binaire n'est requise pour commencer à l'utiliser. En outre, « chaque programme AssemblyScript est syntaxiquement valide en TypeScript, mais pas nécessairement sémantiquement », est-il précisé sur la page GitHub du projet.


Plutôt que de procéder à une réimplémentation aussi proche que possible de TypeScript au détriment de la performance, AssemblyScript tente, « aussi raisonnable que possible », de supporter ses fonctionnalités, en laissant intentionnellement de côté certaines constructions dynamiques. Il faut noter que :

  • tous les types doivent être annotés pour éviter les conversions implicites de type indésirables ;
  • les paramètres optionnels de fonction nécessitent une expression d'initialisation ;
  • les types d'union (sauf ClassType | null représentant un nullable), any et undefined ne sont pas pris en charge par conception ;
  • le résultat des expressions logiques &&/|| est toujours bool.

Le développement d’AssemblyScript est actuellement en phase bêta comme l'indique son développeur principal, Daniel Wirtz. Le projet est disponible sous licence Apache, version 2.0. Vous pouvez également déjà tester AssemblyScript directement dans votre navigateur.

Source : GitHub

Et vous ?

Que pensez-vous de l’utilité de projet ?
L'avez-vous déjà testé ? Qu'en dites-vous ?

Une erreur dans cette actualité ? Signalez-nous-la !

Avatar de
https://www.developpez.com
Le 13/09/2017 à 1:29
Web assembly n'a pas vocation a remplacer le JS coté front end mais à le soulager. En gros tu crées une sorte d'API pilotable par le JS.

Ce genre de projet a beaucoup de potentiel car pour créer un module wasm aujourd'hui tu dois le coder en C/C++, et je serais bien curieux de connaître la proportion de dev. web compétents dans l'un de ces langages.
4  1 
Avatar de Vulcania
Membre éclairé https://www.developpez.com
Le 12/09/2017 à 17:29
@sbeex :
ça rien à voir, c'est du typescript avec une nouvelle cible de compilation, et c'est un projet très intéressant vu que ça permet de s'échapper complètement du javascript, après ben forcément c'est pas tout à fait du typescript parce tout n'est pas encore implémenté.
2  1 
Avatar de yahiko
Rédacteur/Modérateur https://www.developpez.com
Le 12/09/2017 à 18:55
Pour répondre à la question précédente, l'équipe TypeScript ne prévoit pas à court ou moyen terme de supporter le WebAssembly.
D'où l'existence de ces projets "montés dans un garage".
AssemblyScript est l'un de ces projets, prometteurs, auquel je participe même si les difficultés à surmonter pour faire le pont entre le WebAssembly et TypeScript sont assez colossales.
1  0 
Avatar de Vulcania
Membre éclairé https://www.developpez.com
Le 13/09/2017 à 8:24
Citation Envoyé par sbeex Voir le message
J'ai rarement lu autant de contradiction dans une seule phrase

Plus sérieusement je trouve vraiment ridicule de faire un projet a côté de typescript qui utilise du typescript. Ce projet a moins d'être supervisé par une entreprise (comme c'est le cas de typescript par exemple) ne sera jamais en phase avec typescript... Pourquoi ne pas tout simplement proposer au projet typescript d'ajouter ce compilateur et travailler main dans la main ?

Diviser pour mieux régner c'est bien mais diviser pour bâcler c'est moins bien.

PS: lâchez vos moins si ça vous fait zizir c'est pas en forkant à tout va qu'on améliore la vie des devs
T'es juste complètement à côté de la plaque, il y a pas de fork dans cette histoire, mais une nouvelle implémentation, d'où tes -1.
2  1 
Avatar de Paleo
Membre éclairé https://www.developpez.com
Le 13/09/2017 à 12:35
Citation Envoyé par Mrsky Voir le message
Web assembly n'a pas vocation a remplacer le JS coté front end mais à le soulager. En gros tu crées une sorte d'API pilotable par le JS.
C'est aussi ce que j'ai compris.

Citation Envoyé par Mrsky Voir le message
Ce genre de projet a beaucoup de potentiel car pour créer un module wasm aujourd'hui tu dois le coder en C/C++, et je serais bien curieux de connaître la proportion de dev. web compétents dans l'un de ces langages.
D'un autre côté, si les Web Assemblies sont au JavaScript ce que les modules PHP sont au PHP, le langage C++ ne devrait pas empêcher l'écosystème de grandir. Pour PHP aussi les modules sont faits en C++.
1  0 
Avatar de koyosama
Membre éprouvé https://www.developpez.com
Le 12/09/2017 à 22:00
Enfin un projet coherent. Si il y a moyen de se debarasser de Javascript je suis preneur.
Meme utiliser Typescript, tu dois connaitre un peu Javascript. Et puis le web assembly a ete cree pour sa. J'aimerais bien quelque chose de plus rapide que Javascript avec les syntax et la logique des languages classiques.
J'aimerais bien qu'il le fasse pour Ruby. Non Coffeescript sort du Javascript et tu sens toujours cette syntax Javascript derriere a l'utilisation, je veux un full Ruby to Web Assembly.
0  0 
Avatar de koyosama
Membre éprouvé https://www.developpez.com
Le 13/09/2017 à 10:07
Citation Envoyé par Mrsky Voir le message
Web assembly n'a pas vocation a remplacer le JS coté front end mais à le soulager. En gros tu crées une sorte d'API pilotable par le JS.

Ce genre de projet a beaucoup de potentiel car pour créer un module wasm aujourd'hui tu dois le coder en C/C++, et je serais bien curieux de connaître la proportion de dev. web compétents dans l'un de ces langages.
Pilotable par Js pas sure. Web Assembly vient de l'initiative ASM.js ou tu peux faire du C / C++ et le transformer en JS.
Comme toi, comme tout language c'est complementaire. JS ne pourra disparaitre. Mais je pense qu'il regle deux problemes :
  • Le choix du langage cote navigateur. Apres tout on a encore des trucs sous flash, sous Java. Apres on a Dart, Typescript, Coffeescript, ... pour au final se retrouver avec du Javascript.
  • La vitesse, je ne connais toujours pas de jeux online via le browser qui existe sans utiliser flash. J'ai essayer par exemple EmpireofCode car je voulais une alternative a Screeps (Non coding game n'est pas le meme concept). Mais que ce soit screeps ou EmpireofCode, sur un vieux ordinateurs, une vielle connexion a 10 mega (qui n'est pas le plus lent), c'est juste la misere.


Je ne veux pas mentionner Javascript car c'est soit complementaire ou soit pas du tout. C'est a votre usage mais le but est de ne pas empecher l'autre.
Et puis Web Assembly ne sera pertinent avant 3-4 ans. Un language met en moyenne cette periode pour devenir stable et un conpcet navigateur en plus. Mais sa va dans la bonne direction.
0  0 
Avatar de Paleo
Membre éclairé https://www.developpez.com
Le 13/09/2017 à 12:29
Citation Envoyé par yahiko Voir le message
auquel je participe
Ah ? Eh bien, bon courage.

Par curiosité, quelle est l'approche ? Réécrire un parseur from scratch (mais sans dépendances wahou) ? Ou bien arrivez-vous à utiliser le compilateur TypeScript pour accéder à l'AST et générer une nouvelle sortie ?
0  0 
Avatar de
https://www.developpez.com
Le 13/09/2017 à 23:26
Citation Envoyé par koyosama Voir le message
Pilotable par Js pas sure. Web Assembly vient de l'initiative ASM.js ou tu peux faire du C / C++ et le transformer en JS.
Je ne sais pas pour ASM.js, mais Web Assembly n'a pas pour objectif de transformer du C++ en JS. Un module wasm c'est un genre de programme exécutable par ton navigateur, et ton navigateur offre une API en javascript pour faire le pont entre ton appli web et ce programme. L'exemple des jeux est bon car on peut imaginer qu'un module existe pour mettre ta carte graphique à profit, ce que tu ne peux pas (à ma connaissance) faire en JS simple.

Mozilla possède une documentation sympa pour web assembly (je met pas le lien car ça à été supprimé par le passé je ne sais pas trop pourquoi, une recherche simple t'y amènera).

Citation Envoyé par Paleo Voir le message
D'un autre côté, si les Web Assemblies sont au JavaScript ce que les modules PHP sont au PHP, le langage C++ ne devrait pas empêcher l'écosystème de grandir. Pour PHP aussi les modules sont faits en C++.
Bien vu ! Je ne sais pas trop si ces modules vont être des "simples" drivers qui font le pont entre ton hardware et ton navigateur, ou si ça va être des applications type framework genre le prochain Angular/React, ou carrément l'application complète genre Youtube.
0  0 
Avatar de sbeex
Membre actif https://www.developpez.com
Le 12/09/2017 à 18:23
Citation Envoyé par Vulcania Voir le message
ça rien à voir, c'est du typescript... ça permet de s'échapper complètement du javascript ... forcément c'est pas tout à fait du typescript
J'ai rarement lu autant de contradiction dans une seule phrase

Plus sérieusement je trouve vraiment ridicule de faire un projet a côté de typescript qui utilise du typescript. Ce projet a moins d'être supervisé par une entreprise (comme c'est le cas de typescript par exemple) ne sera jamais en phase avec typescript... Pourquoi ne pas tout simplement proposer au projet typescript d'ajouter ce compilateur et travailler main dans la main ?

Diviser pour mieux régner c'est bien mais diviser pour bâcler c'est moins bien.

PS: lâchez vos moins si ça vous fait zizir c'est pas en forkant à tout va qu'on améliore la vie des devs
1  2