Опитування по мовам #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
Життя в Новій Зеландії: про пошук роботи, дорогому житлі та уявної свободи