Рейтинг мов програмування 2019: JavaScript майже зрівнялася з Java, популярність Go знижується
[Дані та скрипти обробки можна знайти на GitHub]
В опитуванні взяли участь 9167 респондентів, 90% із них живуть в Україні.
Комерційне використання
Основні гравці не змінилися — частка JavaScript та Java майже однакова. З іншого боку, до рейтингу знову увійшла Erlang, що «зникла з радару» в
Якою мовою пишете для роботи зараз
Якщо дивитися на динаміку останніх років, то Kotlin, з огляду на свій вибуховий ріст, витисне Java у розробці під Android. Також продожує зростати TypeScript.
JavaScript-екосистема поступово переймає першість у JVM. Частка C# лишається майже незмінною.
Прогнозовано росте використання Python.
Якою мовою пишете для роботи зараз (2012-2019 рр.)
Сірим виділені ті мови, частка яких не змінилася в порівнянні з 2018 роком
Несподіванки:
- Збільшилася частка проектів на C++ та C — це можна пов’язати з подальшим поширенням інтернету речей.
- Почала скорочуватися частка Go проектів, тут мені важко щось сказати про можливі причини.
- Почала знижуватися частка Swift (що статистично незначно) — звідси ми можемо зробити висновок, що можливо, розробка на iOS скорочується загалом. Чи є це флуктуацією в рамках похибки або довготривалою тенденцією — подивимося наступного року.
Частка Scala залишилася приблизно такою ж (трохи збільшилася).
Ще можна помітити «ренесанс» використання Groovy та Erlang — видно, що мови, на яких є якась критична кількість проектів, можуть існувати десятиріччями.
Особисті вподобання
Тут ми бачимо в принципі таку ж ситуацію, як і з розподілом мов. Порівняно з останніми роками можна відзначити зростання інтересу до Rust, а також подальше зниження зацікавленності в Scala. Якщо подивитися на список нових фіч Java 10 та Java 11, то можна зрозуміти, що у Java вводять аналоги Scala-конструкцій.
Якби ви зараз починали комерційний проект і у вас була свобода вибору
Подивимося на «індекс вподобання» — відносну кількість користувачів мови програмування, які виберуть цю ж мову для наступного проекту:
Як ми бачимо, найвищий рівень вподобання у Swift (це підтверджує нашу гіпотезу про зменшення обсягу iOS розробки), далі — Go та Kotlin. Наступна сходинка — теж Scala та C#. Досить несподівана поява Erlang. Ще слід зазначити, що незважаючи на вибуховий зріст, індекс вподобання TypeScript та JavaScript не найвищий. Це означає, що в принципі можлива поява наступної мови в екосистемі фронтенду.
Вивчення нових мов
Більша частина респондентів (64%) точно планує вивчити якусь нову мову програмування наступного року. Погляньмо на рейтинг найцікавіших мов для вивчення в динаміці за 3 роки:
Які мови ви збираєтеся вивчати наступного року
Python уже третій рік є найпопулярнішим для вивчення, далі — JavaScript та Go. Ще ми бачимо різкий сплеск інтересу до Dart: Google позиціонує його як мову, оптимізовану для розробки клієнтів на Android та Web.
Як і в попередні роки, більшість респондентів (55%) збираються вивчати нову мову самостійно, за допомогою книг та документації. На онлайн-курси орієнтуються близько 31%, а 7% збираються використовувати офлайн-підхід з локальними викладачами.
Додаткові мови
Тут особливих новин немає: як і раніше, JavaScript є основною додатковою мовою. Едине — Python як другу мову почали використовувати частіше, ніж Shell.
Які мови ви використовуєте як додаткові
Свої проекти
Тенденції в цілому більш-менш ті ж самі, що і в інших блоках. Привертає увагу підвищення рівня C++ та C.
Які мови ви використовуєте в своїх проектах
Фінальна таблиця
№ | Мова | Частка ринку | Зміни | Основна | Додаткова | Свої проекти | Індекс вподобання |
---|---|---|---|---|---|---|---|
1 | Java | 17.82 | -2.8 | 1497 | 1161 | 1672 | 0.71 |
2 | JavaScript | 17.68 | 1485 | 4396 | 2748 | 0.64 | |
3 | C# | 13.97 | 1173 | 712 | 1367 | 0.80 | |
4 | PHP | 11.94 | -1,1 | 1003 | 831 | 1159 | 0.61 |
5 | Python | 10.88 | +1.1 | 914 | 1507 | 1490 | 0.73 |
6 | C++ | 6.53 | +1.6 | 549 | 761 | 866 | 0.63 |
7 | TypeScript | 2.9 | +0.9 | 245 | 1326 | 708 | 0.67 |
8 | Swift | 2.89 | 243 | 176 | 301 | 0.91 | |
9 | Ruby | 2.87 | 241 | 193 | 235 | 0.67 | |
10 | Kotlin | 2.38 | +1.45 | 200 | 302 | 352 | 0.88 |
11 | Go | 1.82 | 153 | 380 | 443 | 0.90 | |
12 | C | 1.56 | 131 | 472 | 320 | 0.36 | |
13 | Scala | 1.55 | 130 | 152 | 154 | 0.815 | |
13 | 1C | 0.9 | 76 | 55 | 61 | 0.34 | |
14 | Pascal/Delphi | 54 | 159 | 168 | 0.35 | ||
15 | T-SQL | 53 | 898 | 216 | 0.26 | ||
16 | PL-SQL | 42 | 490 | 73 | 0.19 | ||
17 | Objective-C | -0.4 | 34 | 286 | 101 | 0.11 | |
18 | Groovy | 27 | 103 | 45 | 0.11 | ||
19 | Erlang | 23 | 3 | 19 | 0.7 | ||
20 | Apex | 22 | 2 | 11 | 0.45 | ||
21 | R | 20 | 135 | 69 | 0.3 | ||
22 | Perl | 14 | 78 | 33 | 0.21 | ||
23 | Clojure | 10 | 16 | 34 | 0.7 | ||
24 | Rust | 8 | 66 | 116 | 0.75 | ||
25 | ActionScript | 8 | 1 | 25 | 0.12 |
Зміни частки ринку вказані тільки в тому випадку, коли вони є статистично значимими (тобто з імовірністю 95% неможливо отримати таку різницю всередині однієї гаусовської популяції).
Додаткові дані
Зараз медіанний вік JavaScript, C++ та Kotlin розробника — 26 років (бачимо, що C++ розробка сильно помолодшала). Для Java, C#, Python, Go — 27 років, Scala — 29, а Pascal/Delphi та PL/SQL — 36 та 37 відповідно.
Вік розробника залежно від мови
Щодо залежності досвіду і мов, то масові мови, як правило, використовують люди з медіанним трирічним досвідом (видно, це результат росту галузі). Виділяються Scala розробники, для яких Scala — це, як правило, не перша мова. Ситуація з Pascal/Delphi та PL/SQL досить очевидна.
Досвід розробника залежно від мови
Розробники з досвідом 1 рік — найбільша група (що зрозуміло, беручи до уваги швидкий ріст галузі).
Досвід роботи програмістом
Нижче мозаїка, де за однією координатою — досвід роботи з мовою, а за іншою — досвід роботи програмістом.
Як і минулого року, видно, що через 4 роки половина розробників змінюють мову програмування. Близько чверті розробників працюють на тій самій мові протягом
Чи є різниця у використанні мов програмування у нас та в діаспорі?
В діаспорі більше Java, а Scala більше в чотири рази. Тобто або Scala проекти не йдуть в Україну, або Scala розробники частіше переїжджають в інші країни. До речі, наочною є ситуація з конференцією ScalaUA, де я є одним з організаторів. Як правило, доповіді надсилають з діаспори та Scala community інших країн, а в Києві бігати за потенціальними доповідачами набагато важче, хоча здавалося би має бути навпаки :(
Цікава ситуація з C та JavaScript, які набагато більше використовують українські розробники.
Розподіл за віком
Нижче перша мова програмування для розробників з досвідом менше року, протягом останніх
Тут ми бачимо, що скоро найбільш поширеною першою мовою стане С++.
До речі, результати цього опитування публікуємо українською, тому що так захотіло трохи більше 50% читачів рейтингу мов 2018.
Результати попередніх опитувань: 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018.
Інфографіка: Ігор Яновський