Prawie wszystkie dojrzałe języki są zdefiniowane w specyfikacji, a kompilatory lub tłumacze próbują postępować zgodnie ze standardem zdefiniowanym w tej specyfikacji. Ale bardzo rzadko się to udaje, chyba że standard określa autor języka.
Można znaleźć standardu C ++ 2003 , w specyfikacji C # 4 , w specyfikacji Java 7 i wiele innych online. Wiele z nich ma numery normalizacyjne ECMA lub ISO. To tylko organizacje, w których możesz zarejestrować standard i uczynić go bardziej oficjalnym.
Ruby historycznie robiła rzeczy nieco inaczej, mając jako specyfikację wykonywalny zestaw testów . Tak więc, jeśli chcesz napisać tłumacza i nazwać go standardowym Ruby, po prostu musiałeś stworzyć tłumacza, który przeszedł wszystkie te testy. Ale nawet Ruby może ostatecznie stać się bardziej formalną specyfikacją .
JavaScript nie różni się, chyba że w sposób, w jaki ewoluował.
Javascript został stworzony po raz pierwszy przez Netscape. Nazwali go LiveScript, ale wyglądał podobnie do Java i zawarli umowę z Sunem nad tą nazwą, co było korzystne zarówno dla marketingu Netscape, jak i Java. Microsoft miał VBScript i (z powodów prawdopodobnie nie do pomyślenia) w zasadzie skopiował Javascript, ale nazwa była własnością Sun, więc bezczelnie nazwali ją JScript.
Ale JScript, chociaż jest bardzo podobny do JavaScript w składni, często korzysta z COM - na przykład IE5 i 6 tworzą instancję obiektu XMLHttpRequest new ActiveXObject("Microsoft.XMLHTTP");
.
I tak narodziły się równoległe, podobne, ale także różne „dialekty” Javascript. Z czasem różne grupy posiadające przeglądarki o mniejszym udziale w rynku niż IE próbowały ujednolicić język i przez lata Microsoft stawiał opór. Do wersji V8.
V8 był szybki. Wyznacza zupełnie nowy standard rynkowy. Sprawiało, że wszystko inne wyglądało kiepsko.
W wyniku różnych spraw antymonopolowych przeciwko Microsoftowi IE tracił udział w rynku. Nagle w interesie Microsoftu było wsparcie standaryzacji. Jeszcze nas tam nie ma, ale jest na dobrej drodze.
Tymczasem V8 był open-source, co pozwoliło ludziom zacząć myśleć nowych zastosowań dla szybkiego parsera JavaScript, takich jak node.js .
Wróćmy jednak do pytania: co to jest Javascript? Jest to pospolita (i oryginalna) nazwa ECMAScript, specyfikacja języka prototypowego, powszechnie, ale nie wyłącznie, używana do nawigacji i manipulowania modelem obiektowym domeny w przeglądarce.
ECMA-262 jest tylko standardową definicją, podobnie jak ECMA-334 jest standardową definicją języka C #. ECMAScript to jedyna nazwa, na którą wszystkie zainteresowane strony mogły się zgodzić jeszcze w roku 99, kiedy napisano ECMA-262.