Рейтинг мов програмування 2020: JavaScript випередив Java, а Dart увійшов у першу лігу

А ще TypeScript лідирує за темпами росту, цікава ситуація у світі мобільної розробки та непохитна популярність Python.

Представляємо результати щорічного опитування щодо мов програмування. Цього разу зібрали 9747 анкет. Поїхали.

Комерційне використання

Бачимо, що JavaScript нарешті суттєво випередив Java і став найпопулярнішою мовою програмування. Також серед нових мов слід звернути увагу на Dart — він одразу зайняв, не сказати щоби велику, але досить помітну нішу.

Якою мовою пишете для роботи зараз


Нам буде зручніше мати під рукою історію питання:

Якою мовою пишете для роботи зараз (2012-2020 рр.)


Тут важко не відмітити падіння популярності JVM та ріст JS-екосистеми (JavaScript, TypeScript). Схоже, на серверах JVM стек поступається Node.js. А от темпи зменшення популярності C# призупинилися — можливо, це пов’язано з розповсюдженням .NET Core — відкритого кросплатформного райнтайму, який знімає для користувачів проблему «прив’язки до вендору».

Також цікава ситуація у світі мобільної розробки: частка Swift незначно зменшується, Kotlin — незначно росте, коли, з іншого боку, mobile first для бізнесу вже традиційна практика. Можна припустити, що в мейнстрім пішли кросплатформні фреймворки (ті ж React Native й Flutter), а нативні мови використовуються більше для системних задач.

Давайте подивимось на те, які зміни є статистично значущими в порівнянні з попереднім роком:

  • Ріст: Python, TypeScript, Dart, і... чомусь 1C.
  • Спад: Java, PHP, Objective-C та Scala.

Цікаво, що в порівнянні з 2017 роком, статистично значущі зміни майже ті ж.

Щодо Scala, мені здається, що тут є частка «обережності» старту проекту перед виходом Scala 3.0 (він же Dotty). До речі, Dotty — дійсно нова мова й абсолютно фантастична (приходьте на ScalaUA).

Зазначимо, що майже 8% респондентів використовують декілька мов у якості основних.

Особисті вподобання

Зараз фаворитом є Python, далі йдуть майже однаково рівні C#, JavaScript та Java, а далі вже — TypeScript.

Якщо дивитися у ретроспективі, можна відмітити схожий на експоненційний ріст Python та TypeScript.

Якби ви зараз починали комерційний проект і у вас була свобода вибору


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

Подивимося на «індекс вподобання» — це відношення розробників на мові X, які для наступного проекту у своїй області також оберуть X.


Ми бачимо, що найбільш приємні мови — це порівняно нові мови, що спеціалізовані для своєї предметної області.

Найбільш задоволені (92%) користувачі Rust (цієї мови навіть немає у 20-ці) — бачимо, що для ніши системного програмування вона підходить майже ідеально. Далі — Kotlin. Між 80 і 90% також міститься Swift, Go, Scala, TypeScript і навіть Erlang. А перша масова мова — C# - має індекс вподобання 83%.

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

Вивчення нових мов

Наступного року планують вивчити мову програмування 60% респондентів.

Які мови ви збираєтеся вивчати наступного року


Лідери — Python та JavaScript — тут зрозуміло. Також можна звернути увагу на порівняно високу частку (у порівнянні з актуальним розповсюдженням) інтересу до Dart, Rust, ну і традиційно — Haskell.

Як і в попередні роки, більшість респондентів (54%) збираються вивчати нову мову самостійно, з допомогою книг та документації. На онлайн-курси орієнтуються майже 32%, а 7% збираються використовувати офлайн-підхід із локальними викладачами.

Додаткові мови

Що тут можна сказати — розподіл даних приблизно той самий. Можна побачити, що частка нішевих мов як додаткових менша, ніж їхня частка як основних. Отже, скоріш за все, для FullStack-розробки більше використовуються мови загального призначення, такі як JavaScript, TypeScript, ніж Swift та Kotlin.

