[Оригинальные данные и скрипты обработки можно взять на 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-форме.