×

Рейтинг языков программирования 2018: Go и TypeScript вошли в высшую лигу, Kotlin стоит воспринимать серьезно

Читайте свіжий рейтинг мов програмування за 2024 рік

[Оригинальные данные и скрипты обработки можно взять на GitHub]

В опросе принял участие 7361 человек, 90% участников проживают в Украине.

Коммерческое использование

Тройка лидеров не изменилась. Go и TypeScript впервые вошли в десятку самых используемых, а Clojure — в двадцатку.

А вот динамика последних лет:

Видим, что Java хоть и остается самым распространенным, но последние два года доля этого языка значительно сокращается. Возможно, это связано с развитием альтернативных JVM языков, а может быть, и с альтернативами самой JVM.

JavaScript по-прежнему растет, но темпы его роста значительно замедлились. Впрочем, картинка меняется, если вспомнить, что TypeScript является расширением JavaScript. Тогда видно, что суммарные темпы роста JavaScript/TypeScript остаются те же.

Доля C# так же медленно понижается, как и раньше. Доля Python растет, он уже однозначно стал доминирующей платформой в Data Science.

Самое примечательное — резкое возрастание роли Go. С одной стороны, легкий порог вхождения сделал свое дело, разработчики «почувствовали» вкус высокоуровневой поддержки конкурентности, с другой — наличие встроенных средств для организации структурированного RPC. Сейчас можно сказать, что Go занял свою нишу.

Еще более примечателен рост использования TypeScript. Тут мы видим, как распространение языка начинается с фреймворка: так как новая версия Angular написана на TypeScript, проекты, использующие Angular, тоже начали переходить на этот язык.

Переход iOS разработки на Swift более или менее предсказуем: если в прошлом году Swift использовала где-то половина iOS разработчиков, то в этом году — 76%.

Доля Scala за год осталась практически без изменений. Немного выросло использование C.

Еще примечательно возрастание доли Kotlin практически с нуля до почти одного процента. Вероятно, это связано с тем, что Google приняла его официальным языком разработки в Android.

И последняя новость, статистически незначимая, но приятная для функциональных разработчиков. В этот раз в двадцатку наиболее используемых языков попал Clojure.

Личные предпочтения

Тут мы видим похожую ситуацию. Разве что уменьшение доли Java более стремительное, как и увеличение доли Kotlin. То же самое с JavaScript и TypeScript.

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

Также можно отметить «вторую волну» интереса к Rust и наличие ядра сторонников Erlang.

Посмотрим на наш «индекс предпочтения» — относительное количество пользователей языка, которые для следующего проекта в своей области выберут его же:

Тут тоже интересно: Swift и Kotlin стали практически безальтернативным выбором для iOS и Android соответственно. Следующий предпочитаемый язык — Go, а затем уже фавориты предыдущих лет: Scala, C#, Clojure.

Языки, которые пользователи предпочитают не использовать в следующих проектах: Groovy, Objective-C, 1C, Apex.

Изучение новых языков

Большая часть опрошенных (52%) точно планируют изучить какой-то новый язык программирования в следующем году; еще 30% не уверены. Какие языки интересны для изучения — можем уже сказать в динамике за 2 года:

Фаворит изучения этого года — Python, также будут смотреть на Go, TypeScript, Kotlin. Есть люди, еще не знакомые с Java и JavaScript.

По-прежнему большинство респондентов (57%) собираются осваивать новый язык самостоятельно с помощью книг и документации, не прибегая к курсам. Онлайн-курсы будут смотреть 30%, а к помощи офлайн-курсов с преподавателями прибегнут 8%.

Дополнительные языки

Главный дополнительный язык — JavaScript, также активно используется Unix Shell. Как и прежде, возросла доля процедурных расширений SQL (PL-SQL и T-SQL) и добавился TypeScript.

Свои проекты

Тенденции, в принципе, повторяются. В какой-то мере сюрприз — увеличение количества своих проектов на PL-SQL. Возможно, мы таки увидим замену 1C ;) Также немножко больше начали писать на C.

Финальная таблица

ЯзыкДоля рынкаИзмененияОсновнойДополнительныйСвои проектыИндекс удовлетворенности
1Java20.67-2.7142994515440.63
2JavaScript16.541143360923220.61
3C#14.1197555710830.77
4PHP13.0590270010530.60
5Python9.76+1675117411500.69
6C++4.963435666140.59
7Swift3.4+1.162351613060.86
8Ruby2.972052302490.60
9Go2+1.21402933700.85
10TypeScript2+1.751399175220.64
11Scala1.551071791840.77
12C1.4963542440.28
131C1.127850520.18
14Objective-C1-0.79732851470.18
15Kotlin+0.7642432100.86
16PL-SQL688941530.22
17T-SQL557802090.24
18Pascal/Delphi40881290.3
19Perl2197350.3
20Clojure2031710.75
21R20125820.25
22Apex11310.18
23ActionScript1142380.3
24Groovy1195140.01

