Highload fwdays — спікери зі Stackoverflow, Netflix, Google, AWS, Rovio | Київ, 5 жовтня
×Закрыть

Рейтинг мов програмування 2019: JavaScript майже зрівнялася з Java, популярність Go знижується

[Дані та скрипти обробки можна знайти на GitHub]

В опитуванні взяли участь 9167 респондентів, 90% із них живуть в Україні.

Комерційне використання

Основні гравці не змінилися — частка JavaScript та Java майже однакова. З іншого боку, до рейтингу знову увійшла Erlang, що «зникла з радару» в 2017-му, — цього року більш ніж 20 розробників вказали цю мову як основну. І серед відносно нових мов — Apex, що вже з’являлася у нашому опитуванні в 2012 році.

Якою мовою пишете для роботи зараз

Якщо дивитися на динаміку останніх років, то Kotlin, з огляду на свій вибуховий ріст, витисне Java у розробці під Android. Також продожує зростати TypeScript.

JavaScript-екосистема поступово переймає першість у JVM. Частка C# лишається майже незмінною.

Прогнозовано росте використання Python.

Якою мовою пишете для роботи зараз (2012-2019 рр.)

Сірим виділені ті мови, частка яких не змінилася в порівнянні з 2018 роком


Несподіванки:

  • Збільшилася частка проектів на C++ та C — це можна пов’язати з подальшим поширенням інтернету речей.
  • Почала скорочуватися частка Go проектів, тут мені важко щось сказати про можливі причини.
  • Почала знижуватися частка Swift (що статистично незначно) — звідси ми можемо зробити висновок, що можливо, розробка на iOS скорочується загалом. Чи є це флуктуацією в рамках похибки або довготривалою тенденцією — подивимося наступного року.

Частка Scala залишилася приблизно такою ж (трохи збільшилася).

Ще можна помітити «ренесанс» використання Groovy та Erlang — видно, що мови, на яких є якась критична кількість проектів, можуть існувати десятиріччями.

Особисті вподобання

Тут ми бачимо в принципі таку ж ситуацію, як і з розподілом мов. Порівняно з останніми роками можна відзначити зростання інтересу до Rust, а також подальше зниження зацікавленності в Scala. Якщо подивитися на список нових фіч Java 10 та Java 11, то можна зрозуміти, що у Java вводять аналоги Scala-конструкцій.

Якби ви зараз починали комерційний проект і у вас була свобода вибору

Подивимося на «індекс вподобання» — відносну кількість користувачів мови програмування, які виберуть цю ж мову для наступного проекту:

Як ми бачимо, найвищий рівень вподобання у Swift (це підтверджує нашу гіпотезу про зменшення обсягу iOS розробки), далі — Go та Kotlin. Наступна сходинка — теж Scala та C#. Досить несподівана поява Erlang. Ще слід зазначити, що незважаючи на вибуховий зріст, індекс вподобання TypeScript та JavaScript не найвищий. Це означає, що в принципі можлива поява наступної мови в екосистемі фронтенду.

Вивчення нових мов

Більша частина респондентів (64%) точно планує вивчити якусь нову мову програмування наступного року. Погляньмо на рейтинг найцікавіших мов для вивчення в динаміці за 3 роки:

Які мови ви збираєтеся вивчати наступного року

Python уже третій рік є найпопулярнішим для вивчення, далі — JavaScript та Go. Ще ми бачимо різкий сплеск інтересу до Dart: Google позиціонує його як мову, оптимізовану для розробки клієнтів на Android та Web.

Як і в попередні роки, більшість респондентів (55%) збираються вивчати нову мову самостійно, за допомогою книг та документації. На онлайн-курси орієнтуються близько 31%, а 7% збираються використовувати офлайн-підхід з локальними викладачами.

Додаткові мови

Тут особливих новин немає: як і раніше, JavaScript є основною додатковою мовою. Едине — Python як другу мову почали використовувати частіше, ніж Shell.

Які мови ви використовуєте як додаткові

Свої проекти

Тенденції в цілому більш-менш ті ж самі, що і в інших блоках. Привертає увагу підвищення рівня C++ та C.

Які мови ви використовуєте в своїх проектах

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

МоваЧастка ринкуЗміниОсновнаДодатковаСвої проектиІндекс вподобання
1Java17.82-2.81497116116720.71
2JavaScript17.68 1485439627480.64
3C#13.97 117371213670.80
4PHP11.94-1,1100383111590.61
5Python10.88+1.1914150714900.73
6C++6.53+1.65497618660.63
7TypeScript2.9+0.924513267080.67
8Swift2.89 2431763010.91
9Ruby2.87 2411932350.67
10Kotlin2.38+1.452003023520.88
11Go1.82 1533804430.90
12C1.56 1314723200.36
13Scala1.55 1301521540.815
131C0.9 7655610.34
14Pascal/Delphi 541591680.35
15T-SQL 538982160.26
16PL-SQL 42490730.19
17Objective-C-0.4 342861010.11
18Groovy 27103450.11
19Erlang 233190.7
20Apex 222110.45
21R 20135690.3
22Perl 1478330.21
23Clojure 1016340.7
24Rust 8661160.75
25ActionScript 81250.12

