Rambler's Top100
Реклама
 
Статьи ИКС № 4 2019
Дмитрий РОГОВ  23 сентября 2019

Язык без костей: на чем пишут код современные программисты

В последние несколько месяцев были опубликованы сразу несколько рейтингов популярности языков программирования. Их данные практически совпадают. О чем свидетельствует стабильность спроса на инструменты написания программного кода в современном мире?


JavaScript – чемпион

Согласно данным исследования The Developer Ecosystem Survey 2019, составленном на основе опроса 7 тыс. профессионалов в области разработки ПО в различных регионах мира, топ-10 самых востребованных языков программирования сегодня выглядит так:
  1. JavaScript (69%).
  2. HTML/CSS (61%).
  3. SQL (56%).
  4. Java (50%).
  5. Python (49%)
  6. Shell (40%).
  7. PHP (29%).
  8. TypeScript (25%).
  9. C# (24%).
  10. C++ (20%).
Число в скобках соответствует доле респондентов, сообщивших, что регулярно используют данный язык в своей повседневной работе по написанию кода. Альтернативы приведенному рейтингу воспроизводят общую картину, вариации несущественны.

Swift выпал из рейтинга на 11-е место только в прошлом месяце. Наибольший прогресс за последние несколько лет отмечается у TypeScript, который впервые появился в рейтинге три года назад на 26-й позиции, около четырех месяцев назад стал 12-м, а сегодня занимает уже восьмое место. Подъем связывают с доминированием JavaScript и возможностями TypeScript в обеспечении дополнительной безопасности.

Что касается JavaScript, то его лидирующие позиции не меняются уже шесть-семь лет, что обусловлено его удобством для front-end-разработки, совместимостью с большинством популярных браузеров, гибким синтаксисом и другими плюсами, включая возможность выполнения на сервере через Node.js. А еще JavaScript – идеальный язык для начинающих программистов.

Языки HTML/CSS, Shell и SQL используются широко, но в качестве вспомогательных. Главной специализацией они являются лишь для небольшого числа программистов.

Python и Java: №2 по факту с большим потенциалом роста

Несмотря на формальные позиции в рейтинге с номерами 4 и 5, языки Python и Java по факту делят второе место по популярности в качестве инструмента написания кода.

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

По данным Stack Overflow, Python наиболее часто рассматривается в плане освоения в качестве второго языка с перспективой полного перехода на него: 12% опрошенных разработчиков планируют такой переход в ближайшее время, что на сегодня является наивысшим показателем. По версии исследования JetBrains, эта цифра еще выше – 27% респондентов начали или продолжили его изучение за последние 12 месяцев.

Python отлично подходит для back-end-разработки, предоставляет широкий спектр возможностей и широко распространен в самых разных отраслях и работающих там приложениях. Еще одна причина всплеска популярности языка: его высокая применимость в задачах, связанных с такими областями современного хай-тека, как машинное обучение, нейросети и обработка больших массивов данных (data science).

Python поддерживает написание кода, сочетающее использование простых функций и переменных без акцента на определения класса.

Что касается Java, то этот язык – один из самых востребованных последние 20 лет. Это объектно-ориентированный язык, проще C++ за счет наличия автоматического распределения памяти и сбора мусорного кода. Java также один из наиболее платформо-независимых языков. Писать на нем можно с помощью любого устройства, далее скомпилировать его в низкоуровневый машинный код, а затем выполнить его на любой платформе с помощью виртуальной Java-машины (JVM).

Сегодня Java является базой для ОС Android и применяется в практике 90% компаний списка Fortune 500 для широкого спектра back-end-приложений. Язык остается одним из лидеров в роли единственного языка, используемого программистом, – 44% по данным исследования JetBrains.

Семейство C и PHP: старые кони для новых борозд

C – один из самых старых языков в мире. Он остается востребованным и по-прежнему вносит существенный вклад в отрасль программирования, являясь корневым для целого семейства: Java, Objective-C, C# и С++.

Незаменимый инструмент для разработки высокопроизводительных систем, C также является базой для OS Linux и оптимальным выбором для создания верхнеуровневых приложений. C++ часто выбирают разработчики игр, создатели VR-решений, также он подходит для всего комплекса задач, связанных с графикой. Распространенность и популярность С-языков очевидна из рейтинга.

То, что создавалось в 1994 году как набор инструментов для развития и поддержки личной страницы программиста, теперь используется в 83% всех веб-сайтов в интернете. Язык PHP предназначен для создания веб-страниц на HTML: бесплатный, простой в настройке и освоении начинающими программистами, он сверхпопулярен, особенно для создания динамического контента веб-страниц.

Вне топа не значит «аутсайдер»

