Алиса Лисняк
Full Stack веб-разработчик. Ментор учебной программы Full Stack JavaScript
Давайте с самого начала. Что такое JavaScript? JS это высокоуровневый язык программирования. Что означает термин "высокоуровневый"?
Язык программирования – это инструмент для объяснения компьютеру, как тот должен решить определенную задачу разработчика. Все языки можно условно разделить на две категории:
Большинство современных языков программирования – высокоуровневые, то есть приближенные к человеческим языкам. Соответственно для изучения такого языка человеку не нужно слишком глубоко вдаваться в механику компьютерного железа и понимать, как работает каждая деталь в нем.
А как же компьютер понимает написанный код? Для этого существуют специальные переводчики – компиляторы и интерпретаторы. Разница между ними в том, что компиляторы заранее до выполнения программы превращают ее в исполняемый файл, написанный уже “машинным кодом” – командами процессора, а интерпретаторы – как синхронные переводчики на встречах – переводят на машинный код сразу во время выполнения, строку за строкой.
JavaScript – это интерпретируемый язык, то есть для понимания его компьютером нужен интерпретатор – его часто называют движком, или JavaScript-engine, который есть в определенных средах исполнения кода, в частности в браузерах. Различные браузеры используют различные движки, наиболее известными среди них являются V8, SpiderMonkey, Rhino и Chakra. Именно от движка зависит исполнение написанного кода.
Еще 30 лет назад написание программ требовало больше специфических знаний, а инструменты написания кода были далеко не такими.продвинутими, как сейчас.
JavaScript "появился на свет" в 1995 году, и первоначально назывался LiveScript. Перед разработчиками языка стояла цель создать простой в изучении и гибкий язык для веб-страниц, который связывал бы html-элементы на странице, изображения и посторонние апплеты (анимации).
А поскольку на тот момент другой язык программирования - Java - как раз набирал свою популярность, этим решили воспользоваться и назвали новую разработку - JavaScript. Это привело к путанице, поскольку на самом деле JavaScript - это абсолютный другой язык, и он похож на Java не больше, чем Java похожа на C (C или “Си” – это минималистический процедурный язык начала 70-х годов, и все современные языки, имеющие похожий на нее синтаксис,называют "Си-подобными”). На самом деле, Java и JavaScript – совершенно разные языки, похожие между собой как французский и английский.
Слово "Script" означает сценарий, и именно для этого JS и использовался в начале своего существования – для написания сценариев веб-страницы. Для того чтобы язык стал унифицированным и стандартизированным инструментом, а также мог развиваться, некоммерческая ассоциация компьютерных производителей ECMA (Европейская ассоциация производителей компьютеров)
разработала стандарт - так называемую "спецификацию" языка, под названием "Ecma-262” или EcmaScript. Этот стандарт – по сути, прототип речи.
Любые нововведения и изменения, предлагаемые сообществом разработчиков, рассматриваются комиссией и - в случае принятия предложений - вносятся в следующую редакцию спецификации. После выхода новой редакции эти новые возможности воплощаются разными движками, чтобы среда выполнения могла "понимать" новинки, которые используют разработчики.
Первые редакции EcmaScript не были особенно интересны. А вот в 2015 году появилась известная 6-я версия (она же EcmaScript 6), которая содержала много существенных изменений в прототипе языка, в частности появились следующие новинки:
Именно с появлением EcmaScript 6 (еще иногда называют ES6 или EcmaScript 2015 по году появления) связано изменение подхода к JS в целом - если до этого JS была языком сценариев, который не давал много возможностей для решения нетривиальных задач, то после выхода 6 -той редакции js начала приобретать популярность. После 2015 года новые версии стандарта начали выходить ежегодно, их условно объединяют термином ES.Next и последней по состоянию на февраль 2024 года актуальной версией спецификации является 14-я.
Если первоначально этот язык задумывался как соединительное звено между html-элементами на веб-странице и сторонними апплетами, написанными на других языках программирования, то после выхода ES6 джаваскрипт стал самостоятельным и полноценным языком программирования, средств которого уже достаточно для реализации всех программных решений, которые до этого делались на других языках. По сути, необходимость в посторонних апплетах просто отпала, поскольку теперь с помощью js стало можно писать полноценные удобные веб-приложения.