Nouvelles
Microsoft propose un grand changement de JavaScript : “Nous nous attendons à du scepticisme”
Microsoft a annoncé un projet ambitieux pour injecter une syntaxe de type dans ECMAScript, le standard JavaScript officiel.
Bien que cela puisse ressembler énormément à TypeScript, c’est différent.
La société soutient et collabore sur une proposition initiale de l’étape 0 pour apporter une syntaxe de type facultative et effaçable à JavaScript, intitulée “Proposition ECMAScript : Types en tant que commentaires”.
Ça lit:
Cette proposition vise à permettre aux développeurs d’ajouter des annotations de type à leur code JavaScript, permettant à ces annotations d’être vérifiées par un vérificateur de type qui est externe à JavaScript. Lors de l’exécution, un moteur JavaScript les ignore, traitant les types comme des commentaires.
Le but de cette proposition est de permettre aux développeurs d’exécuter des programmes écrits en TypeScript, Flow et d’autres sur-ensembles de typage statique de JavaScript sans aucun besoin de transpilation, s’ils restent dans un certain sous-ensemble raisonnablement large du langage.
Daniel Rosenwasser de Microsoft, responsable principal du programme pour TypeScript, a rédigé un article de blog complet le 9 mars expliquant la proposition, qui pourrait prendre des années à être élaborée si elle va de l’avant.
Il a déclaré que cela était lié à la tendance récente à une itération JavaScript plus rapide, ainsi qu’à moins d’étapes de construction, pour rendre le codage JavaScript plus rapide et plus simple. Cette tendance a été stimulée par les navigateurs modernes à feuilles persistantes qui, souvent, n’exigent plus des développeurs qu’ils compilent de nouvelles versions de JavaScript pour s’exécuter sur des environnements d’exécution plus anciens.
Comme l’indique la proposition ci-dessus, la syntaxe agirait comme des commentaires, n’affectant pas l’exécution du code environnant.
“L’idée de cette proposition est que JavaScript pourrait créer un ensemble de syntaxe pour les types que les moteurs ignorer entièrementmais quels outils comme TypeScript, Flow et d’autres pourraient utiliser”, a-t-il déclaré. “Cela nous permet de conserver les choses que vous aimez à propos de TypeScript – son expérience de vérification de type et d’édition – tout en supprimant le besoin d’une étape de construction dans développement.”
Voici un graphique montrant à quoi ressemblerait la boucle interne d’un développeur dans le nouveau schéma en ce qui concerne l’écriture et fonctionnement code:
Étant donné que la syntaxe de type pour JavaScript est apparue auparavant et que les développeurs offrent de nombreuses opinions différentes sur le fonctionnement d’une telle fonctionnalité, de nombreux détails doivent encore être étoffés. Rosenwasser a déclaré que, au minimum, la syntaxe devrait être ajoutée pour des choses comme :
- annotations de type sur les variables et les fonctions
- (facultatif) modificateurs (
?
) pour les paramètres et les membres de classe - déclarations de type (
interfaces
ettype
alias) - opérateurs d’assertion de type (
as
et!
)
Alors que d’autres constructions comme les modificateurs de visibilité — par exemple, public
, private
et protected
— pourraient également être dans la portée, d’autres comme les énumérations, les espaces de noms et les propriétés de paramètres seraient hors de portée car ils ont un comportement d’exécution observable.
“Ces fonctionnalités pourraient être proposées en tant que fonctionnalités ECMAScript distinctes sur la base des commentaires, mais notre objectif actuel est de prendre en charge un grand sous-ensemble de TypeScript qui, selon nous, pourrait être un ajout précieux à JavaScript”, a-t-il déclaré.
La proposition sera présentée lors de la prochaine réunion plénière de mars 2022 du groupe TC39 (“Specifying JavaScript”) de développeurs JavaScript, d’universitaires et d’autres personnes qui collaborent avec la communauté pour maintenir et faire évoluer l’implémentation de JavaScript, dans l’espoir de passer de l’étape 0 à Étape 1.
“Atteindre l’étape 1 signifierait que le comité des normes qui estime que la prise en charge de la syntaxe de type vaut la peine d’être envisagée pour ECMAScript”, a déclaré Rosenwasser. “Ce n’est pas une chose infaillible – il y a de nombreuses perspectives précieuses au sein du comité, et nous nous attendons à un certain scepticisme. Une proposition comme celle-ci recevra beaucoup de commentaires et un examen approprié. Cela peut impliquer de nombreux changements de conception. en cours de route, et peut prendre des années pour donner des résultats.
“Mais si nous réussissons tout cela, nous avons la chance d’apporter l’une des améliorations les plus percutantes au monde de JavaScript. Nous en sommes ravis, et nous espérons que vous l’êtes aussi.”
A propos de l’auteur
David Ramel est éditeur et rédacteur pour Converge360.
.