Привет, Хабр! Представляю вашему вниманию перевод статьи "nodejs and IoT: a match made in heaven".

image

Мир становится гиперсвязанным и цифровым. Именно поэтому мы видим все больше умных часов, очков, различной носимой электроники, устройств «умного дома», транспортных средств и т.д. Таким образом, существует огромная область применения Internet of Things (IoT), и продвинутые компании знают об этом.

Золотая эра Node.js


Существует множество языков программирования, таких как Python, Java, C ++, Ruby и тд., которые можно использовать сегодня. Однако ни один из них не может применяться как тот, который лучше всех подходит для каждой специфической задачи. Кроме того, со временем появляются новые технологии, которые предлагают лучшую поддержку и улучшаются, таким образом заменяя старые технологии. Node.js является одной из них.

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

Разработчики любят Node.js, потому что:

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

Технологические гиганты быстро осознали значимость и потенциал Node.js.

В то время как Microsoft внедрила Node.js в своей платформе Azure, PayPal решил использовать ее в своем приложении для обработки огромного объема транзакций, а также для повышения безопасности приложения.

Также компаниями, внедрившими Node.js, являются Uber, Netflix и даже IBM!

Почему же Node.js идеально подходит для IoT?


Node.js построен на движке js-движке V8 от компании Google, который является опенсорсным и широко известен своей впечатляющей эффективностью и масштабируемостью.

Таким образом, он хорошо подходит для нагруженных real-time приложений. Так как приложения IoT тоже интенсивно работают с данными и работают в режиме реального времени, они естественным образом подходят для этой технологии.

Ниже приведены некоторые причины, почему Node.js может значительно помочь в создании IoT-приложений:

  • Большое количество приложений IoT использует протокол MQTT и стандартные Сокеты, которые хорошо поддерживаются Node.js.
  • Исполняемый код многих устройств IoT написан на языках низкого уровня, таких как C ++ и тд. С ними может быть сложно работать. Node.js, в свою очередь, прост и понятен даже для неопытных разработчиков.
  • Пакетный менеджер (NPM) поставляется с несколькими полезными модулями для IoT. Он содержит более 80 пакетов для Intel IoT Edison, Rasberry Pi и Arduino. А также более 30 пакетов для различных устройств, датчиков, Bluetooth и тд. Это очень помогает ускорить и упростить процесс разработки приложений.
  • Поскольку устройства IoT, а именно, датчики, двигатели, передатчики и т. д. генерируют большие объемы данных и большое количество запросов, Node.js отлично подходит для их обработки. Это связано с тем, что он отлично поддерживает потоки, которые предоставляют каналы для чтения и записи для возможности управления запросами, а также временное хранение данных.

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

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


  1. nbytes
    31.07.2018 19:17
    +1

    А потом холодильники с 16Гб ОЗУ, может для сервера ноде и нормально, но явно не IoT.


  1. akass
    31.07.2018 19:29

    Использую MongooseOS вполне доволен.


  1. rSedoy
    31.07.2018 19:29
    +1

    Вместо Node.js (хотя это и не язык программирования) можно подставить практический любой из «множество языков программирования, таких как Python, Java, C ++, Ruby и тд., которые можно использовать сегодня.» ;)


  1. JC_IIB
    31.07.2018 20:59
    +2

    У него низкие требования к ресурсам. Таким образом, процессор и память не перегружены.


    Что, правда?

    Таким образом, он хорошо подходит для нагруженных real-time приложений


    Джо Армстронг дико хохотал бы над этим комментарием.


  1. jehy
    31.07.2018 21:15
    +5

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

    Intel IoT Edison, Rasberry Pi и Arduino

    Смешались в кучу пони, люди. Если у вас есть устройство, на котором вы можете запустить полноценный Linux, то в целом пофигу, на чём писать — хоть Java или .NET Core. Это стандартный холиварный вопрос любимого языка общего назначения.

    А если у вас именно микроконтроллер, которые обычно подразумеваются, когда мы говорим о IoT, то тут вариантов никаких — только си и прозводные вроде Go и Rust.

    Хотя кажется, уже скоро наступит тот удивительный момент, когда, как написали выше, в холодильниках будет по 16ГБ оперативки. Но скажем честно — это уже совсем другой IoT.


    1. evocatus
      31.07.2018 23:15

      Нет не пофигу. Потому что Linux (который может работать и без графической оболочки) может работать на таких устройствах, на которых Node.js даже не запустится.

      Я уже не говорю какая будет скорость у Javascript на ARM без спекулятивного выполнения инструкций.


      1. jehy
        31.07.2018 23:51
        +1

        Не выдирайте слова из контекста. У меня было написано «полноценный Linux». Имелась в виду всякая малинка и прочее добро, которое по мощности как минимум не уступает серверам 90х годов.


  1. rozhik
    01.08.2018 14:20

    Ура! Я вижу целое одно предложение в статье, которое является безспорным

    Также компаниями, внедрившими Node.js, являются Uber, Netflix и даже IBM!