Які мови ви використовуєте як додаткові

Свої проекти

Ну і, нарешті, pet projects.

Які мови ви використовуєте в своїх проектах


Динаміка знову повторюється. Що цікаво — спостерігається деякий «ренесанс» C++ та С. Можливо, це пов’язано з ростом cегмента інтернету речей, де DIY (Do it yourself — зроби сам) набрав риси своєрідної субкультури.

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

МоваЧастка ринкуЗміниОсновнаДодатковаСвої проектиІндекс вподобання
1JavaScript18.40.71622452528920.59
2Java15.45-2.421360119315770.72
3C#13.76 121177914110.83
4Python13.212.31163180218020.76
5PHP10.88-195880511120.63
6C++5.86-0.75168509550.59
7TypeScript4.461.5439316619580.81
8Swift2.77 2441883110.87
9Kotlin2.74 2413264050.9
10Ruby2.4-0.52112042430.71
11Go1.85 1633924000.84
121C 1.670.7614711200.52
13C1.5 1334883840.338
14Scala1.1-0.45971441370.81
15Pascal/Delphi 54272010.35
16Dart 0.551521130.63
17T-SQL 498862130.18
18PL-SQL 29477940.2
19Erlang 257180.8
20Groovy 1883370.11
21R 18151220.22
22Clojure 1728160.53

Додаткові дані

Досвід роботи програмістом


Що ми бачимо: галузь ще росте, але темпи зменшилися. Більшість розробників мають до трьох років досвіду:


Медіанний вік — 27 років.

Розподіл за віком


Нижче мозаїка, де за однією координатою — досвід роботи з мовою, а за іншою — досвід роботи програмістом.


Ми бачимо, що майже 15% — це рік досвіду й одна основна мова. Потім квадратик на діагоналі світлішає — люди переходять на інші мови. Видно, що на третій рік 0.51 людей залишаються на тій же мові. Далі перетікання послаблюється: 4 роки — 0.45; 5 і 6 років — так само 0.45. Отже, якщо не звернули з мови в перші три роки, то, як правило, залишаєтесь надовго.

Якщо дивитися на залежність віку та досвіду розробника від мови програмування, то цікава роль C++. Наразі ця мова з наймолодшою медіаною віку — 25 років. Цікаво, як так виходить. Спробуємо наступного року створити карту можливих напрямів розробки. Пропоную поки що обговорити це в коментах.

Вік розробника залежно від мови

Досвід розробника залежно від мови


Щодо діаспори, то тут дані говорять самі за себе. Знову більш ніж у 4 рази різниця частки Scala-розробки. Здається, що спеціалізація на «масових мовах» може зіграти негативну роль у подальшому розвитку: маємо ризик знайти «спіраль невдачі» — менше спеціалістів із нових технологій => менший пул талантів => менше замовлень. Хотілося б бачити якусь стратегію протидії.

Чи є різниця у використанні мов програмування у нас та в діаспорі?


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

Перша мова новачків


Наразі все ще лідирує Pascal. Але, як бачимо, основною мовою навчання стає С++, далі йдуть Python та Java.


Дані та скрипти обробки можна знайти на GitHub
Інфографіка: Ігор Яновський


Результати попередніх опитувань: 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019.

Похожие статьи:
Від редакції: у рубриці DOU Books спеціалісти розповідають про 5 своїх улюблених книжок — ті, які змінюють світогляд та корисні...
DOU продовжує розповідати, як війна й економічна ситуація вплинули на українські ІТ-команди. Цього разу ми попросили...
Компания Apple объявила о том, что сегодня её новая коллекция Apple Watch Hermès стала доступна в избранных розничных...
DOU підготував добірку з десяти найпрестижніших змагань, у яких можуть взяти участь як школярі-програмісти,...
На Київщині вже звільнили понад 30 населених пунктів, тим часом у росіян майже вичерпався запас ракет. DOU...
Яндекс.Метрика