К недостаткам языка HTML следует отнести то, что созданные с его помощью
Web-страницы являются статичными. Все изменения, что происходят на экране,
осуществляет браузер, загружая, например, новую Web-страницу. Чтобы сделать
изображение Web-страницы живым и динамичным, надо дать возможность пользователю
напрямую взаимодействовать с ее содержимым. Для этого необходимо к языку разметки
HTML и каскадным листам стилей CSS добавить такие программные средства, которые
позволили бы на стороне клиента без участия сервера решить эту задачу.
В 1995 году фирмой Sun был разработан язык Java,
поддерживающий кроссплатформенные приложения. Это стало возможным за счет
того, что приложения компилируются в некий промежуточный код, называемый
байт-кодом Java и исполняются на компьютерах клиентов с помощью виртуальной
машины, понимающей байт-код (по сути интерпретатора байт-кода).
Небольшие программы на Java, предназначенные
для встраивания в HTML-документ, стали называться апплетами (applets). Они
позволили создавать по-настоящему динамичные Web-страницы. Однако их недостатком
является то, что любое изменение в программе (например, в результате ошибки),
требует компиляции исходного кода.
Год спустя сотрудником фирмы Netscape Communications
Бренданом Эйхом (Brendan Eich [aik]) был разработан на базе Java язык
JavaScript (первоначально называвшийся LiveScript), который являлся
интерпретируемым языком (скриптом) и, следовательно, не имел этого недостатка.
Первым браузером, который поддерживал JavaScript, стал браузер Netscape
Navigator версии 2.0 (март 1996 г.).
Вскоре преимущества разработки Web-страниц с
использованием JavaScript осознали и другие фирмы, в первую очередь фирма Microsoft,
которая разработала для своего браузера Microsoft Internet Explorer 3.0
(август 1996 г.) версию языка JavaScript (JScript), которая, к сожалению, не
полностью совпадала с версией фирмы Netscape.
С целью унификации версий языка JavaScript в 1997
году организацией ECMA (European Computer Manufacturers Association) был выпушен
стандарт на язык JavaScript, который назывался ECMAScript (его спецификацию можно
найти по адресу: http://www.esma1/STAND/ESMA-262.HTM). Хотя после этого
расхождения в версиях JavaScript и были уменьшены, но не преодолены полностью.