Тут изменения в доле рынка отмечены только в том случае, когда они статистически значимы. То есть с вероятностью 95% данные двух опросов не могут быть собраны на основе данных разных групп внутри одной гауссовской популяции.

Дополнительные данные

Возраст разработчиков в зависимости от языка:

Самая молодая тусовка — по-прежнему Kotlin. Медианный возраст — 24 года, 27 — для Java разработчиков, 28 и 29 — для Go и Scala соответственно. А самые взрослые — разработчики на Pascal/Delphi, тут медианный возраст превышает 37 лет.

Посмотрим на зависимость между языком и опытом работы:

Особых аномалий нет — люди приходят в программирование через JavaScript (и немного R, наверное работая с Data mining). Perl, Pascal/Delphi (и, вероятно, в недалеком будущем — PL/SQL) — потенциальная область риска.

Общие данные по опыту работы:

Доля разработчиков с опытом год или меньше впервые за последние 7 лет начала снижаться. Либо замедлился рост индустрии и мы переходим в состояние зрелости, либо система образования «не успевает».

И мозаика этого года: видно, что через 4 года большинство разработчиков меняют свой первый язык программирования на что-то другое.

Есть ли разница в использовании языков у нас и за границей?

Разница довольно большая. Видно, что за границей больше пишут на Java, Go и Scala и меньше — на JavaScript, PHP и C#. Впрочем, там характеристики опыта и возраста аудитории тоже другие, так что механически переносить результаты нельзя.

Распределение возрастов:

Образование

Давайте на этот раз посмотрим первый язык только для новичков в программировании. Это будет отображать изменение в системе образования более точно:

Мы видим, что от Pascal/Delphi постепенно уходят, также больше людей пишут свои первые программы на C++ (больше, чем на Java). Поэтому есть надежда, что вместо позавчерашних технологий студенты будут осваивать вчерашние ;)


Результаты предыдущих опросов: 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017.


В заключение — давайте сделаем еще один опрос:

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

  • на украинском
  • на русском
  • на английском
  • мне все равно.

Ответы оставляйте в Google-форме.

Все про українське ІТ в телеграмі — підписуйтеся на канал DOU

👍ПодобаєтьсяСподобалось0
До обраногоВ обраному0
LinkedIn

Схожі статті




95 коментарів

Підписатись на коментаріВідписатись від коментарів Коментарі можуть залишати тільки користувачі з підтвердженими акаунтами.

Запустили новый опрос по языкам — dou.ua/...​ng-languages-survey-2019. Заполняйте анкету!

Додайте DSL в перелік мов (Domain Specific Languages)

Ну це=ж не мова програмування. DSL — це засоби для створення мови, що підходить до опису предметної області таким чином, що «програмування як такого» там не залишається. Якщо залишаеться — то це не DSL а скриптинг. Якщо у вас свій скрипт, просто напишіть його. (там є other де можна вписати свою назву)

Але 98% відсотків я пишу проекти на DSL, а не на «мовах програмування». Та чим DSL відрізняється від того ж тайпскрипта, який під капотом JS?

За такою логікою переважна більшість пише на DSL, які під капотом є машинним кодом.

Абсолютно вірно! Де та межа, яка розділяє мову програмування від DSL?

З Вікіпедії: „A domain-specific language (DSL) is a computer language specialized to a particular application domain. This is in contrast to a general-purpose language (GPL), which is broadly applicable across domains.”

Ребята, кто может подсказать или отозваться о ресурсе JavaRush. Сейчас там хорошая скидка на Премиум на год. Стоит ли обучаться Java через этот ресурс? Есть альтернатива Udemy и Hexlet. Благодарю

Відношусь скептично до відносних даних у таких рейтингах. Ринок росте з року в рік у всьому світі. Й кількість програмістів та проектів теж. Просто є мови використання яких зростає повільніше за ріст ринку. Й виходить що абсолюна кількість проектів, програмістів а отже й використання такої мови зростає з року в рік. Але так, у відносних цифрах є «спад». Й тут приходять Аналіт奲 які забувають що 5% від 1000 та 1% від 10000000 це якби різні речі.
Й ще треба розуміти що на один складний проект з’являється сотні простих. Де складні технології взагалі контпродуктивно використовувати.