Зміни частки ринку вказані тільки в тому випадку, коли вони є статистично значимими (тобто з імовірністю 95% неможливо отримати таку різницю всередині однієї гаусовської популяції).

Додаткові дані

Зараз медіанний вік JavaScript, C++ та Kotlin розробника — 26 років (бачимо, що C++ розробка сильно помолодшала). Для Java, C#, Python, Go — 27 років, Scala — 29, а Pascal/Delphi та PL/SQL — 36 та 37 відповідно.

Вік розробника залежно від мови

Щодо залежності досвіду і мов, то масові мови, як правило, використовують люди з медіанним трирічним досвідом (видно, це результат росту галузі). Виділяються Scala розробники, для яких Scala — це, як правило, не перша мова. Ситуація з Pascal/Delphi та PL/SQL досить очевидна.

Досвід розробника залежно від мови

Розробники з досвідом 1 рік — найбільша група (що зрозуміло, беручи до уваги швидкий ріст галузі).

Досвід роботи програмістом

Нижче мозаїка, де за однією координатою — досвід роботи з мовою, а за іншою — досвід роботи програмістом.

Як і минулого року, видно, що через 4 роки половина розробників змінюють мову програмування. Близько чверті розробників працюють на тій самій мові протягом 10-ти років.

Чи є різниця у використанні мов програмування у нас та в діаспорі?

В діаспорі більше Java, а Scala більше в чотири рази. Тобто або Scala проекти не йдуть в Україну, або Scala розробники частіше переїжджають в інші країни. До речі, наочною є ситуація з конференцією ScalaUA, де я є одним з організаторів. Як правило, доповіді надсилають з діаспори та Scala community інших країн, а в Києві бігати за потенціальними доповідачами набагато важче, хоча здавалося би має бути навпаки :(

Цікава ситуація з C та JavaScript, які набагато більше використовують українські розробники.

Розподіл за віком

Нижче перша мова програмування для розробників з досвідом менше року, протягом останніх 5-ти років.


Тут ми бачимо, що скоро найбільш поширеною першою мовою стане С++.


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


Результати попередніх опитувань: 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018.

Інфографіка: Ігор Яновський

LinkedIn

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

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

Просто цікаво, чому в статистиці JavaScript і TypeScript заначені, як окремі мови? Це ж по суті одне і те саме, з доданими типами. І більше того, TypeScript все одно транспілюється в той самий JS.
Було б правильно їх об’єднати і думаю, тоді статистика могла б бути трохи іншою.

Очень много языков можно тоже скомпилировать в JS, это же не делает их JS.

Дякую команді фахівців, які проводять опитування та роблять для нас цю аналітику!

Классная инфографика!

Не очень, ведь

Почала скорочуватися частка Go проектів

:(

Это печально :( Scala берет реванш?

hackerrank говорит, что все хотят изучать го — zdnet3.cbsistatic.com/...​019-01-29-at-11-25-51.png

Просто те, кто указал другой язык, об этом пока не догадываются.

то что они хотят и то что требует рынок — не одно и тоже, хотелки вещь такая..

hackerrank говорит, что все хотят изучать го — zdnet3.cbsistatic.com/...​019-01-29-at-11-25-51.png

Я вот тоже хочу ... уже года 2 :)

Це якщо про Україну йдеться...
А якщо так www.itjobswatch.co.uk/jobs/uk/go.do
пс Це якщо не згадувати про США.. ;))

Тут как раз всё ожидаемо — проекты на го начали дорастать до достаточно больших раземеров, и тут отсуствие средств абстракции увеличивает accidential complexity, и наконец эти недостатки начинают замечать.

Было бы хорошо Elixir тоже добавлять в опрос или писать Erlang/Elixir

Там было поле, где можно было его вписать: Elixir указало 6 человек.

Scala — всего 1.5%. А ведь еще в 2013 году некоторые кричали, что еще пару лет, и Scala убьет Java. Интересно, на чем они пишут сейчас ?

