Появившийся несколько лет назад Node.js вызвал небывалый ажиотаж в среде разработчиков. Сегодня он продолжает развиваться и оставаться одним из самых востребованных на рынке.

В связи с этим, а также недавним релизом Node.js 5.1.0. предлагаем вам наш перевод статьи о преимуществах Node и причинах его стремительного развития.

Подъём Node.js – и почему он будет лидировать в разработке корпоративного ПО как минимум в течение ближайшей декады


Основанный на JavaScript язык программирования Node.js внезапно стал очень популярным среди разработчиков мобильных приложений – и пока не даёт повода думать, что он скоро уйдёт.



Количество модулей Node.js (и других JavaScript-библиотек), добавленных пользователями с 2010 года, превзошло весь репозиторий Perl CPAN, который заполнялся последние 20 лет.

Node.js появился после того, как Google выпустил релиз JavaScript движка V8, который задумывался как JavaScript-интерпретатор для браузера Google Chrome. Вскоре после открытия исходного кода V8 Райан Дал (Ryan Dahl), создатель Node.js, понял, что интерпретатор может быть использован для создания совершенно нового концепта серверного JavaScript.

Недавно рынок стал свидетелем приобретения нескольких пионеров Node.js, включая StrongLoop компанией IBM, FeedHenry компанией Red Hat и Modulus компанией Progress Software.

Эксперты в IT-индустрии отмечают, что скриптовый язык на основе JavaScript – обязательный инструмент для разработки и поставки приложений в современных компаниях.

Node.js продолжает развиваться с практически беспрецедентной скоростью. За последние пять лет разработчиками было добавлено более 190 000  модулей для Node.js (и других библиотек JavaScript). Это превышает весь репозиторий Perl CPAN, составлявшийся на протяжении 20 лет, и обходит Java Maven Central, несмотря на меньшее количество разработчиков Node.js.

Что стало причиной такой популярности среди enterprise-разработчиков, и могут ли директора по информационным технологиям быть уверенными, что Node.js будет активно использоваться в течение хотя бы десяти лет?

Экосистема поддержки модулей Node.js вокруг ядра пережила сильный рост. Сообщество Node много выиграло от существования менеджера пакетов Node (npmjs), предоставляющего центральный репозиторий общих модулей.

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

Этот гибкий инструмент, основанный на Node.js с использованием сервиса npmjs.org, привёл к значительному росту количества общих модулей и к тому, что npmjs.org стал репозиторием не только для серверного Node.js, но и для  клиентских JavaScript-модулей.



В сентябре 2015 года центральный репозиторий npm.js преодолел рубеж в 2 миллиарда загрузок.

На раннем этапе развития Node.js его начали использовать такие компании, как Netflix, Walmart, PayPal, Dow Jones и Groupon. Они создавали внутренние команды, которые использовали Node, применяя подход «разделяй и властвуй»: разбивая то, что раньше было скорее “монолитным” подходом к созданию веб-сервисов. Это позволило им быстро разрабатывать и обновлять решения для тех или иных областей бизнеса и немедленно разворачивать микросервисы на продакшене.

Node.js становится мейнстримом


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

Эти двойные требования заставили IT-команды изменить образ мышления.  Практически всем компаниям пришлось искать способы оперативно отвечать на  запросы к ПО для бизнеса, поддерживая при этом текущий legacy-код, который изменяется заметно реже. Node.js – один из инструментов для команд, разрабатывающих системы взаимодействия, такие, как мобильные решения.

Node.js часто хвалят за то, что он отвечает запросам корпораций и позволяет собирать приложения с API, которое может обращаться к серверной части и большим объёмам данных в лёгкой и эффективной манере. Действительно, концентрация на переиспользуемом RESTful API как более гибком способе построения архитектуры масштабных программных систем позволила Node.js найти своё место.

Node.js способен значительно сократить время разработки приложения, сохраняя при этом тот же функционал. Джон Оустерхаут (John K. Ousterhout), помогавший в разработке значимого скриптового языка и набора инструментов Tcl/Tk, ещё в 1990-х привёл аргумент о том, что скриптовые языки программирования по своей сути более продуктивны, нежели более тяжеловесные, такие, как С или С++.

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

В среде разработчиков к Node относятся очень благосклонно и уважают специалистов по этой технологии. Сплочённость разработчиков и их моральный дух поднимаются, если в IT-структуре организации есть команда, работающая с Node.js. Это воспринимается как интересная и по-настоящему классная возможность.

Node.js отлично подходит для приложений, построенных на архитектуре микросервисов, благодаря низкому потреблению ресурсов процессора, своей вычислительной мощности и эффективному использованию ОЗУ. Это преимущество особенно проявляется для задач, связанных скорее с операциями, затратными на ввод/вывод, нежели на использование процессора, так как реализация модели выполнения Node.js позволяет использовать “легкий” параллелизм, основанный на модели единого потока выполнения, которая не требует сложных техник параллельного программирования.

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



