Мир веба быстро меняется.

О достоинствах и недостатках, а также о возможностях применения JavaScript , рассказал Илья Литвинов – тренер Web Academy.

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

Эти предрассудки основаны на том, что изначально JavaScript был создан для анимирования элементов веб-страниц. В далеком 1995 году компания Netscape решила улучшить скромный внешний вид браузера и создала JS, для того чтобы на страничку можно было “добавить снег”.

С момента создания JavaScript прошло 26 лет, JS вырос с “игрушечного” языка для украшения браузера до “вездесущего”, применяемого для создания больших и сложных веб-приложений. 

В 1995 году появилась спецификация языка ECMAScript - это стандарт, а JavaScript - коммерческое название. С тех пор поменялось одиннадцать стандартов, сейчас у нас уже ES-2020. С 2015 года они выходят каждый год. Самый важный стандарт - ES6

И сравнивать возможности JavaScript 1995 года и 2020 года просто не корректно. Задачи, которые JS выполняет сегодня, очень сильно изменились.

В 2021 году JavaScript - это зрелый серьезный язык программирования.

Подтверждаем популярность JavaScript статистикой 

JavaScript два года подряд занимает седьмое место в рейтинге по данным индекс TIOBE, оценивающего популярность языков программирования путем подсчета результатов поисковых запросов и на основе различных метрик, определяющих количество инженеров JS. На мой взгляд, этот рейтинг близок к реальности.

А по данным комплексной платформы Github 18% вновь созданных репозиториев (специальных серверов, на которых хранится ПО) в 2020 году были на JavaScript, Python и Java использовали реже. 

 

Web вытесняет все.

Многим бизнесам нет смысла создавать десктопные приложения, ведь 80% задач можно решить в браузере, начиная от создания векторных приложений, заканчивая бухгалтерией в Excel. 

Все крупные компании Google, YouTube, Figma, Netflix перешли в web.

В 2021 году JavaScript мегапопулярен и без него никуда, потому что хотя бы фронтенд будет написан на JS.

Что можно создавать на JS?

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

  • веб-приложения (для обывателя - сайты) с интерфейсами и админпанелями;
  • нативные приложения для мобильных телефонов, в нашей компании и фронт, и бэк будет написан на JS. Многие коммерчески успешные приложения на JavaScript создают под IOS и под Android и распространяют через App Store и Play Маркет;
  • сетевые приложения, то есть серверы давно уже создаются на JavaScript;
  • консольные утилиты. На JavaScript мы пишем все инструменты, которые помогают нам работать на JavaScript. Если вы используете редактор Visual Studio Code, знайте, что он написан на JS; 
  • игры в 3D и 2D, сопоставимые по качеству с играми для PlayStation X-летней давности.

JavaScript умеет:

  • открывать и закрывать окна в браузере;
  • создавать трехмерные демонстрационные сцены (игры, превью) посредством WebGL. Конечно, вебперфоменс на JS немного ограничен, но вполне впечатляет. Сложные сцены лучше создавать на Web Assembly;
  • выводить аудио и видео, создавать софт для редактирования, с помощью API программировать звуки, писать музыку в браузере; 
  • поддерживать VR-решения для браузера. 

С каждым обновлением появляются какие-то новые интересные штуки. Сейчас существует широкая поддержка в браузере human interface device (устройств по типу игровых контроллеров для PlayStation). Последняя фича, которую я недавно применил: взял контроллер со своей PlayStation-4, подключил к браузеру и там написал игру, управляемую этим контроллером. Это круто. Все экспериментальные фишки еще больше убеждают меня, в браузере можно делать все!

Браузер сейчас - это платформа, на которой можно делать много интересных вещей. И все это на JavaScript.

Достоинства языка JavaScript 

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

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

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

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

Если вы пишите на PHP, на Python или Java, вам нужно обязательно изучить JavaScript. 

Если вы бэкендщик и хотите на фронтенде что-то сделать, вам нужно изучить JavaScript. 

Для фулстек JS идеально подходит, можно и на фронтенде, и на бэкенде писать.

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

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

В 2021 году JavaScript есть везде, начиная от группы FAANG до локальных компаний.

Потребность в JavaScript-разработчиках увеличивается. 

Недостатки, которые я выделил за 8 лет работы 

Динамическая типизация, вы не можете гарантировать типы, которые хранятся у вас в переменных. Эта проблема решается с помощью TypeScript от Microsoft. 

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

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

Выводы

Учить JavaScript однозначно стоит. Это значительно расширить Ваши возможности как разрабоотчика и повысит Вашу ценность на рынке.