Je pense que ça n'a pas de sens.
Un des principaux avantage de JS est de pouvoir dynamiquement faire évoluer ses objets.
Ajouter supprimer remplacer des méthodes et des membres.
si vous passez au typage fort (contraint) pour rendre ce genre de chose utilealors vous perdez cette fonctionnalité essentielle de javascript. car à quoi va vous servir de savoir que value est une instance de Type si l'objet a perdu ses membres.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 var fct; fct = function fct(value) { if (!(value instanceof Type)) { throw new Error('value must be an instance of Type'); } };
Si vous voulez pouvoir faire ça il est obligatoire que le langage interdise l'ajout/suppression/modification de membres ou de méthodes.
Vous vous retrouvez alors comme avec les autres langages à base de class Statiques à devoir multiplier le code pour faire des choses très simples en JS.
Je sais qu'on m'a mis sur le dos une étiquette anti classe statique. Il n'en est rien. J'utilise quotidiennement ces concepts.
si vous représentez une personne dans votre système par une instance, les capacités de votre "objet" devraient suivre l'évolution de la dite personne. or un bébé n'a pas les mêmes caractéristiques qu'un vieillard.
Avec un typage statique il faut créer de nouveaux objets à chaque fois que la personne évolue pour passer de Bébé à Enfant Ado Adulte etc.. mais la vie n'est pas ainsi. On reste toujours la même personne. Une nouvelle personne n'est pas créée quand on quitte l'enfance pour devenir un ado. De plus la transition est progressive, elle n'est pas la même pour tous les individus.
JS est un langage qui permet de faire vivre ces objets en les faisant évoluer, chose que ne permet pas les langages avec un typage contraint et statique.
Je ne juge pas l'un ou l'autre je pense simplement que les domaines d'application sont différents bien qu'il y ait des zones de recouvrement. Vouloir contraindre JS à devenir un langage à typage contraint et statique c'est signer son arrêt de mort. Il n'aurait alors rien à apporter. Il existe déjà beaucoup de langages dans ce domaine.
Je pense par contre qu'il a la place pour d'autre langage embarqué dans le navigateur.
La norme HTML le prévoyait et il y a eu vb par exemple dans IE.
Il manque donc juste aujourd'hui un consensus pour adopter un langage de ce type dans le navigateur à côté de JS.
A+JYT
Partager