Скільки мов використовують українські розробники та як їх комбінують. Аналітика

💡 Усі статті, обговорення, новини про Mobile — в одному місці. Приєднуйтесь до Mobile спільноти!

У лютому ми підготували традиційний рейтинг мов програмування. А тепер вирішили проаналізувати, як багато їх використовують розробники у роботі та як поєднують.

Найчастіше розробники програмують двома мовами — так вказали 44% опитаних фахівців. TypeScript і JavaScript найчастіше використовуються разом. С#/.NET, Java, PHP, Python, Ruby, Salesforce нерідко комбінують з TypeScript і JavaScript. Бекендери частіше за інших розробників можуть обійтися лише однією мовою у роботі.

Для аналізу ми використали відповіді 5959 українських розробників, які зараз в Україні або тимчасово живуть за кордоном, з анкети зимового зарплатного опитування DOU, яке проходило в грудні 2023 та січні 2024 років.

Як ми це зробили

Для підрахунку кількості мов, якими розробники користуються в роботі, використали відповіді на два запитання із зарплатного дослідження:

  1. Основна мова програмування (та, яку використовуєте найчастіше на поточній посаді).
  2. Інші мови програмування (не більше як три мови, які також використовуєте на поточній посаді. Якщо таких немає, оберіть варіант «Не використовую»).

Мови програмування, додані в дослідження:

  1. ABAP
  2. APL
  3. Assembler
  4. C# / .NET
  5. C
  6. C++
  7. Clojure
  8. Dart
  9. Elixir
  10. Erlang
  11. Flex / Flash / AIR
  12. Go
  13. Groovy
  14. Haskell
  15. Java
  16. JavaScript
  17. Kotlin
  18. Objective-C
  19. Pascal/Delphi
  20. Perl
  21. PHP
  22. Python
  23. R
  24. Ruby
  25. Rust
  26. Salesforce Apex
  27. Scala
  28. Solidity
  29. Swift
  30. TypeScript
  31. X++ / D365

В аналізі ми не враховували SQL та інші мови запитів до баз даних.

Переважно розробники використовують дві мови програмування

Найчастіше розробники використовують у роботі дві мови програмування — так вказали 44% респондентів.

«Увійти в ІТ» можна і з однією мовою — 37% розробників, які почали працювати 2023 року, використовують лише одну мову в роботі. Проте що досвідченіший розробник, то більшою кількістю мов він користується. Тільки 21% SE з досвідом від 10 років можуть обійтися однією мовою, а 43% пишуть трьома або більше мовами.

Найбільшу кількість мов доводиться засвоювати Full Stack і Mobile-розробникам. 85% фулстеків уже на початку кар’єри користуються 2–3 мовами програмування.

Скільки мов використовують у роботі українські розробники


Mobile-розробники можуть почати працювати зі знанням однієї мови — 59% тих, хто працює менше ніж рік за цією спеціалізацією, пишуть лише однією. Проте доволі швидко виникає потреба засвоювати й інші. Серед розробників з досвідом до двох років уже 44% використовують одну мову, а з досвідом до п’яти років — 34%. Серед Mobile-розробників, які в індустрії понад дев’ять років, більш ніж половина використовує три й більше мови — це найвищий показник серед усіх спеціалізацій.

Майже третина Back-end фахівців у роботі обходиться лише однією мовою програмування. Навіть серед розробників з досвідом 10 і більше років 24% використовують лише одну мову — це найвищий показник серед усіх спеціалізацій.

Фронтендерам як досвідченим фахівцям, так і початківцям переважно потрібні дві мови програмування.

Бекендери частіше за інших можуть обійтися однією мовою в роботі

Back-end розробка

10% бекендерів користуються тільки Java, 8% — тільки C#/.NET, 5% — тільки Python. Як другу мову вони найчастіше обирають JavaScript: 7% комбінують її з РНР, по 4% — з Java, C#/.NET і TypeScript.

Набирає обертів поєднання Python і JavaScript: цими мовами пишуть 12% новачків, які прийшли в бекенд-розробку менше ніж рік тому, проти 3% серед всіх бекендерів. Також стає популярнішою комбінація JavaScript і TypeScript — її використовують 9% новачків проти 4% серед всіх бекенд-розробників.

Front-end розробка

Більшість фронтендерів використовують JavaScript і TypeScript — 76% пишуть лише цими двома мовами або однією з них. Близько половини фронтенд-розробників послуговуються і JavaScript, і TypeScript. 14% — лише JavaScript, 8% — лише TypeScript. Деякі фронтендери до цих мов додають РНР.

Як поєднують мови, розподіл за спеціалізацією та досвідом роботи

Список не вичерпний, на діаграмі показані найпопулярніші комбінації.

Full Stack розробка

Фулстеки теж полюбляють JavaScript і TypeScript (хоча й не так, як фронтендери). 16% Full Stack розробників використовують тільки ці дві мови, ще 7% — тільки JavaScript, 2% — тільки TypeScript. Інший поширений варіант — комбінація цих мов з C#/.NET: 11% Full Stack розробників обирають ці три мови, 6% — C#/.NET та JavaScript, 5% — C#/.NET і TypeScript. Дещо рідше їх поєднують з РНР: 8% пишуть на РНР і JavaScript, 5% на РНР, JavaScript і TypeScript.

Як і бекендери, фулстеки починають частіше використовувати поєднання JavaScript і TypeScript (26% серед новачків проти 16% серед всіх Full Stack розробників) і Python та JavaScript (5% серед новачків проти 2% серед всіх).

Mobile-розробка

