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 !

Microsoft propose d'introduire une syntaxe de type dans JavaScript,
Notamment le typage des variables et des paramètres

Le , par Bill Fassinou

79PARTAGES

16  0 
Microsoft a publié mercredi une proposition officielle pour une syntaxe de type dans ECMAScript, la norme officielle de JavaScript. La nouvelle syntaxe est destinée à introduire le typage des variables et des paramètres dans le langage de programmation fondamentalement non typé. La proposition de Microsoft semble plus rationnelle et plus légère que la syntaxe purement basée sur les commentaires que certains développeurs utilisent actuellement en JavaScript. Toutefois, cela devrait être totalement facultatif et orienté vers l'outillage.

Au sujet de la proposition, Microsoft a déclaré : « 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 externe à JavaScript. Au moment de l'exécution, un moteur JavaScript les ignore, traitant les types comme des commentaires. L'objectif de cette proposition est de permettre aux développeurs d'exécuter des programmes écrits en TypeScript, Flow, et d'autres surensembles de typage statique de JavaScript sans aucun besoin de transpilation, s'ils restent dans un certain sous-ensemble raisonnablement large du langage ».



En effet, avec TypeScript, qui vient de sortir en version 4.6, Microsoft propose depuis dix ans un langage de programmation en tant que surensemble de JavaScript, qui repose notamment sur le typage, comme son nom l'indique. Parmi les développeurs, certains considèrent l'absence de typage dans JavaScript comme une bénédiction en raison de sa flexibilité et de sa simplicité, tandis que d'autres y voient une malédiction en raison du risque accru d'erreurs. Cependant, dans l'enquête annuelle sur l'écosystème JavaScript (State of JavaScript), le typage statique est arrivé en tête de la liste des fonctionnalités les plus demandées au cours des deux dernières années.

Daniel Rosenwasser, responsable principal du programme TypeScript chez Microsoft, a publié mardi un billet de blogue détaillé sur le sujet. Selon lui, cette proposition s'inscrit dans la tendance récente à accélérer l'itération JavaScript et à réduire le nombre d'étapes de construction, afin de rendre le codage JavaScript plus rapide et plus simple. Rosenwasser explique que cette tendance a été stimulée par les navigateurs modernes à feuilles persistantes (evergreen browser) qui, souvent, ne demandent plus aux développeurs de compiler les nouvelles versions de JavaScript pour les exécuter sur les anciens runtimes.

Comme l'indique la proposition ci-dessus, la syntaxe agirait comme des commentaires, sans affecter la façon dont le code environnant s'exécute. « L'idée est que JavaScript pourrait se doter d'un ensemble de syntaxe pour les types que les moteurs ignoreraient entièrement, mais que des outils comme TypeScript, Flow et d'autres pourraient utiliser. Cela nous permet de conserver ce que vous aimez de TypeScript - sa vérification des types et son expérience d'édition - tout en supprimant la nécessité d'une étape de construction dans le développement », explique Rosenwasser dans son billet de blogue.

Le graphique ci-dessus montre comment la boucle interne d'un développeur se présenterait dans le nouveau schéma lorsqu'il s'agit d'écrire et d'exécuter du code. En outre, étant donné que la syntaxe de type pour JavaScript a déjà été évoquée et que les développeurs ont des avis très différents sur le fonctionnement d'une telle fonctionnalité, de nombreux détails doivent encore être précisés. Rosenwasser a déclaré que, au minimum, la syntaxe devrait être ajoutée pour des choses comme :

  • les annotations de type sur les variables et les fonctions ;
  • (éventuellement) des modificateurs ( ?) pour les paramètres et les membres de classe ;
  • les déclarations de type (interfaces et alias de type) ;
  • les opérateurs d'assertion de type (as et !) ;
  • les modificateurs de visibilité (par exemple public, private et protected) pourraient également entrer dans le champ d'application.


Mais les énumérations (enums), les espaces de noms et les propriétés de paramètres seraient hors du champ d'application de cette proposition puisqu'ils ont un comportement observable à l'exécution. « Ces fonctionnalités pourraient être proposées en tant que fonctionnalités ECMAScript distinctes en fonction des réactions, mais notre objectif actuel est de prendre en charge un large sous-ensemble de TypeScript qui, selon nous, pourrait constituer un complément précieux à JavaScript », a-t-il déclaré. La proposition sera officiellement soumise au comité de normalisation TC39 de l'ECMAScript lors de la prochaine réunion plénière de mars 2022.



En attendant, Microsoft l'a publiée en tant que proposition au stage 0 sur GitHub. Microsoft espère passer du stade 0 au stade 1 après la présentation. Atteindre le stade 1 signifierait que le comité de normalisation estime que la prise en charge de la syntaxe de type vaut la peine d'être envisagée pour ECMAScript. « Ce n'est pas gagné d'avance : il y a de nombreuses perspectives intéressantes au sein du comité, et nous nous attendons à une certaine dose de scepticisme », a déclaré Rosenwasser.

« Une proposition comme celle-ci fera l'objet de nombreux retours et d'un examen minutieux. Elle peut impliquer de nombreux changements de conception en cours de route, et peut prendre des années avant de donner des résultats. Mais si nous réussissons, nous aurons la possibilité d'apporter l'une des améliorations les plus importantes au monde du JavaScript. Nous sommes enthousiasmés par cela, et nous espérons que vous l'êtes aussi », a-t-il ajouté.