Й кожне речення починати з «й» теж контрпродуктивно, й.

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

Да вроде-бы политика вне <что угодно>, не? И даже, наверное, в Крым можно съездить, отпуск ведь вне политики и вообще что простому человеку за дело до грязных игр политиканов, стравливающих братские народы. Ну если вы не не упорант, конечно.
«Я тоже не поддерживаю», ага.

ДжетБрейнс же уже чешская кантора, не? :)

Ненавиджу лукавства і подвійні стандарти. «Ми не користуємось продуктами окупанта», а сам при цьому пише мовою окупанта і я впевнений користуєтся мобільним зв’язком теж компаній окупанта. А ввечері піде в кафе окупанта або в спортивний зал фірми окупанта!

пише мовою окупанта

Російська мова Росії не належить. Просто через свою лінгвоінвалідність кацапи чомусь уявили що російська — їх власність.

Почему C++ это «вчерашняя технология»?

потому что это колосс на глиняных ногах

Страуструп говорит, что C++ — это Vasa Ship — open-std.org/...​s/papers/2018/p0977r0.pdf .

В очередной раз не понял мозаику про опыт работы программистом на выбранном языке. Объясните, как это читать.

ширина квадратика — доля разработчиков с опытом X, высота — доля с опытом Y именно на этом языке. Смотря на таблицу — больше всего народу с двумя годами опыта (с одним уже меньше) вобще. В каждом следующем году, диагональ меньше (если бы люди язык не меняли — была бы только диагональ)

Довольно сложная для восприятия. Я бы как-то ее модернизировал, но пока не знаю, как :)

Как-то грустно выглядит график Ruby.

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

А сам язык и, конечно же, рельсы медленно, но уверенно развиваются, с каждой версией языка он становится все быстрее. Рельсы по мнению многих устарели и не нужны, но это стереотип про медленную 4-ю или еще хуже 3.2 версию, новые 5-е рельсы поддерживают современный фронт-энд и фреймворки из коробки, являются удобным, быстрым и надежным веб-фреймворком.

Если взглянуть на опросы по языкам и статистику по миру, то много где Ruby стабильно держится в десятке и популярнее Swift, Go, Haskell и других «модных» языков (хоть и сравнивать Руби с Хаскелем некорректно). А по различным опросам разработчиков Ruby частенько в топ 5 языков, которых разработчики хотят изучать следующими.

И вообще, экосистемы и комьюнити лучше чем в Ruby-мире я не видел еще. Так что всё у него хорошо будет не смотря на статистику в Украине.

Языки, которые пользователи предпочитают не использовать в следующих проектах: Groovy

вот сейчас обидно было

Для порівняння в чомусь подібне опитування від Hacker Rank — research.hackerrank.com/developer-skills/2018

Как я и предсказывал 5 лет назад, Go начал серьезно сдавать позиции. Scala наше все!

Яка мінімальна кількість відповідей була потрібна, щоб мова увійшла в рейтинг?

Может администрация мне обяснить, как так получается, что 10+ лет опыта количество УВЕЛИЧИВАЕТСЯ каждый год, а 6,7,8 и 9 — уменьшается? Что люди уезжают с 6-9 годами и массово возвращаются после 10?

Скорее потому что у тех у кого 10+ лет опыта «уже слишком стары для этого д****а» или банально есть проекты которые их кормят тут. У нас всё таки выгоднее получать 2К$ зарплату чем 4К$ за бугром. К тому же, с возрастом желание заводить трактор уменьшается.

Мне кажется что дело не в ржавости трактора, а в детях и жене, точнее в бюрократии, которая связана с перевозом семьи за бугор. Когда едешь сам — намного проще. Но как показывает практика — если сильно надо — то валят вполне удачно. Вопрос в том на сколько сильно надо?

Важно же в динамике. Если опрос — реален, то как минимум должно увеличиваться по годам количество 7,8,9 ПЕРЕД увеличением 10+. Иначе совсем непонятно, что есть драйвером роста.

Можливо,

  1. серед досвідчених програмістів у віковому діапазоні, відповідному 6-9 рокам досвіду, все менше робить вибір залишитися працювати в Україні;
  2. старшим цього віку нема змісту їхати: щоб отримувати закордоном адекватну пенсію на старості, підозрюю, треба відпрацювати там достатню кількість років, та і на купівлю житла там можна вже не встигнути заробити.

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

