×Закрыть

Рейтинг языков программирования 2018: 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.

Финальная таблица

ЯзыкДоля рынкаИзмененияОсновнойДополнительныйСвои проектыИндекс удовлетворенности
1Java20.67-2.7142994515440.63
2JavaScript16.541143360923220.61
3C#14.1197555710830.77
4PHP13.0590270010530.60
5Python9.76+1675117411500.69
6C++4.963435666140.59
7Swift3.4+1.162351613060.86
8Ruby2.972052302490.60
9Go2+1.21402933700.85
10TypeScript2+1.751399175220.64
11Scala1.551071791840.77
12C1.4963542440.28
131C1.127850520.18
14Objective-C1-0.79732851470.18
15Kotlin+0.7642432100.86
16PL-SQL688941530.22
17T-SQL557802090.24
18Pascal/Delphi40881290.3
19Perl2197350.3
20Clojure2031710.75
21R20125820.25
22Apex11310.18
23ActionScript1142380.3
24Groovy1195140.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-форме.

LinkedIn

79 комментариев

Подписаться на комментарииОтписаться от комментариев Комментарии могут оставлять только пользователи с подтвержденными аккаунтами.

Відношусь скептично до відносних даних у таких рейтингах. Ринок росте з року в рік у всьому світі. Й кількість програмістів та проектів теж. Просто є мови використання яких зростає повільніше за ріст ринку. Й виходить що абсолюна кількість проектів, програмістів а отже й використання такої мови зростає з року в рік. Але так, у відносних цифрах є «спад». Й тут приходять Аналіт奲 які забувають що 5% від 1000 та 1% від 10000000 це якби різні речі.
Й ще треба розуміти що на один складний проект з’являється сотні простих. Де складні технології взагалі контпродуктивно використовувати.

Й кожне речення починати з «й» теж контрпродуктивно, й.

Kotlin в массы )

Мы не поддерживаем оккупантов и не пользуемся их продуктами.

я тоже не поддерживаю, но вроде бы политика вне программирования, не ? тогда я вас не понимаю, вы упорант если на то пошло, если не на то, то хз

Почему C++ это «вчерашняя технология»?

потому что это колосс на глиняных ногах

Не выходит. Скорее железобетонный монстр. Ноги-то у С++ как раз не глиняные, а из великолепнейшего железобетона, а вот все остальное выше часто уродливое.
Такое вот мощное железобетонное основание, на которое водружен уродливый многорук.

В очередной раз не понял мозаику про опыт работы программистом на выбранном языке. Объясните, как это читать.

ширина квадратика — доля разработчиков с опытом X, высота — доля с опытом Y именно на этом языке. Смотря на таблицу — больше всего народу с двумя годами опыта (с одним уже меньше) вобще. В каждом следующем году, диагональ меньше (если бы люди язык не меняли — была бы только диагональ)

Довольно сложная для восприятия. Я бы как-то ее модернизировал, но пока не знаю, как :)

Как-то грустно выглядит график Ruby.

И слава богу, что вокруг него нет никаких истерик, вкатывальщиков, гигабайтов пакетов и десятка фреймворков. Язык давно занял свою нишу, скромно развивается и выполняет положенные на него задачи. Из-за роста популярности JS’а, высокого порога входа в Ruby и падения количества новых стартапов его низкая популярность вполне закономерна, все вкатываются в JS, а украинским галерам Ruby не нужен тоже.

А сам язык и, конечно же, рельсы медленно, но уверенно развиваются, с каждой версией языка он становится все быстрее. Рельсы по мнению многих устарели и не нужны, но это стереотип про медленную 4-ю или еще хуже 3.2 версию, новые 5-е рельсы поддерживают современный фронт-энд и фреймворки из коробки, являются удобным, быстрым и надежным веб-фреймворком.

Если взглянуть на опросы по языкам и статистику по миру, то много где Ruby стабильно держится в десятке и популярнее Swift, Go, Haskell и других «модных» языков (хоть и сравнивать Руби с Хаскелем некорректно). А по различным опросам разработчиков Ruby частенько в топ 5 языков, которых разработчики хотят изучать следующими.

И вообще, экосистемы и комьюнити лучше чем в Ruby-мире я не видел еще. Так что всё у него хорошо будет не смотря на статистику в Украине.

Языки, которые пользователи предпочитают не использовать в следующих проектах: Groovy

вот сейчас обидно было

Для порівняння в чомусь подібне опитування від Hacker Rank — research.hackerrank.com/developer-skills/2018

Как я и предсказывал 5 лет назад, Go начал серьезно сдавать позиции. Scala наше все!

