Опрос по языкам #8: Java по-прежнему доминирует, но доля рынка начала сжиматься
[Сырые данные и скрипты обработки на языке R можно найти на GitHub]
В опросе приняло участие 8186 человек, 90% участников проживают в Украине.
Основные результаты
Самым распространенным языком по-прежнему остается Java (23% рынка), JavaScript вышел на второе место (16%), незначительно опередив C# по популярности. На
Cо стороны «длинного хвоста» — стало заметным использование TypeScript и Kotlin.
Посмотрим на динамику последних лет:
Видим уменьшение использования Java, несмотря на то, что язык по-прежнему остается самым распространенным. JavaScript продолжает набирать популярность теми же темпами, что и раньше. В секторе iOS разработки Swift продолжает вытеснять Objective-C (сейчас соотношение Swift к Objective C — 55/45, в прошлом году это было 20/80). Также из статистически значимых изменений по сравнению с началом 2016 — увеличение популярности Scala и Go. Снижение популярности PHP прекратилось.
Предпочитаемые технологии
Тут ситуация похожа. Из новостей рост перспективы Go, стал виден Kotlin и TypeScript, а вот Java выбрало бы для следующего проекта заметно меньше людей, чем в прошлом году. Можно предположить, что Kotlin рассматривается как предпочитаемый язык теми разработчиками, которых Java уже ограничивает, а Scala кажется либо слишком сложной, либо не очень подходящей к области. Также можно связать падение темпов роста JavaScript и появление TypeScript: его можно использовать как JavaScript со статической типизацией.
Построим «индекс удовлетворенности» — доля разработчиков, которые в следующем проекте использовали бы тот же язык:
Видим, что самый «любимый» язык — Swift, далее в следующей группе идут C#, Go и Scala, а затем — Java, Kotlin и Clojure.
Самый «нелюбимый» — Apex, за ним идут SQL-подобные и устаревающие языки.
Изучение новых языков
В этом году мы впервые включили в опрос блок вопросов об изучении новых языков: большинство разработчиков (65%) хотят в следующем году выучить какой-то новый язык.
Какой именно:
То есть 31% еще не знают какой. Наиболее притягателен для обучения — JavaScript (12%), затем Python, Java, Go, Scala и Swift.
Как именно люди собираются изучать новый язык программирования: преимущественно на основе книг и документации (61%); 27% будут проходить онлайн курсы, а офлайн курсы останутся основным методом обучения для 7% респондентов, ответивших на данный вопрос.
Дополнительные языки
Видим, что в целом картина повторяет ситуацию с основными языками разработки, за исключением появления Unix Shell на втором месте и более высокой позиции расширений SQL.
Свои проекты:
Здесь тенденции те же, изменений по сравнению с годом раньше — меньше. Может быть это связано с тем, что понятие «свои проекты» консервативно: если у меня есть проект на C++, значит, он у меня и останется.
Финальная таблица
№ | Язык | Доля рынка | Изменение по сравнению с 2016 | Рабочий | Дополнительный | В своих проектах | Индекс удовлетворенности |
1 | Java | 23.4 | -2.91 | 1892 | 1129 | 1965 | 0.76 |
2 | JavaScript | 16.2 | 2.36 | 1316 | 4206 | 2606 | 0.69 |
3 | C# | 14.9 | 1210 | 744 | 1354 | 0.82 | |
4 | PHP | 13.25 | 1073 | 852 | 1253 | 0.63 | |
5 | Python | 8.71 | 0.74 | 706 | 1170 | 1157 | 0.71 |
6 | C++ | 5.5 | -0.95 | 445 | 681 | 725 | 0.62 |
7 | Ruby | 3.5 | 287 | 279 | 330 | 0.68 | |
7 | Ruby | 3.5 | 287 | 279 | 330 | 0.68 | |
8 | Swift | 2.2 | 1.36 | 181 | 236 | 276 | 0.87 |
9 | Objective-C | 1.05 | -1.34 | 150 | 283 | 212 | 0.33 |
10 | Scala | 1.52 | 0.47 | 123 | 207 | 215 | 0.81 |
11 | 1C | 1.27 | 103 | 57 | 85 | 0.27 | |
12 | C | 1.1 | -0.2 | 90 | 473 | 240 | 0.37 |
13 | PL-SQL | 1 | 85 | 583 | 102 | 0.24 | |
14 | T-SQL | 68 | 959 | 237 | 0.28 | ||
15 | Go | 0.55 | 66 | 235 | 251 | 0.82 | |
16 | Pascal/Delphi | 66 | 109 | 205 | 0.47 | ||
17 | Perl | 35 | 140 | 65 | 0.28 | ||
18 | R | 35 | 122 | 73 | 0.46 | ||
19 | ActionScript | 30 | 53 | 48 | 0.26 | ||
20 | TypeScript | 21 | 112 | 44 | 0.47 | ||
21 | Kotlin | 16 | 53 | 57 | 0.75 | ||
22 | Clojure | 12 | 38 | 68 | 0.75 | ||
23 | Erlang | 12 | 43 | 44 | 0.50 |
Дополнительные данные
Возраст разработчика в зависимости от языка:
Что мы тут видим — модно, стильно, молодежно — это Kotlin (медианный возраст разработчика: 24 года). Для Java, JavaScript, Python, Ruby, Swift это значение составляет 27 лет. С другой стороны у нас PL/SQL, Perl, Pascal и 1C, как и следовало ожидать. А вот пользователь R помолодел: молодежь бросилась изучать Data Science.
Тут интересны аномалии: с R наблюдается то же, что и в предыдущем опросе (в программирование на R приходят люди извне); Scala и Gо, наверное, можно назвать языками для сеньоров; Perl, Pascal/Delphi и 1С очевидно не испытывают кадрового обновления.
Еще посмотрим на распределение опыта работы программистом по сравнению данными прошлых лет:
Cудя по графику, приток людей в отрасль замедлился, в то же время растет доля разработчиков с опытом старше
Посмотрим еще на распределение возраста разработчиков в зависимости от страны:
Различие в формах распределения может нам сказать о масштабах эмиграции прошлых лет.
Различие местного и зарубежного рынков разработки также можно увидеть, сравнив данные об основном рабочем языке от людей, живущих в Украине и от диаспоры:
Видим, что за рубежом гораздо больше используют C, Scala и Go. До нас эти тенденции приходят с некоторым опозданием.
Образование:
Доля «мертвых языков» снижается, также виден рост количества людей, написавших свою первую программу на JavaScript.
Результаты предыдущих опросов: 2010, 2011, 2012, 2013, 2014, 2015, 2016.