Либо, что в диапазоне 6-9 лет людям не до зарплатных опросов :) Либо, что после 6-9 лет пробуют себя на руководящих должностях, а потом понимают, что это не их. Много объяснений можно придумать.

Это не меняет того факта, что 10+ РАСТЕТ по годам, а 9+ падает. Это же не календарный возвраст. Откуда берутся 10+ если предыдущие опыты — падают?

Кількість людей у категорії 10+ зростає, якщо тих, що залишають її (виїжджають, залишають IT, перестають працювати, вмирають), є менше, ніж тих, хто прибуває (з торішньої категорії «9»).
А те, що «9» падає, може означати, що темпи росту галузі не перекривають зростаючий відтік досвідчених кадрів.

Ну не настолько ж их много возращается. С моей точки зрения просто 10%+ статистики джуны, которые пишут, что у них 4к и 10 лет стажа.

Категорія 10+ поповнюється не тільки тими, хто повертається, але й тими, хто переходить у неї з торішньої категорії «9».

Это не меняет того факта, что 10+ РАСТЕТ по годам, а 9+ падает. Это же не календарный возвраст. Откуда берутся 10+ если предыдущие опыты — падают?

Все больше и больше людей с 10+ лет опыта начинают проявлять интерес к опросу, раньше они его игнорировали — было много других интересных и важных дел, а вот тепер и можно отвлечься на чуть-чуть и поучаствовать в опросе.

Возмжно, но согласитесь, странно выглядит когда 9лет опыта не проявляют а уж с 10 — точно да. Более вероятно «ну и ты говори».

Более вероятно "ну и ты говори«.

Но человек может быть искренне(!) уверен, что его 8-9 лет опыта совершенно уникальны, и они даже перевешивают «стандартные» 12 лет опыта.

скорее 1-2 года и «играл на компьютере с 7 лет, раз в год кодил змейку на бейсике».

можливо просто різні групи по різному схильні проходити такі опитування?
й тоді, можливо, питання має стояти як:
чому групи з досвідом

6,7,8 и 9

рідше проходять опитування ніж з досвідом 10+

Математика ж
Простой пример: два программиста 9 лет, два программиста 10 лет, один — восемь, один — семь. Через год — четыре программиста 10 лет, два 9, один — 8, еще через год — шесть программистов 10 лет, и т.д. Если расширить года до 30+ лет программирования, график разровнялся б :)

Вариация первого варианта: определение сеньора динамическое, топ N % по квалификации. Общая квалификация падает — планка сеньорства снижается, в сеньоры берут даже тех миддлов, которые застопорились в развитии. И наоборот, общая квалификация растёт и некоторых вчерашних сеньоров уже сеньорами не берут.

И кого тогда сеньором считать?

Хм, мое субьективное мнение таково, что количество проголосовавших на ДОУ != количество задействованных в сфере специалистов. Т.Е. опрос показывает, какие языки превалируют среди посетителей сайта, но никак не глобально в сфере ИТ Украины, имхо, и вставлять колонку «доля рынка» как то самонадеянно )).

опрос показывает, какие языки превалируют среди посетителей сайта, но никак не глобально в сфере ИТ Украины, имхо, и вставлять колонку «доля рынка» как то самонадеянно )).

Думаю, що можна.
Є таке поняття «довірчий інтервал» у математичній статистиці, і він звужується при збільшенні вибірки.
Якщо по-простому, то при достатньо великій кількісно вибірці частка екземплярів, які мають деяку властивість, добре відображає реальність (тобто яка частка є у множині всіх існуючих екземплярів) навіть якщо ця вибірка далеко не співпадає з множиною всіх існуючих екземплярів.

Деколи це може бути не так через нерепрезентативність вибірки, але тут ніби не той випадок.

Як раз той. Ходіння на ДОУ може залежати від мови, типу контори та індустрії, освіти, досвіду, міста, країни, часової зони, статі... кількості дітей, нарешті. Яка теж може залежати (чи корелювати) від того усього.

Дякую, цікаві тенденції.
Трохи сумно за плюси, все ж мова активно розвивається, виходять нові стандарти і сфера застосувань дуже широка, особливо, якщо брати до уваги такі фреймворки як Qt, а відсоток застосування, судячи з графіку, щороку зменшується.
Трохи здивований відсотком шарпу, думав, що він займає трохи більше ринку, а він теж з кожним роком падає.

В основном здесь Питон для того же, для чего JS.

Для чого? Як Пітон може підмінити JS?