Найпопулярніша комбінація мов серед фахівців з мобільної розробки — Kotlin і Java (17% кодять тільки цими двома мовами), ще 7% використовують тільки Kotlin. Тільки Swift обирають 12% Mobile-розробників, ще 7% — Swift разом з С та Objective-C (переважно розробники з досвідом від 10 років). 6% віддають перевагу тільки C#/.NET, а 5% — тільки Dart.

Популярність Kotlin і Dart в мобільній розробці зростає. 24% Mobile-розробників, які працюють менше ніж рік, пишуть тільки на Kotlin (проти 7% серед всіх Mobile-розробників). 10% новачків працюють тільки з Dart проти 5% серед всіх Mobile-розробників загалом.

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

С#/.NET, Java, Python, Swift і Dart частіше за інші мови використовуються самостійно і рідше комбінуються з іншими мовами програмування.

TypeScript і JavaScript найчастіше йдуть разом. Лише невелика частина розробників може послуговуватися тільки JavaScript (28% тих, для кого це основна мова) або тільки TypeScript (16%).

С#/.NET, Java, PHP, Python, Ruby, Salesforce часто комбінують з TypeScript і JavaScript.

С і С++ нерідко використовують разом з Python і С#/.NET.

Go поєднують з Python, дещо рідше — з JavaScript. Python часто використовують ті, чия основна мова програмування Rust.

Майже половина розробників, у яких Kotlin — основна мова програмування, обирають Java. Користувачі Swift схильні працювати тільки з нею або поєднувати її з C та Objective-C. Dart використовують самостійно або комбінують з Kotlin, Swift і Java.

Комбінації мов залежно від основної мови

В категорії «Інші» об’єднані багато одиничних комбінацій, які не є поширеними та не показані на діаграмі.


Аналітика: Ірина Іпполітова

Все про українське ІТ в телеграмі — підписуйтеся на канал DOU

👍ПодобаєтьсяСподобалось11
До обраногоВ обраному2
LinkedIn



14 коментарів

Підписатись на коментаріВідписатись від коментарів Коментарі можуть залишати тільки користувачі з підтвердженими акаунтами.

Знання однієї Java забезпечить вас до кінця життя

+1 за JavaScript і TypeScript разом

C | Objective-C | Swift — це по суті не три, а дві мови, оскільки C — це підмножина Objective-C. C повністю входить в Objective-C.

Мова C не є підмножиною С++, тому ми пишемо С/С++, маючи на увазі дві різних мови, і це правильно. Але ми не пишемо C/Objective-C, тому що достатньо просто написати Objective-C.

C | Objective-C | Swift — це по суті не три, а дві мови, оскільки C — це підмножина Objective-C

Тоді вже 1, а не 2 :)

У даної статті проблема з методологією:
Є мови, що тісно зав’язані на інфраструктуру іншої мови.

JavaScript і TypeScript — це різні синтаксиси, але по факту це одна інфраструктура. Тому пари Пайтон+ТС та Пайтон+ДжС мають по факту бути об’єднані в 1 категорію, це по факту, Фулстеки з Пайтон БЕ.
Груві так само прив’язани до джави, груві-проектів де б не треба було знання джави хоча б на рівні читання я не зустрічав. З котлін може краща історія, але все одно впевнений у великому котлін-проекті джава буде стирчати.

З С та Обж-С трохи інша історія. Теоретично можливо, що С-модулі будуть умовно білдитись окремо від Обж-С проекту (на якому наприклад УІ), але підозрюю, що зараз такого вже не буде. Свіфт — це мова яка мала б замінити Обж-С, тому їх розділяти дивно.

Якщо говорити про Swift та Objective-C, то це все-таки дві різні мови, і досить цікавою є інформація, скільки розробників використовують лише Swift, а скільки — Swift в парі з Objective-C.

і досить цікавою є інформація, скільки розробників використовують лише Swift, а скільки — Swift в парі з Objective-C.

Так інфа цікава, але це питання не в контексті теми

Скільки мов використовують українські розробники та як їх комбінують. Аналітика

Власне з такої «аналітики» я б очікував можливість робити якісь висновки. Умовно:
Як розробник на мові Х, на яку мову мені варто подивитись?

В контексті Свіфт цікавим інсайтом могла б бути зв’язок з Дарт (але там на рівні похибки)

Чому тільки Web/Mobile у опитуванні? Таке враження, що крім веб і мобільних застосунків вже ні чого не залишилось. Я розумію що це найбільш масова сфера, але цікаво, що там в інших коїться.

я, як FE розробник, не розумію, як можна вважати комбінацію «JavaScript і TypeScript» двома мовами програмування. на мою думку, це неправильно.

Відразу побачили компетенцію тих респондентів, хто дав відповідь про дві мови :-)

PS. Офіційна сторінка TS називає це мовою.

Так само як із С та C++, технічно це різні мови програмування, хоч С++ це надмножина С. Так само як і TypeScript надмножина JavaScript.

С++ це надмножина С

Це така ж надмножина як скажемо назвати С# надмножиною С++.

Кожен перший актуальний код на С містить type punning через union, присвоєння void * без кастів, designated initializers чи банальне int class; через що навіть просто білд по плюсовим стандартам впаде. Ідіоматичний код на плюсах останніх стандартів теж має все менше спільного з сішним, хоч C89, хоч C2x.

І так і не так, С11 і вище усе більше комітети підтягують одну мову до іншої і в цілому в цьому є сенс.
TypeScript теж мова, а не просто JavaScript із класами. Як мінімум жоден браузер ще не виконує безпосередньо TypeScript (сподіваюсь і не буде, а буде подальший розвиток WebASM).

Вибачайте, не знаю такого терміна як «підмножина мови програмування» — або інша мова або ні :-) Ну так як вирішимо?

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