Опитування по мовам #9: Go і TypeScript увійшли у вищу лігу, Kotlin варто сприймати серйозно
[Оригінальні дані і скрипти обробки можна взяти на 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.
Фінальна таблиця
№ | Мова | Частка ринку | Зміни | Основний | Додатковий | Свої проекти | Індекс задоволеності |
1 | Java | 20.67 | -2.7 | 1429 | 945 | 1544 | 0.63 |
2 | JavaScript | 16.54 | 1143 | 3609 | 2322 | 0.61 | |
3 | C# | 14.11 | 975 | 557 | 1083 | 0.77 | |
4 | PHP | 13.05 | 902 | 700 | 1053 | 0.60 | |
5 | Python | 9.76 | +1 | 675 | 1174 | 1150 | 0.69 |
6 | C++ | 4.96 | 343 | 566 | 614 | 0.59 | |
7 | Swift | 3.4 | +1.16 | 235 | 161 | 306 | 0.86 |
8 | Ruby | 2.97 | 205 | 230 | 249 | 0.60 | |
9 | Go | 2 | +1.2 | 140 | 293 | 370 | 0.85 |
10 | TypeScript | 2 | +1.75 | 139 | 917 | 522 | 0.64 |
11 | Scala | 1.55 | 107 | 179 | 184 | 0.77 | |
12 | C | 1.4 | 96 | 354 | 244 | 0.28 | |
13 | 1C | 1.12 | 78 | 50 | 52 | 0.18 | |
14 | Objective-C | 1 | -0.79 | 73 | 285 | 147 | 0.18 |
15 | Kotlin | +0.7 | 64 | 243 | 210 | 0.86 | |
16 | PL-SQL | 68 | 894 | 153 | 0.22 | ||
17 | T-SQL | 55 | 780 | 209 | 0.24 | ||
18 | Pascal/Delphi | 40 | 88 | 129 | 0.3 | ||
19 | Perl | 21 | 97 | 35 | 0.3 | ||
20 | Clojure | 20 | 31 | 71 | 0.75 | ||
21 | R | 20 | 125 | 82 | 0.25 | ||
22 | Apex | 11 | 3 | 1 | 0.18 | ||
23 | ActionScript | 11 | 42 | 38 | 0.3 | ||
24 | Groovy | 11 | 95 | 14 | 0.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-формі .
Опубліковано: 23/01/18 @ 08:00
Розділ javascript
Рекомендуємо:
Як я працюю: Ярослав Пернеровский, Test Automation Lead, GlobalLogic
Java дайджест #37: реліз Flyway 5.0.0 і нове життя JEE (EE4J)
PM дайджест #9: нові правила обробки даних в ЄС, різниця між Agile і DevOps, виховуємо відповідальних співробітників
DOU Labs: як EPAM створив DLab — інструментальний сервіс для фахівців Data Science
Життя в Новій Зеландії: про пошук роботи, дорогому житлі та уявної свободи