Софт, який би 10 років тому писався би на Qt, сьогодні пишеться на реакті — десктопний софт вмирає вже давно через веб, це одна з причин. Друге, це те що С++ розвивається, але куди? В стороні ще більшої складності — ще більше фіч, ще більше нових правил, ще товша специфікація. Complexity має вмирати, і це добре, що С++ втрачає популярність.
Go витісняє C++ для мережевих бекендів, Rust починає витісняти для юзкейсів, де потрібний максимальний перформанс. Тож все достатньо логічно.

это только для украины такой спад, потому что у нас не могут в С++ — экспертизы не хватает не отстреливать себе ноги у 23-летних синьоров, даже несмотря на ввод умных указателей и прочих удобств, о которых в конце 90-х и начале 2000х даже мечтать было приятно
а в мире — чем больше ембедеда, тем больше С++ и популярность последние 2 стандарта сильно укрепили позиции С++
«топтание на месте» в разделе популярных технологий в течении последних 5 лет при постоянно растущей кодерской аудитории — явный признак стабильности а не умирания
да, вытеснили из десктопа, но только из того десктопа где производительность не нужна — формошлёпство всякое и т.д., а все низкоуровневые алгоритмы как писали на С++ так и будут
тем более с приходом cmake кроссплатформа расцвела, все основные либы компилятся в 80% случаев из коробки под все платформы, вон даже boost переводят на cmake
и сейчас все больше и больше проектов на С++ пилят сразу под топ-5 осей сразу

По поводу «только для Украины» — отнюдь. Острел ног он не от недостатка квалификации, а от дизайна самого языка. Факт того, что нужно 5 лет практики в языке, чтобы перестать отстреливать себе ноги на простейших по меркам 2018 года программах, только подтверждает то, почему С++ никак особо уже не привлекает девелоперов. Украина от «не-Украины» (возьмем Европу) в плане ИТ отличается лишь тем, что больше англоговорящих девелоперов, которые больше путешествуют (=посещают конференции), шире кругозор и т.д. На каждого нашего «С++ сеньера», который сидит в одной технологии 10+ лет и получает стабильно высокую зарплату (=не имеет стимула особо развиваться и учить новое что-то), «за бугром» 10 сеньеров, которые освоили уже 3 новых языка, которые для своих ниш подходят лучше, чем С++. Но это уже оффтопик слегка.

страны оси задницы

А я всё думал-гадал к какому лагерю мы относимся, а оно во как оказалось :D

В нас спільні частини коду на дроні, десктопі і андроїді. Все на С++, бо, як запитував класик, яка розумная цьому альтернатива?

С++ чудово розвивається, частини з С++17 використовуємо.

Rust ще нестабільний, і пишуть, що вчиться геть не краще за С++, і також має всі ті «виключення з виключень», а ще певні задачі робляться лише через додатковий інтерфейс.

хтось з ФП не знайомий, то певні речі займуть більше часу (traits, associated types,
наприклад).

А какое отношение trait имеет к FP? Это именно что чисто оопшная концепция.

Странно... судя по доке rust, traits там вполне себе скалообразные

Там для типа может быть имплементация trait (можно отоджествлять с implicit преобразованием в scala) — получаются typeclass-ы

impl PartialOrd for Person {
    fn partial_cmp(&self, other: &Person) -> Option<Ordering>  { ... }
 }

В неті купа ревью висить на зразок
hackernoon.com/...​ropping-rust-fd1c32986c88

Рекомендую спробувати і написати щось хоча б за 20-30 годин. Спробувати завалити «нестабільну» реалізацію. Маючи кілька тисяч годин роботи з С++ та кількасот годин з Rust мені дуже подобається тепер borrow checker, макроси та решта Rust’у.

Дякую, чудово.

Распределение возрастов:

По осі абсцис позначте роки, хоча б з інтервалом 5 років.

Боюся, щоб Python не помінявся з Pascal/Delphi в опитуванні 2030 року.

Python уже все всем доказал как отличный инструмент для ряда задач. Что будет через 12 лет? =)

Я про те ж, Pascal/Delphi на прикинці 90-хх здавався відмінним інструментів, недарма ж стільки починало з нього.

Думаю, це все — ті, хто вчив його в освітніх закладах. А там сиділи викладачі з 80-х, що про С++ не чули, або боялися.
Реально ж він помер через C++ та C#
Пітона може хтось і вб’є, але хто буде той герой — допоки невідомо.
C++ лаконічніший та потужніший за Паскаль. Хто лаконічніший за Пітона?

Тоді чому він досі не настільки популярний?

Замінили графік, тепер з роками.

Підписатись на коментарі