11 причин, по которым новый JavaScript не похож на старый JavaScript

JavaScript - один из самых успешных и универсальных языков программирования в мире, но начинался он, конечно, не так. Вот 11 способов, с помощью которых JavaScript сегодня совсем не похож на тот язык, который задумывали его изобретатели.

В 1995 году небольшая группа программистов с большими мечтами запустила JavaScript. Он должен был называться Mocha или LiveScript, но потом некоторые смекалистые люди решили вскочить на волнорез языка Java, который уже набирал обороты.

Первоначальные цели нового языка сценариев были просты: Добавить немного жизни в статичные веб-страницы (в те времена единственным движением на веб-странице был тег <blink>, который давно исчез, но не забыт). В то время разработчики JavaScript, вероятно, и представить себе не могли, что крошечный слой, предназначенный для двойной проверки элементов формы, когда-нибудь станет доминирующим способом распространения программного обеспечения.

Современная версия JavaScript имеет мало сходства с тем скриптовым языком первого поколения. Хотя большая часть старого кода все еще используется на веб-сайтах, с тех пор было добавлено бесчисленное количество функций и слоев. Роли и обязанности, связанные с JavaScript, также стали гораздо шире. Благодаря Node.js язык используется не только для веб-страниц; он является важной частью многих серверных стеков, на которых выполняется код, не имеющий ничего общего с тегами <blink> или кошачьими мемами. Криптовалютные приложения, здравоохранение, боты для торговли акциями - вот лишь некоторые из тех работ, которые зависят от JavaScript.

Сейчас, когда на горизонте 30-летний юбилей JavaScript, самое время проанализировать, насколько сильно изменился язык. Вот 11 способов, с помощью которых JavaScript, которым мы пользуемся сегодня, совершенно не похож на тот язык, который могли себе представить его изобретатели и первые последователи.

11 способов, с помощью которых JavaScript стал не таким, как раньше

  1. Он больше не называется JavaScript
  2. Он настолько огромен, что разработчики вынуждены специализироваться
  3. Все дело во фреймворках
  4. Он изоморфен
  5. Много новых операторов
  6. JSON повсюду
  7. Сборки и инструменты сборки
  8. JIT-компиляция
  9. Безопасность типов
  10. Обширная экосистема библиотек
  11. Другие языки перекрестно компилируются в JavaScript

JavaScript больше не называется JavaScript

Вначале все называли его JavaScript. Сегодня большинство разработчиков по-прежнему используют это название. Однако официально люди, создающие стандарты, используют название ECMAScript. Некоторые даже пишут официальный номер версии нормативной спецификации языка, который доходит до 14. ECMAScript, возможно, не так легко сходит с языка и не вызывает воспоминаний о теплом кофе, но он успешно отличает JavaScript от Java. Таким образом, разработчикам JavaScript не нужно беспокоиться о торговых марках, логотипах или других формах товарного вида Java. Ну, за исключением того, что ECMA International, хранители спецификации, любят помещать этот маленький символ зарегистрированной торговой марки рядом с названием: ECMAScript®.

Он настолько огромен, что разработчикам приходится специализироваться

JavaScript сегодня настолько огромен, что никто, даже разработчики, использующие его каждый день, не в состоянии знать все его составляющие. Появление серверных опций и изоморфного кода привлекло столько новых сил и разработок, что один человек вряд ли может знать все тонкости написания кода для браузера или сервера - не говоря уже о том, что и для того, и для другого. Разработчики вынуждены специализироваться в одной из этих двух областей, хотя теоретически они могли бы писать код, который работает во всех этих областях. Довольно часто разработчики пишут, что они работают с браузерными JavaScript-фреймворками, серверными JavaScript или даже с JavaScript для баз данных. Эй, это большой мир.

Все дело во фреймворках

Разделение на серверный и браузерный мир - это одно, но разработчики JavaScript также склонны сужать свою специализацию по фреймворкам. Многие объявления о работе не требуют программистов на JavaScript как таковых. Они ищут React, Angular или любой другой из дюжины популярных JavaScript-фреймворков. Это практическое решение. Чтобы добиться успеха, программисты должны хорошо разбираться в особенностях этих фреймворков. Конечно, они также должны знать некоторые основы JavaScript. Но если разработчик не знает, как Angular использует атрибуты HTML, никакие знания JavaScript ему не помогут. Большие фреймворки, такие как Angular и React, становятся настолько большими и сложными, что некоторые программисты специализируются на более мелких инструментах, ориентированных на отдельные области JavaScript, например, на инструментах управления состояниями (Redux, MobX) или на вариантах базовой модели.

Это изоморфно

Один из самых больших скачков популярности JavaScript произошел после того, как Node.js сделал возможным написание JavaScript-кода, работающего на сервере. Внезапно отпала необходимость в том, чтобы одна команда занималась программным обеспечением браузера, а другая - серверной частью. Один и тот же код мог выполняться в обоих местах изоморфно, что значительно облегчило разработчикам JavaScript перенос функций из браузера на сервер и обратно.

