J'avoue ne pas comprendre pas mal de réflexion
Tout se passe comme si on utilisait C++ en écrivant encore du C des années 70.
Et, on trouverait C++ vieillot.
JS est fait de deux choses.
la première c'est le langage, la deuxième c'est l'interaction avec le DOM
La première est une implémentation de EcmaScript et n'a rien à envier à d'autres langages. On peut toujours discuter des avantages du fortement type face au faiblement typé. Du typage statique face au typage dynamique. Les deux ont leurs avantages. EcmaScript est un langage à Objet (pas un langage à Classe)
Et toutes les notions d'héritage et polymorphismes sont présentes. Ce n'est pas parce que les développeurs écrivent du JS purement fonctionnel et avec des variables globales que le langage n'a pas ces capacités.
La deuxième relève du W3C l'api DOM est le standard pour les interactions entre le DOM et le langage. Là encore l'API peut être critiquable, mais elle a le mérite d'exister. Alors oui on voit des Lib comme JQuery qui propose une autre API avec le DOM. Et là encore, on voit bien trop souvent un mauvais usage de l'API. Qui est en fait une approche historique. On peut continuer à passer son temps à rechercher dans le DOM des éléments à manipuler ou utiliser pleinement les capacités de l'API DOM et du langage. Je constate que l’on continue à privilégier l'approche d'y a 10 ans, époque ou le moteur HTML était beaucoup plus performant que JS/DOM. Or aujourd'hui, ce n'est plus le cas. Là encore, on fait du C avec C++.
Je comprends tout de même l'arrivée de Dart. Le couple EcmaScript/DOM est né pour faire du Script sur le web (côté serveur). Tout comme on a le Bash et autre Shell script. Aujourd'hui lorsqu'on fait un Shell script on est bien content d'avoir un interprète, un langage dynamiquement typé, et possédant quelque structure de base. Mais on ne développe pas d'appli lourde avec. Pour ça on passe à C++, Java, etc. ce qui se passe aujourd'hui avec JS c'est qu'on veut continuer à faire du Scripting, mais aussi développer des applis avec. Lorsqu'on fait un script, on a besoin de quelques objets créés à la volée, détruits de même et rarement des structures très complexes. Alors que lorsqu'on développe une appli lourde c'est plutôt le contraire. Dart est pour moi un peu comme python ou Perl. Il tente de se situer entre le scripting type Bash et le codding genre C++. et s'il apparait aujourd'hui c'est qu'il y a un réel besoin.
Quant à remplacer le JS, je n'y crois pas du tout. Tout comme avec le Shell, on aura toujours besoin d'écrire un petit script pour ceci ou cela et on ne voudra pas mettre l'artillerie lourde pour ça.
La question, que l'on peut se poser, c'est : que manque-t-il à EcmaScript aujourd'hui ? Pour moi la réponse est simple. EcmaScript c'est comme C++ sans Standard Lib. Java sans Standard Lib. On a les types de base et il faut tout construire. D'où la multiplication des librairies sur le net.
Il y a bien quelques efforts de fait comme CommonJS, mais on ne peut que constater qu'il n'y a pas de standard.
Quant au DOM et au W3C, le virage a été pris depuis quelque temps. Pour (X)HTML jusqu'à 4 le W3C a normalisé le langage HTML et ajouté le DOM et l'API DOM. Avec (X)HTML5 ce qui est normalisé c'est le DOM et son API le langage HTML5 n'est qu'une forme sérialisée du DOM.
Cette norme permet donc d'être conforme même si on utilise d'autres formes sérialisées du DOM.
Je constate qu'on trouve une multitude de représentations textuelles du DOM, dans les Lib JS. Ce qui montre un besoin. Mais là encore rien de normalisé.
J'en conclus que plus qu'un nouveau langage JS soufre d'un manque de Standard. Lib Standard pour le langage, Représentation sérielle standard autre que HTML pour le DOM, ET probablement aussi une API moins lourde pour le DOM.
Et pour finir, je dirais qu'il faut arrêter d'enseigner dans les écoles que POO = Classes. C’est archifaux et contre productif.
A+JYT
7 |
0 |