в KPU будет нативная поддержка Scala?

Яка мінімальна кількість відповідей була потрібна, щоб мова увійшла в рейтинг?

Может администрация мне обяснить, как так получается, что 10+ лет опыта количество УВЕЛИЧИВАЕТСЯ каждый год, а 6,7,8 и 9 — уменьшается? Что люди уезжают с 6-9 годами и массово возвращаются после 10?

Скорее потому что у тех у кого 10+ лет опыта «уже слишком стары для этого д****а» или банально есть проекты которые их кормят тут. У нас всё таки выгоднее получать 2К$ зарплату чем 4К$ за бугром. К тому же, с возрастом желание заводить трактор уменьшается.

Да и сложнее трактор заводить с возрастом, ржавеет он.

Мне кажется что дело не в ржавости трактора, а в детях и жене, точнее в бюрократии, которая связана с перевозом семьи за бугор. Когда едешь сам — намного проще. Но как показывает практика — если сильно надо — то валят вполне удачно. Вопрос в том на сколько сильно надо?

Я сильно упростил, лень было расписывать. Не всякий трактор потянет большой и тяжелый прицеп.
После 40 уже часто и не сильно надо многим. Здесь жилье, семья, дача, контакты, всё устаканилось, привык, нахрена уже валить. Там же с нуля начинать придется. А после 40 уже нет такого буйства гормонов, как в 25.
Вот и получается, что лучший вариант валить до 33. А в 25 или в 33 разницы большой нет, и в том и в том возрасте свои плюсы и минусы.

Важно же в динамике. Если опрос — реален, то как минимум должно увеличиваться по годам количество 7,8,9 ПЕРЕД увеличением 10+. Иначе совсем непонятно, что есть драйвером роста.

Можливо,

  1. серед досвідчених програмістів у віковому діапазоні, відповідному 6-9 рокам досвіду, все менше робить вибір залишитися працювати в Україні;
  2. старшим цього віку нема змісту їхати: щоб отримувати закордоном адекватну пенсію на старості, підозрюю, треба відпрацювати там достатню кількість років, та і на купівлю житла там можна вже не встигнути заробити.

Ну так вроде как говорят о увеличении общего числа ИТ, а не уменьшении. Сумарно это дает либо офигительный возврат 10+ сеньйоров, либо просто неадекватность опроса(джуны пишут про 10 лет)

Либо, что в диапазоне 6-9 лет людям не до зарплатных опросов :) Либо, что после 6-9 лет пробуют себя на руководящих должностях, а потом понимают, что это не их. Много объяснений можно придумать.

Это не меняет того факта, что 10+ РАСТЕТ по годам, а 9+ падает. Это же не календарный возвраст. Откуда берутся 10+ если предыдущие опыты — падают?

Кількість людей у категорії 10+ зростає, якщо тих, що залишають її (виїжджають, залишають IT, перестають працювати, вмирають), є менше, ніж тих, хто прибуває (з торішньої категорії «9»).
А те, що «9» падає, може означати, що темпи росту галузі не перекривають зростаючий відтік досвідчених кадрів.

Ну не настолько ж их много возращается. С моей точки зрения просто 10%+ статистики джуны, которые пишут, что у них 4к и 10 лет стажа.

Категорія 10+ поповнюється не тільки тими, хто повертається, але й тими, хто переходить у неї з торішньої категорії «9».

Это не меняет того факта, что 10+ РАСТЕТ по годам, а 9+ падает. Это же не календарный возвраст. Откуда берутся 10+ если предыдущие опыты — падают?

Все больше и больше людей с 10+ лет опыта начинают проявлять интерес к опросу, раньше они его игнорировали — было много других интересных и важных дел, а вот тепер и можно отвлечься на чуть-чуть и поучаствовать в опросе.

Возмжно, но согласитесь, странно выглядит когда 9лет опыта не проявляют а уж с 10 — точно да. Более вероятно «ну и ты говори».

Более вероятно "ну и ты говори«.

Но человек может быть искренне(!) уверен, что его 8-9 лет опыта совершенно уникальны, и они даже перевешивают «стандартные» 12 лет опыта.

скорее 1-2 года и «играл на компьютере с 7 лет, раз в год кодил змейку на бейсике».

можливо просто різні групи по різному схильні проходити такі опитування?
й тоді, можливо, питання має стояти як:
чому групи з досвідом

6,7,8 и 9

рідше проходять опитування ніж з досвідом 10+