Будущее Node


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

В прошлом месяце на NodeConf EU был анонсирован Node 4.0.0 и и довольно сжатый релиз-цикл. Первый релиз Node с длительным периодом поддержки (LTS) был назначен на октябрь с последующими релизами каждые 12 месяцев. Каждый LTS-релиз будет активно поддерживаться в течение 18 месяцев и после этого переходить в режим поддержки ещё на 12 месяцев.
От переводчика: Node.js действительно развивается очень активно: с момента публикации статьи (а это было 27 октября) вышло ещё два релиза – LTS релиз 4.2.2, и  следом за ним «не LTS» 5.1.0.

Длительный план поддержки даёт enterprise-разработчикам чёткое представление о том, какую версию Node безопасно использовать для экспериментов, а какую – для развёртывания на продакшене. Кроме того, успокаивает, что Node.js Foundation имеет открытую модель управления.

Несмотря на то, что Node не стремится вытеснить другие языки программирования, он безусловно займет место среди инструментов для разработки корпоративного ПО в течение как минимум декады. Node уже показал себя многообещающим для разработки в области Интернета Вещей. Что же касается серверных решений для веб и мобильных приложений, Node по-прежнему силён.

Оригинал: http://www.information-age.com/technology/applications-and-development/123460405/rise-nodejs-and-why-it-will-rule-enterprise-software-development-least-decade

Комментарии (13)


  1. PQR
    23.11.2015 15:30
    +23

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

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

    Сплочённость разработчиков и их моральный дух поднимаются, если в IT-структуре организации есть команда, работающая с Node.js.
    это вообще о чём и зачем это здесь?

    благодаря низкому потреблению ресурсов процессора, своей вычислительной мощности и эффективному использованию ОЗУ
    с чем сравнивали? Особенно про низкое потребление памяти интересует…

    Автору перевода, конечно, спасибо, но статья ни о чём.


    1. apelsyn
      23.11.2015 16:27
      -4

      выбрать подходящий npm пакет из сотни одинаково недоделанных — та ещё задачка


      Автор ставнивает nodejs с перлом. выбрать подходящий пекет на Perl/PHP/… та же самая задача. Или вы хотите сказать что в других языках все намного лучше? Тогда приведите пример, а то звучит как тоже «бла-бла-бла» про которое вы пишите.


      1. alaska332
        01.12.2015 03:28

        Наличие репозитория с 200к каких-то глюкавых пакетов не является преимуществом.
        Особенно для корпоративной разработки.
        Статья написана далеким от темы человеком.


  1. rumkin
    23.11.2015 15:46
    +12

    Сплошная вода. Написано пиджаком для пиджаков.


    1. mahnunchik
      23.11.2015 15:54
      -5

      «Пиджаки» (заказчики корпоративного ПО) в конечном итоге либо вкладывают в технологию деньги и она «живёт» и развивается, либо не вкладывают и она остаётся «статьёй на википедии».


      1. rumkin
        23.11.2015 19:37
        +1

        Из вашего комментария можно сделать вывод, что без вложений технологии отправляются прямиком на кладбище. Но это совершенно не так. Любой проект – это всегда люди.
        А пиджаки вкладываются в то, что сулит деньги или повышение.



  1. apelsyn
    23.11.2015 16:37
    -3

    Эта статья написана CTO Red Hat Mobile для менеджеров а не программистов и размещена на ресурсе для IT менеджеров. Да, тут нету четких цифр, но если бы я хотел внедрить у себя ноду, я бы своему шефу показал эту статью.


  1. duke_nu
    23.11.2015 16:48
    +5

    а есть примеры корпоративного ПО на node.js?


    1. Sorro
      23.11.2015 22:26
      +4

      Действительно следовало бы привести ссылки на Enterprise решения на NodeJS.
      Самый известный пример — упомянутый в статье Strongloop habrahabr.ru/company/ibm/blog/266647.
      Ещё есть Sage ERP X3 www.slideshare.net/WayneSchulz/sage-erp-x3-technology.
      Мы, со своей стороны, инвестируем в Open Source в этом направлении: habrahabr.ru/company/allcountjs
      И ещё www.quora.com/What-companies-are-using-Node-js-in-production там не всё энтерпрайз, но всё же.


  1. aobondar
    23.11.2015 17:36
    +4

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


  1. pred8or
    23.11.2015 18:41
    +8

    Основанный на JavaScript язык программирования Node.js ...

    После этого дальше можно не читать


  1. Joshua
    24.11.2015 15:48

    Так почему же он будет лидировать? В статье описано, что он УЖЕ по какой то причине набрал популярность, но я не понял причины этой популярности и почему они не изменяться в следующие 10 лет?