Не знаю, мне кажется всегда было распространено мнение, что язык нишевый. Ну, те кто пишут на Scala аналитику, в большинстве своем довольны. И, кстати — диаспора пишет на Scala в 4 раза больше, значит за рубежом его распространение выше. Возможно, тут все еще не удается выйти из кольца «мало людей => мало проектов => мало предложений + легко уехать» специфичного для .UA. (Сделаем дискуссионную сессию на это тему на #sclaua ;) )

мне кажется всегда было распространено мнение, что язык нишевый.

Не. Лет несколько назад все гуру/адвокаты/апостолы/евангелисты кричали «джава мертва, завтра все 3 миллиарда девайсов будут крутиться на скале».

соотношение от 1/29 в начало до 1/13 сейчас, не так уже и плохо

А є десь просто raw data з динамікою кількості вакансій? Ще якби автоматично оновлювався кожного місяця. Хочеться трекати, коли вже почнеться глобальна криза..

Поки що немає, але якщо тут jobs.dou.ua/trends чи тут jobs.dou.ua/trends/?category=Python зробити view-source то можна знайти дані після „var trendsData”.

У списку категорій доступна для вибору тільки частина мов)

Поки що категорії яких немає у списку можна підставляти вручну в URL, напр.
jobs.dou.ua/trends/?category=Unity

Ну и никто не мог предположить, что появится Котлин, который займет место между Java и Scala и соответственно люди со Scala перебегут на него

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

Я не писал на Scala, хотя и знаком с ним. В любом случае, эта ситуация показала, насколько неблагодарные прогнозы в ИТ

«знаком», с синтаксисом или с функциональщиной в виде scalaz/cats + shapeless?

знаю больше людей которым не нравится scala, чем тех которым нравится

А чем она не нравится ?

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

ЯКОЮ МОВОЮ
сорі, профдеформація :-)

А я все думал, будут ли комменты на счет языка. Уже хотел было сам написать.

А я думал, что будут комментарии о том, что теперь более красивые графики:
s.dou.ua/...​rage-files/2018vs2019.png

тут критерий скорее отсуствие запросов на увеличение графиков :)

не встигла дати собі по руках))

Свое имхо скажу относительно WEB: JavaScript (для интерфейса) + Python (сервер) наиболее производительная в плане (стоимость/отдача), когда нужно максимально быстро получить работающий результат (читай: делаем стартап). GO(backend) — удел компаний, следующего эшалона которые вышли на прибыль, и работают на оптимизацию железа, в таких условиях компании уже в состоянии нанимать локальных девелоперов, и не бегают по аутсорсам.

TypeScript тоже неплох для Web

Считаю по скорости(стоимости)/отдаче наиболее хорошей и простой связку js на фронте и js (node.js) на бекенде. Очень много готовых решений в виде нпм модулей, простота языка. Ну и то что он один часто выручает в ситуациях, когда разработчики работают в разное время (разные страны, удаленка). Всегда можно что то подправить на «другой» стороне.

Считаю по скорости(стоимости)/отдаче наиболее хорошей и простой связку js на фронте и js (node.js) на бекенде.

Это когда у вас стартап уровня «посчитать лайки в инсте». Когда дойдет до кровавого ынтырпрайза, понадбится нанять 9000 нодистов и построить посередине кампуса виселицу, чтобы девелоперы не вешались на деревьях и на перилах. И придется все переписать на джаве/шарпе.

Вы знаете, не холивара ради, но сам Райан Дал (создатель NodeJS) публично, и не раз предупреждал всех фанов nodejs, что node уже не место на бекенде. Проекты либо умирают, либо развиваются, в любом случае, лучше чтобы они рождались уже заведомо с оптимальными решениями для backend (PHP, Ruby, python, GO).

Голосую за TypeScript + Cloud -> для стартапов по максимальной скорости.

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

Важно понимать, что это сугубо статистика, основывающаяся по тем пользователям ДОУ, которые решили ее заполнить, и примерять ее на всю Украину вряд ли стоит, так как существует ещё огромная масса разработчиков, что эту форму не заполняла :)

