Где можно использовать JavaScript кроме веб-разработки

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

Но есть мнение и прямо противоположное. JavaScript-фреймворки творят настоящие чудеса и позволяют использовать JS абсолютно везде! Истина, как водится, где-то посередине.

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

 

IoT

Интернет вещей — отрасль, в которой значение JavaScript только возрастает, а новые JS-инструменты появляются буквально каждый день. В IoT распространена платформа Arduino (микрокомпьютер для встраиваемых систем управления). Есть масса фреймворков, которые позволяют осуществлять аппаратное программирование этой платы на JavaScript. Скажем об оcновных.

Johnny-Five. Главный фреймворк для программирования робототехники, выпущенный в 2012 году. Совместим со всеми моделями Arduino, для работы с аналогами есть набор из специальных плагинов. Также модель Arduino поддерживает микроконтроллер Tessel 2, который программируется на JavaScript.

Другой универсальный инструмент для управления робототехники — фреймворк Cylon.js. Он поддерживает 36 различных платформ. Его советуют выбирать для работы в 2019 году. Поддерживает декларативный синтаксис, поэтому относительно прост в использовании.

Отдельно выделим JerryScript (сверхлегкий, для программирования устройств с самым маленьким объемом оперативной памяти), Nodebots и Silk. Последний позволяет заниматься аппаратным программированием Android-устройств с помощью JavaScript.

Стоит упомянуть и про квадрокоптеры. Именно здесь проникновение JavaScript в робототехнику ощущается особенно сильно — целый ряд современных серийных моделей по умолчанию оснащены операционной системой, которая поддерживает Node.js

Работа с данными.

Самое популярное решение в этой области — использование базы данных MongoDB в связке с Mongoose ORM. Существует даже заблуждение, что это чуть ли не единственная возможность использовать JavaScript в работе с БД. Однако драйвера для Node.js есть и у большинства других баз данных. Более того, другие связки технологий оказываются на практике не менее простыми и удобными в использовании.

Но если уж говорить о трендах наступившего года, то выделим GraphQL, разработанный Facebook. Технология обещает стать доминирующей благодаря таким реализациям как платформа Apollo. Она позволяет создавать чрезвычайно мощный и гибкий API и выигрывает конкуренцию у других инструментов. Можно упомянуть и пока малоизвестный фреймворк Hapi.js. По отзывам разработчиков, он отлично подходит для тех, кто хочет добиться максимального контроля над процессом.

База данных Clusterpoint принимает запросы, написанные в JS / SQL, Clusterpoint имеет встроенный вычислительный движок, который позволяет выполнять код JavaScript прямо внутри распределенной базы данных.

 

Машинное обучение

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

Теперь подробнее. TensorFlow.js — из тех библиотек, на которые в 2019 году стоит обратить повышенное внимание. Разработчики получают возможность обучать модели с помощью высокоуровневого библиотечного API. Ее рекомендуют всем JS-программистам, которые только начинают осваивать машинное обучение. Они смогут строить работу с нейронными сетями полностью в браузере. Это интерактивное  machine learning.

Convent.js позволяет обучать сверхточные нейронные сети. Такие нужны, например, для обработки изображений. В последние годы библиотека перестала активно поддерживаться, но это, к удивлению, мало сказалось на ее популярности. Рейтинги на GitHub продолжают расти. Фреймворк позволяет осуществлять низкоуровневую разработку, поэтому он крайне востребован именно среди опытных специалистов по нейронным сетям.

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

Synaptic предназначен для создания абсолютно любых нейронных сетей, так как этот инструмент имеет несколько встроенных архитектур. С ним очень удобно тестировать алгоритмы машинного обучения и сравнивать их. Внутри фреймворка — свои обучающие программы, список которых постоянно растет. Очень активно поддерживается и развивается сообществом разработчиков. Пожалуй, по этому параметру он лидер, а значит в 2019 году на эту платформу обязательно стоит обратить внимание.

 

Мобильная разработка.

JavaScript позволяет создавать кроссплатформенные мобильные приложения.