Очень интересна тенденция по сеньорам. Их процент не меняется. Интересно почему.
Две причины вижу. Рост количества програмеров совпадает с ростом количества сеньоров.
Сеньоры валят на тракторах.

Вариация первого варианта: определение сеньора динамическое, топ N % по квалификации. Общая квалификация падает — планка сеньорства снижается, в сеньоры берут даже тех миддлов, которые застопорились в развитии. И наоборот, общая квалификация растёт и некоторых вчерашних сеньоров уже сеньорами не берут.

Там в годах работы, а не в квалификации график.

И кого тогда сеньором считать?

Я так назвал тех, у кого от 5 лет.

Хм, мое субьективное мнение таково, что количество проголосовавших на ДОУ != количество задействованных в сфере специалистов. Т.Е. опрос показывает, какие языки превалируют среди посетителей сайта, но никак не глобально в сфере ИТ Украины, имхо, и вставлять колонку «доля рынка» как то самонадеянно )).

опрос показывает, какие языки превалируют среди посетителей сайта, но никак не глобально в сфере ИТ Украины, имхо, и вставлять колонку «доля рынка» как то самонадеянно )).

Думаю, що можна.
Є таке поняття «довірчий інтервал» у математичній статистиці, і він звужується при збільшенні вибірки.
Якщо по-простому, то при достатньо великій кількісно вибірці частка екземплярів, які мають деяку властивість, добре відображає реальність (тобто яка частка є у множині всіх існуючих екземплярів) навіть якщо ця вибірка далеко не співпадає з множиною всіх існуючих екземплярів.

Деколи це може бути не так через нерепрезентативність вибірки, але тут ніби не той випадок.

Як раз той. Ходіння на ДОУ може залежати від мови, типу контори та індустрії, освіти, досвіду, міста, країни, часової зони, статі... кількості дітей, нарешті. Яка теж може залежати (чи корелювати) від того усього.

Дякую, цікаві тенденції.
Трохи сумно за плюси, все ж мова активно розвивається, виходять нові стандарти і сфера застосувань дуже широка, особливо, якщо брати до уваги такі фреймворки як Qt, а відсоток застосування, судячи з графіку, щороку зменшується.
Трохи здивований відсотком шарпу, думав, що він займає трохи більше ринку, а він теж з кожним роком падає.

Эти тенденции прекрасно отражают местное ИТ.
Так что JS рулит.
А С++ и С# c Java не могут не снижаться. А причины? С# отражает тенденцию с виндой. C++ и Java отражают проекты, что сюда на аутсорс даются. Их процент падает в общем пуле проектов.
Ну и про Питон они нафантазировали с DS. Да, есть такие тут, что оное делают, но их единицы в этом опросе (и вообще в Украине). В основном здесь Питон для того же, для чего JS.

В основном здесь Питон для того же, для чего JS.

Для чого? Як Пітон може підмінити JS?

Как понимаю бекэнды на питоне, фронт на JS.

Софт, який би 10 років тому писався би на Qt, сьогодні пишеться на реакті — десктопний софт вмирає вже давно через веб, це одна з причин. Друге, це те що С++ розвивається, але куди? В стороні ще більшої складності — ще більше фіч, ще більше нових правил, ще товша специфікація. Complexity має вмирати, і це добре, що С++ втрачає популярність.
Go витісняє C++ для мережевих бекендів, Rust починає витісняти для юзкейсів, де потрібний максимальний перформанс. Тож все достатньо логічно.

это только для украины такой спад, потому что у нас не могут в С++ — экспертизы не хватает не отстреливать себе ноги у 23-летних синьоров, даже несмотря на ввод умных указателей и прочих удобств, о которых в конце 90-х и начале 2000х даже мечтать было приятно
а в мире — чем больше ембедеда, тем больше С++ и популярность последние 2 стандарта сильно укрепили позиции С++
«топтание на месте» в разделе популярных технологий в течении последних 5 лет при постоянно растущей кодерской аудитории — явный признак стабильности а не умирания
да, вытеснили из десктопа, но только из того десктопа где производительность не нужна — формошлёпство всякое и т.д., а все низкоуровневые алгоритмы как писали на С++ так и будут
тем более с приходом cmake кроссплатформа расцвела, все основные либы компилятся в 80% случаев из коробки под все платформы, вон даже boost переводят на cmake
и сейчас все больше и больше проектов на С++ пилят сразу под топ-5 осей сразу