Но подождите! Разве я только что не сказал, что мир JavaScript раздвоен, трифуркационен или еще хуже? Да, но изоморфизм все еще ценен. Многие базовые функции для таких задач, как шифрование, могут выполняться одинаково в разных сферах. Конечно, программисты могут специализироваться в одной нише, но сам код часто может беспрепятственно перемещаться между всеми нишами.

Множество новых операторов

В оригинальном JavaScript было несколько простых функций для жонглирования объектами данных. Новейшие версии поддерживают такие продуманные дополнения, как оператор spread (...) и map, которые позволяют нарезать, разрезать, расширять и хирургически изменять структуры данных. В результате получается очень компактный код, но при этом очень мощный. Программисты могут легко передавать сложные структуры данных без написания бесконечных процедур для их упаковки и распаковки. Код становится проще, быстрее и, если вы знаете новый синтаксис, легче читается.

JSON повсюду

В первые годы программисты JavaScript были вынуждены разбирать и сериализовывать данные, чтобы обмениваться ими. Затем кто-то умный заметил, что родной объектный формат JavaScript - JavaScript Object Notation, или JSON - является одновременно эффективным и быстрым. Стеки JavaScript могли разбирать данные, хранящиеся в JSON, быстрее, чем в большинстве других форматов. Сегодня даже те программисты, которые не собираются писать на JavaScript, используют данные в формате JSON просто потому, что он гибкий и эффективный. JSON можно встретить повсюду, но лучше всего он чувствует себя в среде JavaScript, которая быстро разберет его и превратит в объект.

Сборки и инструменты сборки

Вначале люди писали JavaScript в текстовом редакторе и тестировали его в браузере. Современные JavaScript-приложения немного сложнее. Для большинства из них требуются инструменты многоступенчатой сборки, такие как Grunt, Gulp или Webpack, которые объединяют различные компоненты в конечный исполняемый стек. Многие разработчики в итоге используют полноценные CI/CD-серверы, которые также тестируют код и проверяют его на наличие ошибок, которые могут привести к сбоям.

Инструменты сборки JavaScript настолько мощны, что у разработчиков часто возникают с ними отношения любви и ненависти. Код, который они пишут, нигде не будет выполняться, пока он не будет проанализирован и собран в формат, который действительно будет выполняться. Да, технически JavaScript по-прежнему является динамическим скриптовым языком, но его сборка иногда занимает больше времени, чем сборка старых компиляторов C.

JIT-компиляция

Сегодня обработка и предварительная обработка происходит как вверх, так и вниз по стеку. Компиляторы Just-in-time раскрыли всю мощь JavaScript, когда они только появились, и продолжают совершенствоваться. Теперь компиляторы достаточно умны, чтобы многократно анализировать код в процессе его выполнения и улучшать основные части алгоритма, которые получают больше всего работы. Они лучше справляются со сборкой мусора и предотвращают некоторые из наиболее опасных видов поведения. Для языка, который начинался как язык сценариев, JIT-слой JavaScript выглядит не менее мощным, чем язык, который официально "компилируется".

Безопасность типов

Когда JavaScript только зарождался, некоторые программисты ненавидели дополнительные нажатия клавиш, необходимые для определения типа данных, хранящихся в каждой переменной. Разработчики, которые до сих пор используют ванильный JavaScript, могут жить свободно, сколько им угодно, но сейчас есть значительная часть людей, которые принимают TypeScript и некоторые другие типовые варианты JavaScript. Эти препроцессоры обеспечивают соблюдение правил типов вместе со всеми сопутствующими им средствами защиты.

Обширная экосистема библиотек

Трудно описать широту и глубину библиотек, которые сегодня процветают в экосистеме JavaScript. Здесь есть код для тысяч, а может быть, и миллионов различных видов приложений. Файлы сборки даже базовых проектов могут импортировать сотни различных зависимостей. JavaScript - один из самых популярных языков на таких репозиториях, как GitHub и GitLab, где вы можете провести несколько дней, изучая код практически на любой случай.

Другие языки перекрестно компилируются в JavaScript

Одна из самых сложных задач для JavaScript в наши дни - поддержка кода, написанного на другом языке. Существуют сотни различных языков, которые могут быть кросс-компилированы в JavaScript и запущены в браузере или на сервере. Компиляторы "точно в срок" делают JavaScript хорошей отправной точкой для разработчиков, которые хотят быстро запустить свой старый COBOL или новый Haskel. Конечно, любители этих языков могли бы написать собственные компиляторы, но проще просто выполнить кросс-компиляцию в JavaScript и позволить этим инструментам выполнить оптимизацию. В результате многие строки кода на JavaScript были написаны программистом, который думал на совершенно другом языке.

11 причин, по которым новый JavaScript не похож на старый JavaScript
Понравилась новость? Тогда не забудь оставить свой комментарий.
А так же, добавь наш сайт в закладки (нажми Ctrl+D), не теряй нас.
05 августа 2024 г.
70
Теги: JavaScript

Комментарии

Оставить комментарий:
* отправляя форму, я даю согласие на обработку персональных данных

Читайте еще