PhoneGap — один из старейших инструментов для этих целей. С его помощью вы можете разрабатывать для веба, Android и Apple, развертывать и загружать приложения в соответствующие магазины для каждого типа устройств. Более новая платформа для этих же целей — React Native. Есть еще NativeScriptAngular и Cordova. Все они обладают рядом дополнительных преимуществ в мобильной разработке, ключевое из которых — кроссплатформенность. Существует даже мнение, что благодаря большому сообществу и активному развитию экосистемы, JavaScript со временем может вытеснить из мобильной разработки стандартные языки, на которых программируются приложения под Android и iOS, и стать лидером и в этом направлении.

Мнение спорное, эксперты указывают на ряд недостатков, однако сам факт существования такой позиции говорит о многом, несмотря на полное доминирование Java, Kotlin, Objective-C и Swift.

 

Разработка софта для десктоп

Здесь следует сказать, в первую очередь, о платформе Electron. Используя этот JavaScript-инструмент можно разрабатывать кроссплатформенное программное обеспечение для настольных компьютеров. Один из самых известных примеров — WhatsApp Desktop. Есть еще текстовый редактор Atom. Он написан на CoffeeScript и Less (CoffeeScript преобразует в JavaScript, а Less генерирует CSS). Созданные на Electron приложения умеют обращаться к данным из файловой системы компьютера, а в остальном ведут себя как классические веб-приложения. Платформа отлично подходит для того, чтобы быстро адаптировать уже готовое приложение под десктопный режим работы.

Фреймворк с аналогичным функционалом — NW.js. Другие инструменты мы уже упомянули в связи с мобильной разработкой. Тут остается только добавить, что в будущем лучше отказаться от использования AppJS (несмотря на его мощность). Фреймворк замедлился в развитии и потерял в надежности. Эксперты не рекомендуют выбирать его для работы с новыми проектами.

Если продолжать тему десктопов, то нельзя пройти мимо операционной системы FirefoxOS от Mozilla. Также как и во все остальные ОС в неё интегрирован JavaScript, однако здесь значение этого языка кардинально возрастает.

Adobe Acrobat Adobe Reader поддерживают JavaScript в файлах PDF. Инструменты в Adobe Creative Suite , в том числе Photoshop , IllustratorDreamweaver и InDesign , позволяют создавать сценарии с помощью JavaScript.

Геймдев

Про браузерные игры говорить не будем. Это само собой разумеется. Лучше скажем о Unity3d. Он использует Javascript (UnityScripting) в качестве среды сценариев для программирования игр. Тут уже никакой браузер не нужен — JavaScript выходит за пределы веб-среды и вновь доказывает свою чрезвычайную универсальность.

Впрочем, конкуренцию C# он, конечно, проигрывает. Трендовым инструментом в Unity-разработке JavaScript называть точно не стоит. Даже, скорее, наоборот — это тренд нисходящий и умирающий. Нам важно лишь подчеркнуть — UnityScript существует со времен самой первой версии движка и, по сути, долгое время оставался единственной полноценной альтернативой C# для работы с платформой. Они до сих пор вполне сопоставимы по функциональности и производительности. А вот по размерам экосистемы отличаются, наоборот, кардинально. UnityScript почти перестал развиваться и поэтому постепенно теряет перспективы в геймдеве.

 

Кратко о том, где еще активно используют JavaScript.

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

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

Язык сценариев для Java. Это можно делать с помощью таких инструментов как Rhino и Nashorn. JavaScript дает возможность добавлять новые функции к приложению на Java без выпуска новой версии самого приложения.

Тестирование. В качестве примера уместнее всего привести популярную среду автоматизации Grunt, которая работает на JavaScript. Она отлично подходит для автоматизации модульного тестирования. Инструмент Mocha — еще один удачный образец. Его используют для написания произвольных модульных тестов.

VR. Недавно Facebook запустил React-VR. Это JavaScript-фреймворк, который позволяет импортировать панорамные изображения и 3D-модели. С помощью него вы можете создать что-то в VR, не вникая в сложности разработки 3D-игр. И это очень весомый фактор для использования.

Командная строка. Инструменты NPM, Gulp, webpack. Здесь JavaScript давно всем все доказал — эти технологии используют и будут использовать в обозримом будущем.

 

Курс web-разработки (front-end) в IT-Академии Алексея Сухорукова — это возможность получить профессию с нуля. После нашего курса вы овладеете важнейшими инструментами двух самых востребованных браузерных языков (HTML/CSS и JavaScript), научитесь создавать сайты с динамическими элементами на заказ или под собственные проекты.