Будущее JavaScript

JavaScript прошел долгий путь с момента его первоначальной реализации: на его написание ушло всего 10 дней. Стандарт JavaScript, предложенный впервые как ECMAScript 1 в 1997 году, по состоянию на конец 2018 года находится на 9-й итерации (ES 2018)

Будущее JavaScript
Ссылка по ГОСТ

Различия между спецификациями, описанными в ECMAScript 1 и ES 2018, огромны: кажется, что они описывают разные языки. За прошедшие годы JavaScript претерпел огромные изменения. Не все соглашались с каждым изменением, но вместе они сделали JavaScript более надежным, безопасным и выразительным языком.

Сообщество JavaScript сегодня, пожалуй, самое активное сообщество в программировании. Иногда кажется, что каждую неделю появляются выпуски новых инструментов, фреймворков и библиотек. Доступны всевозможные препроцессоры и транспиляторы, начиная от программ, которые переводят современные программы JavaScript, чтобы старые движки JavaScript могли их запускать, до компиляции совершенно новых языков с помощью JavaScript. Сам стандарт JavaScript - это постоянно развивающийся документ, в который вносятся быстрые улучшения. Механизмы JavaScript почти так же быстро вносят изменения. Новые разрабатываемые операционные системы (например, Google Fuchsia) добавляют поддержку разработки собственных приложений на JavaScript. Все это означает, что у JavaScript есть захватывающее будущее.


Абстракция


В программировании и информатике в целом существует понятие абстракции. Абстракция гарантирует, что пользователи далеки от того, что происходит «под капотом». Простой пример должен помочь проиллюстрировать концепцию.

Подумайте о мобильном телефоне, который вы используете каждый день для общения с друзьями и близкими. Вы хотите совершать и принимать звонки, использовать текстовые сообщения, проверять свои учетные записи Facebook / Twitter и, возможно, делать фотографии. Как пользователь, вы используете пользовательский интерфейс производителя для доступа к основным функциям телефона, но вы, вероятно, не знаете и не заботитесь о том, как отремонтировать свой телефон или написать для него программное обеспечение.

С другой стороны, специалисту по телефону нужен интерфейс другого типа на более низком уровне абстракции. Ей нужно знать, как компоненты работают вместе, чтобы она могла ремонтировать телефоны, которые не работают. Инженеры-программисты должны понимать, как взаимодействуют программные подсистемы, а также должны интересоваться операционной системой и инструментами разработки программного обеспечения. Это тоже находится на другом более низком уровне абстракции.

Аналогичный анализ применим к компьютерам. Пользователь использует компьютеры для прослушивания музыки, отправки электронных писем, игр и многого другого. Они взаимодействуют с приложениями, которые делают эти задачи возможными, без каких-либо сведений о низкоуровневых деталях.

Однако программисты работают на более низком уровне абстракции, используя такой язык программирования, как JavaScript. JavaScript, в свою очередь, обрабатывается средой выполнения (иногда называемой движком), написанной на некоторых других языках еще более низкого уровня, таких как C ++. В свою очередь, эти движки преобразуют код JavaScript в другой код более низкого уровня до тех пор, пока после нескольких итераций исходный код JavaScript не превратится в серию единиц и нулей, которые понимает компьютер. Фактически, каждый язык программирования требует более низкого уровня

стать заказчиком
стать исполнителем