… Потому что он пожирает мир

С тех пор, как я начал программировать, я работал с JavaScript, и в последние годы я видел, как он появляется повсюду. В основном я бэкенд и облачный инженер. Это больше не язык сценариев браузера: он используется в серверной части, на мобильных устройствах и в хранилищах данных. На прошлой неделе я был на WebSummit в Дублине, где вдохновляющая речь Кевина Лакера (технический директор Parse) еще больше убедила меня в том, что JavaScript никуда не денется и что он пожирает мир, даже не медленно.

Я не собираюсь распространять любовь к JavaScript и сравнивать его с другими языками или вступать в какие-либо религиозные войны (здесь нет ничего хорошего или плохого). У каждого разработчика есть свои предпочтения. По сути, JavaScript сейчас повсюду, и он растет, он останется на ближайшие десятилетия. Это еще одна причина для вас изучить и принять это. Неизбежно, что в какой-то момент вы коснетесь кода JavaScript. Как сказал Кевин:

Вы хотите провести свою жизнь, избегая JavaScript?

Краткая история

JavaScript впервые появился в Netscape в 1995 году: странный язык с множеством недостатков. Он еще не созрел, потому что его нужно было быстро отгрузить. Все говорили: Это самое уродливое, что я видел со времен E.T.. Со временем он стал де-факто языком сценариев во всех браузерах, что и произошло естественным образом. Настоящего владения языком никогда не было. Это было просто так, и каждый браузер сделал это немного по-своему. Элите программистов это не понравилось, и сегодня многие из них все еще не любят и держатся подальше. Но со временем язык улучшался все более быстрыми темпами. Разработчики создали инструменты и библиотеки для устранения недостатков. Пришло время передумать и принять это.

Браузеры и производительность

По мере того, как браузеры становились все более популярными и ajax / web 2.0 начали становиться маркетинговой шумихой, производители браузеров вложили огромные усилия в повышение производительности JavaScript. В 2008 году Google резко улучшил производительность JavaScript с запуском V8. Это должно было обеспечить потрясающий пользовательский интерфейс, поскольку в настоящее время веб-приложения содержат огромное количество JavaScript. С годами фреймворки JavaScript появлялись и исчезали, а подходы менялись.

  • Сначала мы придерживались ненавязчивого JavaScript. Не загрязняйте HTML-код JavaScript.
  • Затем двусторонняя привязка. Когда ваши данные изменяются в пользовательском интерфейсе, модель обновляется, и наоборот. HMTL и JavaScript все еще разделены.
  • а в последнее время… односторонняя привязка с появлением React.js. HTML и JavaScript в браузерах неотделимы друг от друга. Тем не менее, это все еще вызывает споры.

Браузеры являются одними из самых важных приложений на компьютерах людей, веб-приложения имеют большое значение, и их пользовательский интерфейс перешел от веб-сайта к приложению. Нравится вам это или нет, но JavaScript - самый важный язык в веб-технологиях, именно поэтому все браузеры вкладывают в него большие средства. Ни один другой язык не привлекает в данный момент такого количества внимания и инвестиций со стороны всех крупных технологических игроков. Именно поэтому он какое-то время останется одним из основных языков. У всех технологических компаний есть свои языковые предпочтения, но похоже, что все они заинтересованы в JavaScript.

Ни один другой язык не привлекает в настоящее время такого количества внимания и инвестиций со стороны всех крупных технологических игроков.

Несколько лет назад книга JavaScript: хорошие стороны дала мне много информации о JavaScript, и она до сих пор актуальна. Не обязательно с Node.js, но для сценариев браузера.

Node.js

В 2009 году, после того как в 2008 году Google запустил V8, Райану Далю пришла в голову безумная идея перенести JavaScript в серверную часть. Посмотрите его первоначальное объявление, немного нервное, но очень проницательное:

Это перевернуло сеть с ног на голову, а ее популярность резко возросла. Количество репозиториев JavaScript с открытым исходным кодом стремительно росло. Своим существованием он популяризировал необходимость и использование модулей в JavaScript, и в то же время вы избавились от уродливых глобальных переменных. Более того, это ускорило использование и внедрение WebSockets.

С момента запуска Node.js JavaScript стал самым популярным языком на GitHub, а Node.js - самым популярным репозиторием.

Его асинхронный характер побудил многих разработчиков использовать его для создания веб-приложений в реальном времени. Многие языки, фреймворки и веб-серверы не были готовы к асинхронной сети в 2009 году. Это позволяло людям, уже знавшим JavaScript, писать внутренний код. Каждый разработчик знает JavaScript или когда-либо писал строку кода JavaScript, независимо от их опыта: python, ruby, php, haskell, java и т. Д.

Хотя JavaScript является языком сценариев, в некоторых случаях он уже превзошел по производительности Java, но не во всех.

Экосистема

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

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

Node.js и npm сейчас растут вдвое быстрее, чем любая другая программная платформа. Он привлекает технических звезд отрасли, людей с глубокими навыками программирования.

Все разработчики в вашей команде могут работать как над интерфейсом, так и над сервером, поскольку они используют один язык и один и тот же язык. Вам не нужно создавать 2 команды инженеров с разным набором навыков: серверная часть и интерфейсная часть.

Amazon, Netflix, Mozilla, PayPal, LinkedIn, Google, IBM, Facebook,… все они используют Node.js где-то в своем стеке. Все они имеют библиотеки и фреймворки с открытым исходным кодом или вносят свой вклад в популярные.

Такие инструменты, как…

  • Browserify и Babel позволяют писать JavaScript в вашем браузере, как вы это делаете в Node.js.
  • Gulp и Grunt позволяют автоматизировать задачи, сборки и рабочие процессы.
  • Angular и React для создания приятного пользовательского интерфейса
  • CoffeeScript и TypeScript выводят язык на новый уровень.

JavaScript будет появляться везде в вашем стеке

JavaScript нашел свое применение во всех основных технологических битвах:

  • Браузер: что и говорить
  • Бэкэнд: Node.js
  • Мобильные: Cordova, ionic, React Native и т. Д.

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

Когда Amazon AWS запустил Lambda, они предпочли Node.js любому другому языку, чтобы стимулировать принятие и популяризовать свой сервис вычислений на основе событий. Как вам такой четкий знак.

Язык улучшается

У языка явно были свои недостатки, да и некоторые серьезные, если уж на то пошло. Сообщество знало об этом и очень много над этим работало. Последней версией является ECMAScript 6 (спецификация JavaScript), и язык сильно повзрослел. Я много сказал? Да, вполне.

  • Лучшее определение
  • Строчная интерполяция
  • Тела выражения
  • Классы
  • Обещания: до свидания, ад
  • Генераторы
  • Более чистые структуры данных
  • Более интуитивно понятное управление текущим контекстом объекта вместо что это, черт возьми !!!!
  • и т.п.

Вы напишете меньше кода, вы станете более продуктивным, и он станет более читаемым.

Теперь вы можете написать такой код

… вместо этого.

Взгляните на https://es6-features.org/ для расширенного обзора всех улучшений. С ростом популярности Node.js и растущего сообщества улучшения будут происходить еще быстрее, ECMAScript 7 уже на подходе.

С помощью babel вы также можете перенести все эти изящные вещи в свою кодовую базу внешнего интерфейса. Вам обязательно стоит взглянуть на него и оставить позади все свои разочарования в отношении JavaScript.

Будет везде.