PRATIQUE CLIENTS WEB 
Expliquez-moi... Les liens entre ECMAScript, JavaScript, ActionScript, JScript...
 
Une spécification, beaucoup d'implémentations, pour au final le langage de script le plus utilisé sur le Web. Débroussaillage des correspondances entre standard et navigateurs. (11/12/2006)
  Forum

Réagissez dans les forums de JDN Développeurs

Avec la promotion affirmée du support des standards par les navigateurs Web modernes, et la déchéance du DHTML datant d'un Web 1.0 à oublier, le terme "ECMAScript" a de plus en plus été utiliser pour remplacer "JavaScript". Bien que ces deux technologies soient quasiment indiscernables, ce remplacement reste un raccourci peut-être trop audacieux. Par ailleurs, d'autres langages se réclament d'ECMAScript, sans pour autant être du JavaScript...

La base est simple : JavaScript est une implémentation du langage ECMAScript. Ce dernier est un standard ECMA, conçu à partir de et en parallèle du langage JavaScript. Conçu par Brendan Eich pour Netscape et son Navigator, le langage était à l'origine appelé Mocha puis LiveScript : son objectif était d'automatiser certaines actions et manipuler certains éléments des pages Web, sans pour autant devoir faire appel à Java, sortit peu auparavant. LiveScript est renommé JavaScript lorsque Navigator a inclus le support Java.

Brendan Eich continue de faire évoluer JavaScript - surtout avec son récent regain d'intérêt - pour le moteur Gecko (Mozilla, Firefox), et fait partie du groupe de travail chargé de faire évoluer le standard ECMA-262 définissant la spécification ECMAScript. De fait, les navigateurs utilisant Gecko sont aujourd'hui les plus compatibles avec le standard ECMAScript - le devançant même de plusieurs mois : Firefox 2 reconnaît JavaScript 1.7, qui correspond au standard actuel ECMA-262 Edition 3, tandis que Firefox 3 prévoit déjà d'implémenter JavaScript 1.9, alors que le standard ECMA-262 Edition 4 n'est pas encore défini - mais devrait être synchronisé.

JavaScript reste donc l'implémentation Firefox d'ECMAScript, pour simplifier. Chaque autre navigateur dispose donc de sa propre implémentation. Ainsi, l'implémentation d'Internet Explorer n'est pas nommément JavaScript mais JScript, et repose sur le moteur Active Scripting (ex-ActiveX Scripting) du navigateur de Microsoft. Sa dernière version JScript .Net, implémente déjà certaines sections de la prochaine version du standard ECMA. IE7, par contre, utilise la même implémentation qu'IE6, qui correspond à JavaScript 1.5.

JavaScript et JScript sont donc deux implémentations d'un même langage, et chacune dispose d'ajouts spécifiques au navigateur qui l'utilise. Il en va de même pour ActionScript : le langage de Flash a commencé avec quelques mots clefs, pour aujourd'hui être en passe d'être l'une des implémentations les plus fidèles. ActionScript 2 implémente ECMA-262 Edition 3, tandis qu'AS3 utilise déjà les concepts de l'Edition 4. L'implication d'Adobe est telle que l'une des avancées technologiques d'AS3, une machine virtuelle accélérant largement l'exécution de codes ECMASript, sera utilisée par le moteur Gecko grâce à la mise en Open Source d'icelui. AS ajoute à son implémentation des API spécifiques à Flash.

De nombreux autres navigateurs reprennent simplement l'implémentation ECMAScript que l'on retrouve dans JavaScript : les navigateurs reposant sur KHTML comme Konqueror ou Safari, Adobe Acrobat et Open Laszlo. Opera implémente totalement ECMA-262 Edition 2 et 3, tout en ajoutant les extensions propres à JavaScript et JScript. iCan implémente sa propre version, InScript. Tous implémentent ECMAScript à un niveau équivalent de JavaScript, donc le développeur n'a jamais a adapter son code au moteur réellement utilisé.

Enfin, mentionnons E4X. ECMAScript for XML est une extension au standard ECMAScript qui lui ajoute le support natif d'XML, offrant une alternative à la syntaxe DOM. Créé par BEA, E4X correspond aujourd'hui au document ECMA-357, qui en est à sa seconde édition.
 
Rédaction JDN Développeurs
 
 
Accueil | Haut de page