Языки программирования

28.05.20
Динамика спроса языков

РАЗНООБРАЗИЕ ЯЗЫКОВ

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

ТЕКУЩЕЕ СОСТОЯНИЕ WEB

Для современной разработки бэкенд-(серверной) части web используется один из популярных языков: php, python, java, ruby, c#, rust, go, javascript.
Для современной фронт-(клиентской) части web используется только javascript.

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

Его преимущества:

  • универсальность:

    Единый язык для фронт- и бэк- частей приложения (более подробно про фронт и бэк - здесь), который полностью поддерживается современными браузерами (и в отличии от технологии WebAssembly имеет полную их поддержку) и также как и java является языком общего назначения. Т.е. имеет широкий спектр реализации от применения в микроконтроллерах (https://www.espruino.com/) и приложений для смарт-гаджетов (TV и часов), до сложных распределенных систем enterprise-масштабов (после реализации Microsoft его строго типизированной версии - TypeScript).

  • высокая скорость обработки запросов:

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

  • быстрота реализация проектов и сильная поддержка:

    Из-за своей простоты, огромной поддержки и развития сообществом. Язык реализует поддержку стандарта ECMAScript осуществляемую комитетом TC-39, куда входят такие IT-гиганты как Microsoft, Facebook, Google, Apple, IBM, Intel, Alibaba и прочие, но не менее известные компании. Как правило разработкой других языков занимаются отдельные компании и сообщества разработчиков.

  • популярность:

    javascript входит в число самых популярных языков программирования среди разработчиков и последние года занимает лидирующие позиции по количеству использования.

    Один из рейтингов языков digital-агенств используемых для разработки мобильных, корпоративных, десктопных и веб-приложений, предоставлен "Тэглайн" (первое и самое крупное русскоязычное аналитическое агентство) - рейтинг и ежегодно публикуемые статистические данные на GitHub (крупнейший веб-сервис для хостинга IT-проектов) - здесь, Stack Overflow (основная система вопросов и ответов о программировании) - здесь.

ТЕКУЩЕЕ СОСТОЯНИЕ MOBILE

Ни для кого не секрет, что основным языком разработки приложений на Android является kotlin, на iOS - swift. То есть раньше приходилось писать разные приложения под каждую из платформ.
Однако в последнее время появились технологии, реализующие принцип "один код везде" (на обе платформы сразу): Xamarin (Microsoft), Flutter (Google), React Native (Facebook), Weex (Apache), NativeScript (Telerik), Cordova (Apache).

Для javascript для реализации нативных приложений это:

Для примера, это четыре популярных приложения (на React Native):

  • Instagram
  • Facebook
  • Skype
  • Pinterest

Есть еще гибридная реализация, где веб-приложения трансформируются в мобильное, с единой кодовой базой через javascript - Cordova, Capacitor.

ТЕКУЩЕЕ СОСТОЯНИЕ DESKTOP

Для разработки десктопных приложений в основном используются следующие языки: java, c#, c++, c, swift, javascript.

Для разработки десктопных приложений на javascript используется Electrone (подробнее).
Для примера, это два популярных приложения реализованных на нем:

  • VS Code - популярная среди разработчиков интегрированная среда разработки (IDE)
  • Figma - популярный среди дизайнеров графический редактор и сервис

ВЫВОД

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

Тем не менее, стоит сказать, использование одного языка в крупных проектах не ограничивается (из-за своей архитектуры, сильных и слабых сторон самих языков), но для начального этапа роста и реализации бизнес логики проекта в большинстве случаев его будет более чем достаточно. Особенно для стартап сферы, где ценятся простота, скорость реализации и быстрый рост.