w3qc.org

w3qc.org

PlusStandardOuCorrectECMAScriptOuJS – W3QCwiki

Contribution collective

Retour historique

Ecmascript = js et js= ecmascript

  • Au départ, Netscape crée Javascript
  • Microsoft le copie, puis le renomme JScript, en ajoutant des fonctions propriétaires.
  • Par la suite, le groupe ECMA (voir Tristan Nitot (http://standblog.org/blog/)) standardise le langage : l’ECMAScript est né.
  • Netscape, avec Mozilla et NS 6/7, continue à appeler son langage « Javascript », tout en étant conforme à Ecmascript (la version de JavaScript dans Mozilla/NS6/7 est 1.5).

En fait : ECMAScript est une norme alors que JavaScript est son implémentation dans Netscape.

Détails : ECMAScript ne décrit que la syntaxe du langage (les règles d’orthographe et de grammaire : comment écrire des fonctions, déclarer/utiliser des objets en général, comment écrire des instructions, etc.).

Ainsi, tous les objets proposés par les navigateurs (document, window, event, etc.) ne font pas partie de ECMASCRIPT. Netscape a choisi de respecter le DOM, avec en plus quelques autres objets à lui.

Donc (corrigez-moi si je me trompe, mais c’est ce que j’en ai compris) :

  • Javascript Netscape (javascript 1.5) = ECMAScript + DOM + objets Netscape.
  • Jscript Microsoft = une partie de ECMAScript + une partie DOM + objets Microsoft

Le détail du détail

Ce n’est que le langage, la syntaxe. Ainsi, il est tout à fait possible d’implémenter ECMAScript ailleurs que dans un navigateur. (Comme on peut utiliser le langage C pour faire ce que l’on veut…) C’est un langage à part entière. Il n’est pas strictement lié à la réalisation de page Web.

La preuve, dans Mozilla, Ecmascript conjointement à la techno XUL/XBL/XPCOM. En fait, toute l’interface de mozilla/netscape 7 a été réalisée en Ecmascript.

Exemple d’utilisation

Si ECMAScript se veut devenir un standard, pourquoi les scripts Openweb ne l’utilisent-ils pas et préfèrent son pendant, JS? Pour les raisons citées ci-dessus : c’est JS qui est l’implémentation de ECMAScript (en ce qui concerne les versions qui le respectent). Donc, on utilise JS. Et puis de toute façon, quelles sont les différences? Aucune concernant Netscape/Mozilla.

Prenons un exemple. Il existe un objet window ayant une propriété document qui a une méthode getElementById selon le DOM.

Si on utilise Ecmascript (JS) pour y accéder, ça donne : window.document.getElementById.

Si on utilise un autre langage, ça pourrait donner : window->document->getElementById, par exemple.

Source : Laurent Jouanneau, Fabrice Bonny, Nicolas Tehu et Michel C [liste des pompeurs]

Pour apporter de l’eau aux moulins

En bas de page, il parle des débuts de Mozilla : c’est meugnon comme tout! Un tableau récapitulant les propriétés et méthodes du DOM (http://www.xs4all.nl/~ppk/js/version5.html)