По поводу «только для Украины» — отнюдь. Острел ног он не от недостатка квалификации, а от дизайна самого языка. Факт того, что нужно 5 лет практики в языке, чтобы перестать отстреливать себе ноги на простейших по меркам 2018 года программах, только подтверждает то, почему С++ никак особо уже не привлекает девелоперов. Украина от «не-Украины» (возьмем Европу) в плане ИТ отличается лишь тем, что больше англоговорящих девелоперов, которые больше путешествуют (=посещают конференции), шире кругозор и т.д. На каждого нашего «С++ сеньера», который сидит в одной технологии 10+ лет и получает стабильно высокую зарплату (=не имеет стимула особо развиваться и учить новое что-то), «за бугром» 10 сеньеров, которые освоили уже 3 новых языка, которые для своих ниш подходят лучше, чем С++. Но это уже оффтопик слегка.

почему С++ никак особо уже не привлекает девелоперов

С++ страшен, уродлив. Но для определенного круга задач ничего другого нет и не предвидиться. Просто этот круг задач не в Украине.

В эмбедед больше С предпочитают. С++ юзают тогда, когда на проект слишком большой и сложный для С.
Но количество таких проектов в Украине увеличивается сильно меньшими темпами, чем проектов с JS.
Более того проекты не входят не только по причине страны оси задницы, но и по причине, что достаточного количества спецов уже не найдешь. Для большой кучи проектов 1-3 человек недостаточно, нужно 20-30, а их просто не найдешь здесь.

страны оси задницы

А я всё думал-гадал к какому лагерю мы относимся, а оно во как оказалось :D

Я давно так постсовковые страны и еще несколько других так называю.
По некоторым параметрам постсовок как бы давно уже не страны третьего мира, по другим еще не страны третьего мира. В отдельной такой специфической нише находимся.

В нас спільні частини коду на дроні, десктопі і андроїді. Все на С++, бо, як запитував класик, яка розумная цьому альтернатива?

С++ чудово розвивається, частини з С++17 використовуємо.

Rust ще нестабільний, і пишуть, що вчиться геть не краще за С++, і також має всі ті «виключення з виключень», а ще певні задачі робляться лише через додатковий інтерфейс.

Rust ще нестабільний

Чим це? Стабільний.

а ще певні задачі робляться лише через додатковий інтерфейс

Це Ви про що?

і пишуть, що вчиться геть не краще за С++

Мова для системного програмування завжди буде важча за Рубі. Я зараз читаю книжку Programming Rust — якихось проблем не виникало, але я думаю, якщо хтось з ФП не знайомий, то певні речі займуть більше часу (traits, associated types, наприклад).

і також має всі ті «виключення з виключень»

Можете детальніше розписати? Дуже загальне речення.

хтось з ФП не знайомий, то певні речі займуть більше часу (traits, associated types,
наприклад).

А какое отношение trait имеет к FP? Это именно что чисто оопшная концепция.

В Расті так назвали тайпкласи з Хаскеля. Єдине що, там неможливі orphaned instances, тобто зробили певний імпрувмент

Странно... судя по доке rust, traits там вполне себе скалообразные

Там для типа может быть имплементация trait (можно отоджествлять с implicit преобразованием в scala) — получаются typeclass-ы

impl PartialOrd for Person {
    fn partial_cmp(&self, other: &Person) -> Option<Ordering>  { ... }
 }

В неті купа ревью висить на зразок
hackernoon.com/...​ropping-rust-fd1c32986c88

Рекомендую спробувати і написати щось хоча б за 20-30 годин. Спробувати завалити «нестабільну» реалізацію. Маючи кілька тисяч годин роботи з С++ та кількасот годин з Rust мені дуже подобається тепер borrow checker, макроси та решта Rust’у.

Дякую, чудово.

Распределение возрастов:

По осі абсцис позначте роки, хоча б з інтервалом 5 років.

Боюся, щоб Python не помінявся з Pascal/Delphi в опитуванні 2030 року.

Python уже все всем доказал как отличный инструмент для ряда задач. Что будет через 12 лет? =)

Я про те ж, Pascal/Delphi на прикинці 90-хх здавався відмінним інструментів, недарма ж стільки починало з нього.

Думаю, це все — ті, хто вчив його в освітніх закладах. А там сиділи викладачі з 80-х, що про С++ не чули, або боялися.
Реально ж він помер через C++ та C#
Пітона може хтось і вб’є, але хто буде той герой — допоки невідомо.
C++ лаконічніший та потужніший за Паскаль. Хто лаконічніший за Пітона?

Я б сказав, що хаскел.

Тоді чому він досі не настільки популярний?

Тому що функціональщина ніколи не буде популярною за імперативщину.

Замінили графік, тепер з роками.

Подписаться на комментарии