Вот тут нет — 9000 для 100000 — 200000 разработчиков — это огромная подгруппа, которая заведома репрезентативна. (Для сравнения — социология по выборам для 30-ти миллионов населения от известных организаций: (КМИС выборка 2000, погрешностью 3%; Центр Разумкова, выборка 10000, погрешность < 1 % ). У нас выборка 9167 на макс. 200000 (approx 5%)

Суть не у в кількості, а в розподілі. Тому цифри прикольні, але сумніваюсь, що до них варто дуже серйозно ставитися.
Всеукраїнські опитування не проходять в Києві на Майдані опитавши там 10000 людей.

у нас нет деления по регионам в результатах

Я не про області, а про репрезентативність.
Щоб багато не писати відео (2хв) про найпоширеніші маніпуляції з опитуваннями.
www.youtube.com/watch?v=CE9f-IcbEh0

Ну может слово «репрезентативность» выбрано не совсем удачно, так как это олбычно принимают как «соотвествие аудитории выборки, аудитории популяции, если популяция набрана из нескольких групп». Тут такого нет, поэтому лучше было сказать «значимы».

Подразумеваю, что пан Андрій имел ввиду, что даная статистика, на самом деле, показывает не рейтинг языков, а рейтинг вайтишников. Вы сами написали:

Розробники з досвідом 1 рік — найбільша група (що зрозуміло, беручи до уваги швидкий ріст галузі).

. Стата имела бы хоть какое-то значение, если бы была побита на бек/фронт/мобайл/МЛ, а не смешана воедино. Так как де факто, ваша стата отображает ситуацию по вакансиям на рынке. На кой фиг делать опрос, если результат практически 1:1 отображает кол-во вакансий по языкам? Далее, если из 9к опрошеных отсеять тех у кого опыт <1 года, то мы хоть как-то сможем оценить изменения, ибо те у кого опыт <1 не могут объективно оценивать преимущества языков, так как у них опыт, в большинстве, только в 1 из них.
Как пример могу привести стату по golang. Исходя из этой статистики % гоферов начал снижаться. По сравнению с чем? С кол-вом джаваскриптеров? С таким же успехом можна сравнивать джаву и китайский.

скажем так, опрос на ДОУ, это все равно, что провели опрос только в Киеве, зато всех, по выборам президента. Вроде и выборка огромная, но фиговое представительство

Если мы принимаем гипотезу, что у нас гауссовская популяция, то статистическа значимость зависит только от размера, по определению. (вероятность того что мы взяли и смешали варианты из двух разных популяций (то есть что существуют две популяции с существенно разными параметрами) меньше барьера [5%]). Локализация важна когда у нас есть два заведомо есть какие-то различия (например региональные, в случае выборов). Тут я не вижу, что бы при текущем уровне проникновения в Internet в доступе к веб-сайту были бы какие-то отличия.

Ага. Мы уже видели всю «мощь» статистики на выборах Трампа. Поговорка даже есть: «Есть ложь, есть наглая ложь, а есть статистика».

Ага. Мы уже видели всю «мощь» статистики на выборах Трампа.

В чем проблема со статистикой и выбарами Трампа? Статистика показала что большенство за Трампа, он и победил. Другое дело что его хейтеры громко орут и попадают в те круги которые ман лучше вего видно (ИТшнеги во многом против Трампа, например)

Вообще-то вот график эксит полов: kor.ill.in.ua/...​.png?v=636142472552378240 И тут явно статистика не в пользу Трампа.

Вообще-то вот график эксит полов: kor.ill.in.ua/...​.png?v=636142472552378240

Супер график с учетом того что там не выделены ни Флорида, ни Мичиган :)

И тут явно статистика не в пользу Трампа.

Вы таки поищите статистику опросов, а не просто экситполы. У экситполов проблема в том что очень сложно контролировать выборку (мало вермени). Ужас в том что статистика показывала небольшой перевес Трампа и показывала что голосовать будут против демократов (а не за Трампа).

UPD. Перевес по териториям, те кто опрашивали густонаселенные побережья, показывали побету Клинтон (она там и победила :) )

Вы таки поищите статистику опросов, а не просто экситполы.

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

Ви хочете сказати, що перед виборами є ще щось, крім екзит-полів?

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

Вообще-то поговорка бредовая.
Есть статистика и есть интерпретация результатов той статистики.

Не давно по Дискавери была передачка со знаменитым негром. Вот результаты статистики показывали одно. А вот интерпретация этих результатов давала противоположное. Но типичный пересичный америкос или украинец не поймет, где его обманули.

Я, например, никогда не сомневался, что Web формошлепство активно вытесняет другие ниши.

чот я за свифт распереживался

Меня это тоже заинтересовало. Посмотрел я, как все любят Swift и не любят Objective-C, и полез смотреть старую статистику. Вот тут, например, dou.ua/...​language-rating-jan-2014 , новояза еще нет, и все очень довольны. А вот уже в 2015 dou.ua/...​language-rating-jan-2015 он появился, и сразу все такие «Да как мы вообще могли годами работать с этим ужасным Objective-C?» :))

Ага... Особливо дивлячись на «індекс вподобання».. )) Щось не сходиться;))
Думаю, що більшість просто не переймається проблемами прогерів в Україні (опитування, статистикою, тощо)... і живуть собі спокійно в Європах & США.. ;))

Ну як правило це означає що ніша (де мова є лідером) зменшується. Це ж саме декілька років з С#, зараз — Swift. Тільки в нас чи тенденція — важко сказати, але дуже можливо що тільки в нас: серед респонедентів, що живуть в інших країнах, частка Go значно більше

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