Отставание от первой десятки в таких рейтингах вовсе не означает невостребованность или неактуальность: множество ситуативных факторов могут влиять на позиции языка программирования в текущий момент, что видно по некоторым участникам топ-10, попавшим туда относительно недавно.

В ближайшем арьергарде следует отметить Swift как базовый язык для разработки всего, что связано с Apple (iOS и Mac OS). На него повлияли Python и Ruby, он более быстрый и защищенный, чем считающийся его предшественником Objective-C. Swift подходит для новичков и требует меньше кода, больше напоминая естественный язык. На него просто переключаться тем, кто владеет JavaScript, Java, Python, C# и C++. Тем не менее Swift отличается сравнительно небольшим количеством компетентных разработчиков – только 8,1% сообщества использует его в качестве главного языка, а из-за частоты обновлений Swift также считается менее стабильным с каждым новым релизом.

Язык Ruby родом из Японии. Это динамичный open source-язык программирования, сфокусированный на простоте использования и высокой продуктивности. Нетребователен к количеству строчек кода, больше походит на естественные языки и служит для разработки простых приложений. Сложности, ограничивающие его применимость, заключаются в самой природе Ruby – динамически типизированный язык не просто поддерживать, а его гибкость делает его довольно медленным инструментом.

SQL широко используется для всех задач, связанных с базами данных в веб-фреймворках и БД-приложениях. Владение SQL позволяет оптимизировать управление процессами анализа данных и улучшать качество решений, принимаемых на основе этой информации. SQL-девелоперы всегда ценились высоко, а с ростом роли данных в современных digital-проектах этот тренд становится еще более явным.

Данные исследования JetBrains также ставят в перечень наиболее перспективных для изучения в будущем язык Go: сегодня его используют всего 18% разработчиков (8% в прошлом году), однако сразу 13% назвали Go целью своего обучения и дальнейшей миграции в следующем году. Язык предназначался для создания высокоэффективных программ, работающих на современных распределенных системах и многоядерных процессорах. Go – продукт компании Google, поэтому в перспективах развития сомневаться не приходится.

Что учить?

Тема языков программирования – одна из самых актуальных в HR-срезе рынка ИТ.

К сожалению, российский рынок ИТ в целом и его кадровая составляющая в области разработки в частности таковы, что гарантировать долгосрочную перспективу стабильного развития карьеры при владении одним языком невозможно. Как мы видим, одни языки довольно долго остаются «в обойме», роль многих заметно уменьшается со временем, а другие «выстреливают» благодаря разнообразным естественным рыночным и отраслевым факторам.

В России к естественным факторам добавляется влияние государства на развитие ИТ-рынка. Скажем, по каким-то причинам госзаказ в области ИТ отказывается от использования C-семейства в своих разработках, а привилегии получает язык, не входящий сегодня и в топ-30. С другой стороны, в нашей стране государственным решением может быть создан массовый спрос на довольно продвинутые технологии, причем выбор будет сделан в пользу самых свежих технических решений. Что, в свою очередь, создаст спрос на специалистов в этой области.

Но и на Западе в этом отношении тоже не все просто. В целом традиция защищать свои инвестиции в ИТ в долгосрочной перспективе и пестовать специалистов, компетентных в определенном технологическом стеке (включая язык), там развита сильнее, чем у нас. Однако и там в рынок вмешивается множество случайных факторов – возьмите историю с языком Kotlin наших разработчиков из JetBrains. Нельзя сказать, чтобы он обладал какими-нибудь уникальными возможностями, но в нужный момент времени показался менеджерам Google вполне убедительным (особенно в свете трений компании с Oracle по поводу использования Java), и был принят в состав Android Studio 3.0, официального инструмента разработки для ОС Android.

Еще один момент: популярность языка не определяется его удобством или внутренними качествами. С++ – переусложненный, неудобный язык. С точки зрения функциональности его востребованность не объяснить. Java задумывался как язык для устройств и «выстрелил» за счет скачка веб-разработки в начале 2000-х годов. Расцвет Python мы видим только благодаря прорыву больших данных и нейросетей. Предсказать, что будет следующим в этом списке, невозможно.

С другой стороны, давно существует весьма качественный язык D (это C++ без всех его основных минусов), но уровень его популярности по сравнению с лидерами практически нулевой. Драйверами успешности языка являются не его качества, а традиции использования, размер сообщества разработчиков и маркетинг. Продвинуть новый язык сегодня и в будущем по-настоящему смогут только ИТ-гиганты.

Что касается будущего спроса на языки, уверенным можно быть только в перспективах семейства C и Java – они будут востребованы за счет глубины проникновения в enterprise-сегмент, а также инерции сообщества разработчиков и экономики в целом.

Дмитрий Рогов, директор по технологическому развитию, «АйДи – Технологии управления»
Заметили неточность или опечатку в тексте? Выделите её мышкой и нажмите: Ctrl + Enter. Спасибо!