Source : Microsoft (1, 2)

Et vous ?

Quel est votre avis sur le sujet ?
Que pensez-vous de la proposition de Microsoft ?
Pensez-vous que le typage statique devrait être ajouté au JavaScript ?

Voir aussi

State of JavaScript 2020 : TypeScript leader incontestable des déclinaisons de JavaScript, le typage statique devient la fonctionnalité la plus demandée et React reste le framework front-end dominant

State of JavaScript 2021 : React reste de loin le framework front-end le plus utilisé par les développeurs, mais en terme de satisfaction il est éclipsé par Solid et Svelte

État de JavaScript en 2019 : les développeurs aiment un peu plus React, Angular est en déclin, un groupe de développeurs pense que JS est « trop complexe »

Le langage JavaScript est-il responsable de la lenteur des sites Web de nos jours ? Oui, selon un expert

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

Avatar de Doksuri
Expert confirmé https://www.developpez.com
Le 10/03/2022 à 21:44
enfin une bonne nouvelle ! (surtout de la part de M$ xD) ya plus qu'a espérer que ce soit adopté...
7  2 
Avatar de CoderInTheDark
Membre émérite https://www.developpez.com
Le 14/03/2022 à 10:29
Ils veulent se débarrasser de typescript au profit de l'ecma.

PHP a évolué vers le typage pourquoi pas JavaScript.
Pour moi qui ai été formé en C et fais du Java je dis ah oui ouii
5  2 
Avatar de Madmac
Membre extrêmement actif https://www.developpez.com
Le 11/03/2022 à 20:35
Pas vraiment une bonne nouvelle, puisque que cela ralentit le programme au moment de l'exécution. Un interpréteur dans le genre de TypeScript pour le développement qui génèrerait du code Javascript. Permettrait les mêmes avantages mais protègerait la rétro-compatibilité des librairies existantes. Mais ce ne serait pas à l'avantage de Microsoft qui lui, désire surtout vendre du code.
4  3 
Avatar de grunk
Modérateur https://www.developpez.com
Le 16/03/2022 à 17:17
Peut être que le bon plan ca serai de voir les navigateurs supporter TS nativement en plus de js. Comme ca tout le monde est content.
2  1 
Avatar de Watilin
Expert éminent https://www.developpez.com
Le 18/03/2022 à 11:50
Citation Envoyé par grunk Voir le message
Peut être que le bon plan ca serai de voir les navigateurs supporter TS nativement en plus de js. Comme ca tout le monde est content.
Citation Envoyé par frfancha Voir le message
C'est clairement le plan à long terme de Microsoft.
Ce n’est pas comme ça que j’ai compris le truc. J’ai plutôt l’impression que Microsoft arrête d’essayer de remplacer JS par TypeScript, et essaye maintenant d’améliorer directement JS en y introduisant les types explicites, une amélioration que personnellement j’attends depuis longtemps, et je pense ne pas être tout seul là-dessus.

Et, je suis pas le dernier quand il s’agit de critiquer MS, mais là avec TypeScript ils ont l’expérience d’un langage proche de JS et qui a des types, donc j’aurais tendance à faire confiance à leur expertise sur ce plan.
2  1 
Avatar de emilie77
Membre éprouvé https://www.developpez.com
Le 10/03/2022 à 17:26
En php fonctionne
1  1 
Avatar de frfancha
Membre éprouvé https://www.developpez.com
Le 16/03/2022 à 23:39
Citation Envoyé par Madmac Voir le message
Pas vraiment une bonne nouvelle, puisque que cela ralentit le programme au moment de l'exécution. Un interpréteur dans le genre de TypeScript pour le développement qui génèrerait du code Javascript. Permettrait les mêmes avantages mais protègerait la rétro-compatibilité des librairies existantes. Mais ce ne serait pas à l'avantage de Microsoft qui lui, désire surtout vendre du code.
Ca ralentit rien du tout, tu restes libre de passer babel sur ton TypeScript avant de l'envoyer au browser.
Et si on ajoute un jour à la syntace un commentaire du style "strict typescript" qui permet au compilateur de décider que let x:number dit "vraiment" que x est un nombre et que c'est n'est pas juste une décoration ça ouvre même la porte à plein d'otpimisations.

Citation Envoyé par Madmac Voir le message
Le problème avec cette solution est que tous les codes existants devienne caduques.
Absolument pas

Citation Envoyé par grunk Voir le message
Peut être que le bon plan ca serai de voir les navigateurs supporter TS nativement en plus de js. Comme ca tout le monde est content.
C'est clairement le plan à long terme de Microsoft.
1  1 
Avatar de melka one
Membre expérimenté https://www.developpez.com
Le 17/03/2022 à 19:43
Supprimer JavaScript pour un autre langage ne résoudra pas le problème du savoir coder, être créatif et pas de mauvaise critique par ce que l'on y arrive pas.
2  2 
Avatar de melka one
Membre expérimenté https://www.developpez.com
Le 12/03/2022 à 20:00
jour

j'ai trouve mieux

1  2 
Avatar de Mister Nono
Membre chevronné https://www.developpez.com
Le 14/03/2022 à 17:57
Autre solution : ne plus faire de js.
2  3