Привет, Хабр! Представляю вашему вниманию перевод статьи JavaScript Has Already Won автора Jonny Asmar.

Этот пост не о том, что JS лучший из всех языков программирования, нет. Речь будет идти только о сферах, которые он охватил, и о том, сколько возможностей он дал разработчикам, чтобы улучшить свой продукт.

Уже давно в мире программирования идет борьба. С самого момента появления компьютера программисты искали идеальный язык программирования. Один за другим создавались новые языки, чтобы приспособить их к определенным целям. И с этими новыми языками появилась новая эра технологий, появилось миллион библиотек и множество информации в свободном доступе, а с этим всем неизбежно появились новые ограничения. С давних времен программирования Java Applets (приложений) можно заметить, что различные языки неожиданно появлялись и так же неожиданно исчезали, кроме того, их полезность быстро сходила на нет.

Мир движется в новом направлении…

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

Однако, JavaScript уже практически десятилетия находится рядом и никуда не уходит. Итак, уместно будет задать такой вопрос: «В каком же направлении он движется?» Однако, этот пост не совсем о «JavaScript». Также, он не касается того множества языков, которые были до него. И здесь не говорится о том, какой JavaScript замечательный.

Этот пост про программную платформу Node.

И эти вещи действительно необходимо различать. Потому что Node — это что-то другое. Это не просто язык. Это экосистема.

И это то, о чем будет идти речь.

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

Всемирная паутина


React, Angular и Vue

React, Angular и Vue это самые важные интерфейсные системы, существующие на сегодняшний день. Совместно, Facebook, Google и сообщество FOSS разработали интеллектуально эффективные инструменты для разработки интерактивных пользовательских интерфейсов.
В результате, практически всё, что вы делаете сегодня в Интернете, обслуживается очень интерактивным, эстетически приятным и простым в использовании интерфейсом. И все это стало возможным только благодаря экосистеме Node.

Нет никаких сомнений в том, что JavaScript главенствовал над веб-разработками в течение вечности, но React, Angular и Vue переносит все это на другой уровень.
Это период пользовательского интерфейса.

Период, когда разработчики интерфейсов больше не уклоняются от создания сложных одностраничных веб-приложений и полноценных наборов программного обеспечения.
Место, где Ты когда-то был веб-разработчиком, теперь Ты — разработчик программного обеспечения.

И вот так… Node превзошел Всемирную паутину.

Телефоны


React Native
(фреймворк для разработки кроссплатформенных приложений для iOS и Android)

Здесь речь пойдет не только об успехах платформы в сфере мобильных телефонов, но и о том, чтобы уяснить один важный момент:

Node является кросс-платформенным, то есть он может работать более чем на одной аппаратной платформе или операционной системе.И это подразумевает не только — «О, круто, это работает на моем телефоне!». И даже не это — «Вау, мой телефон, планшет, ноутбук и телевизор могут поддерживать YouTube!».

React Native — это всего лишь один из примеров структуры, разработанной в экосистеме Node, которая устраняет разрыв между разработкой интерфейсов и разработкой мобильных приложений в такой форме, которой ранее не существовало у других инфраструктур.

Наибольшим минусом при разработке приложений для телефона было в отсутствии их связи с интернетом. Однако с помощью React Native и экосистемы Node разработчик может создать единое приложение, поддерживаемое браузером, iOS и Android. Никакой другой язык не предлагает такую универсальность.

И вот так… Node превзошел мобильные телефоны.

Desktop


Electron

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

На самом деле это был вопрос времени, прежде чем JavaScript догнал производительность настольных компьютеров. Вот так и появился Electron.

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

Благодаря Cheng Zhao & Github была создана структура, которая меняет внешний вид настольных компьютеров. Корпорация Electron не только добавила разработку настольных приложений в уже растущий репертуар веб-разработчиков, но и сделала это таким образом, что она полностью совместима с другими ОС.

Хотя Windows по-прежнему является самой распространенной ОС сегодня, Mac находится в состоянии роста уже на протяжении 15 лет, и все большее и большее число разработчиков переключаются на Linux каждый день. И теперь даже небольшие игрушки, такие как Raspberry Pi, чаще станут появляться на Linux, а не только у тех, у кого Windows или Mac. Теперь можно представить, почему кросс-разработка ОС — такое огромное преимущество… и это только начало.

Теперь наш интернет, мобильный телефон и рабочий стол, полностью поддерживаются экосистемой Node. Единый набор инструментов, способный создавать один и тот же интерфейс во всех этих местах.

И вот так… Node превзошел Desktop.

Игры


Unity 3D

Я оставила это напоследок, потому что это не совсем «Node», это все таки больше относится к JavaScript, и об этом поговорим чуть более подробно:
Успех JavaScript состоит не в том, что он превосходит другие языки, Его успех — это прямой результат того, насколько он приспособлен для применения практически везде.
Разработчики JavaScript не пуристы.

Нам нравится наш язык таким, какой он есть (нет); версионно-фрагментированный, зависимый от транспилеров, кросс-платформенный, постоянно развивающийся и стремящийся туда, куда не добирался еще ни один из языков.

Как и развитие игр!

Когда Unity 3D впервые представила свой «UnityScript» на основе JavaScript в качестве средства для разработки игр, тогда стало понятно, что JavaScript теперь будет создавать действительно прикольные вещи. Это было одним из первых крупных набегов на не-веб-развитие, и это был явный признак того, что что-то будет происходить.

Теперь стало отчетливо видно, что JavaScript может делать намного большее, чем просто открывать меню, а также менять размер шрифтов на странице. Он может дать больше, чем просто позволит лайкнуть этот пост. Он может обрабатывать захватывающие, кросс-платформенные игровые события. И те же самые разработчики, которые когда-то были ограничены — Chrome, Firefox и Internet Exploder, внезапно стали разработчиками игр.
И хотя Unity недавно объявила о том, что они откажутся от поддержки UnityScript, я все равно буду говорить:

И вот так… JavaScript превзошел игры.
Хорошо, может быть, нет. Но это не последний раунд, правда?

Я не знаю, когда это закончится, но Node убирает одну преграду за другой и прокладывает путь к миру разработки программного обеспечения, где один язык управляет всеми остальными. Естественно, JavaScript не лучший язык для всего на свете. Но сила JavaScript в том, что он универсальный, и он является самой мощной развитой экосистемой, доступной на сегодняшний день.