В основному всі зрілі мови визначаються специфікацією, і компілятори або інтерпретатори намагаються слідувати стандарту, визначеному в цій специфікації. Але дуже рідко їм це вдається, якщо стандарт не визначений автором мови.
Ви можете знайти стандарт C ++ 2003 , в C # 4 специфікації , в специфікації Java 7 і багато іншого в Інтернеті. Багато з них мають стандарти стандартизації ECMA або ISO. Це просто організації, з якими ви можете зареєструвати стандарт і зробити його більш офіційним.
Рубі історично робив справи дещо інакше, маючи виконуваний набір тестів як специфікацію . Отже, якщо ви хочете написати перекладача і назвати його стандартним Ruby, вам просто потрібно було створити перекладача, який пройшов усі ці тести. Але навіть Рубі, швидше за все, стане більш офіційною специфікацією .
Javascript не відрізняється, за винятком можливо того, як він розвивався.
Javascript був вперше створений Netscape. Вони назвали це LiveScript, але це було схоже на Java, і вони уклали угоду з Sun над ім'ям, що виграло як маркетингу Netscape, так і Java. Microsoft мав VBScript і (з причини, ймовірно, втратили гіпотезу), в основному скопіював Javascript, але ім'ям належало Sun, тому вони прискіпливо називали його JScript.
Але JScript, дуже сильно схожий на Javascript у синтаксисі, багато використовував COM - наприклад, IE5 та 6 інстанціюють XMLHttpRequest об'єкт за допомогою new ActiveXObject("Microsoft.XMLHTTP");
.
І так народилися паралельні подібні, але й різні "діалекти" Javascript. З часом різні групи, що володіють браузерами з меншою часткою ринку, ніж IE, намагалися стандартизувати мову, і роками Microsoft чинила опір. До V8.
V8 був швидкий. Він встановив абсолютно новий ринковий стандарт. Це зробило все інше виглядати бідним.
І через різні антимонопольні справи проти Microsoft, IE втрачала частку ринку. Раптом Microsoft зацікавилася підтримкою стандартизації. Ми ще не там, але це на вірному шляху.
У той же час, V8 був відкритим вихідним кодом, що дозволило людям почати придумувати нові способи застосування для швидкого Javascript синтаксичного аналізу, такі як Node.js .
Але, щоб повернутися до свого питання: Що таке JavaScript? Це загальне (і оригінальне) ім'я для ECMAScript - специфікація для прототипічної мови , яка, але не виключно, використовується для навігації та маніпулювання моделлю об'єкта домену в браузері.
ECMA-262 - це лише стандартне визначення, як і ECMA-334 - це стандартне визначення для C #. ECMAScript було єдиним ім'ям, про яке могли погодитись усі зацікавлені сторони ще у 1999 році, коли було написано ECMA-262.