Компанія JetBrains опублікувала результати опитування State of Developer Ecosystem 2025, присвяченого тому, як розробники насправді змінюють мови програмування протягом кар'єри. Головний висновок: найчастіше причиною переходу лишаються вимоги проєкту, але Kotlin випадає із загальної закономірності — на нього переходять просто тому, що з ним приємніше працювати.

Мовна еволюція як історія втечі

Ада Лавлейс писала код для машини, якої на той момент фізично ще не існувало. Через сто років програмісти боролися вже з реальними машинами — перемикачами, перфокартами та примітивними числовими командами. Далі з'явилася асемблерна мова, яка запропонувала перший великий компроміс індустрії: трохи віддалитися від заліза заради зручності для людського мислення.

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

Так індустрія перейшла від асемблера до C, від C — до керованих середовищ виконання, від громіздкої корпоративної Java — до Kotlin, від свободи динамічних мов — до TypeScript, від небезпечного системного коду — до Rust, а від важких фреймворків — до легших хмарних інструментів. На перший погляд усі ці маршрути виглядають очевидними, але як вони узгоджуються з реальністю?

Існує чимало матеріалів, які тим чи іншим способом фіксують зміну популярності мов програмування з часом. Проте, за словами JetBrains, ніхто досі не досліджував загальну картину того, як самі програмісти переміщуються між мовами — не з погляду глобальних трендів індустрії, а з погляду індивідуального шляху конкретної людини.

У компанії наголошують, що для них принципово важливо зрозуміти ситуацію саме з перспективи розробника, а не історика програмування чи кар'єрного консультанта. Саме з цією метою був спроєктований опитувальник State of Developer Ecosystem — щоб показати реальний шлях справжнього програміста. Ось що показали дані за 2025 рік.

Варто одразу визнати: шлях між мовами може бути практично яким завгодно. Найпоширенішими лишаються маршрути між провідними мовами — від Python до Java і назад, а перехід з Java на Kotlin посідає третє місце за абсолютною кількістю. Проте люди мігрують у геть різних напрямках.

Методологія: від планів до реальних переходів

Від самого початку опитування Development Ecosystem JetBrains використовувала питання: «Чи плануєте ви перейти на іншу мову програмування протягом наступних 12 місяців? Якщо так, на яку саме?». Проте досить швидко з'ясувалося, що це погано прогнозує реальну зміну мови. Одна річ — планувати спробувати Rust або перейти з Java на Kotlin, і зовсім інша — реально це зробити: навіть для дуже поширених переходів кількість тих, хто справді змінив мову, значно менша за кількість тих, хто просто мав такий намір. Наявність проблем із підтримкою старої кодової бази на Java 8, наприклад, зовсім не означає, що команда справді від неї відмовиться.

Тому минулого року в опитувальник додали новий блок питань про попередній досвід респондентів із мовами програмування. Реальну міграцію за рік вирішили оцінювати за допомогою питання «Які мови програмування були для вас основними 12 місяців тому?» та кількох суміжних із ним. У поточному звіті використано саме ці дані разом із загальною картиною мовного ландшафту, зібрані на основі 8837 відповідей.

Для довідки, у звіті використовуються такі терміни: «використовувана мова» — відповідь на питання «Якими мовами програмування ви користувалися за останні 12 місяців?»; «основна мова» — відповідь на питання «Які ваші основні мови програмування? (до трьох)»; «головна мова» — відповідь на питання «Яка ваша головна мова програмування?».

Наведена в дослідженні діаграма побудована саме на відповідях щодо мов, використаних за останні 12 місяців. Зростання частки Java та Kotlin, найімовірніше, пояснюється зміною складу вибірки, а не реальним трендом. Найшвидше зростають TypeScript і Rust — про це вже йшлося в інфографіці Developer Ecosystem 2024. Тоді ж прогнозувалося зростання Python, Go та Lua, але реально виросла лише Go.

Індекс перспективності мов від JetBrains

JetBrains Language Promise Index відстежує перспективи міграції мов в умовних одиницях на основі даних про стабільність позитивної чи негативної динаміки та кількість людей, які хочуть цю мову вивчити. Lua раніше входила до лідерів цього рейтингу, проте її зростання, вочевидь, досягло певної стелі, тож зараз вона вже не серед перших.

TypeScript, Rust, Python і Go й далі мають великий потенціал для зростання. У JetBrains очікують, що чимало розробників змінять свою головну мову з JavaScript на TypeScript, продовжуючи водночас використовувати JS як другорядну.

Попри те, що JavaScript лишається найпопулярнішою мовою за загальним використанням, головною вона є лише для 6% розробників, тоді як Java значно більш популярна саме як головна мова.

На жаль, для більшості мов програмування відповідей виявилося недостатньо, тож у наступних таблицях представлені лише найпопулярніші з них.

Несподіваним результатом стало те, що C демонструє найнижчий рівень утримання користувачів. Приблизно половина тих, хто торік назвав C своєю головною мовою, зараз перейшла на щось інше. Спочатку в JetBrains припускали, що цей потік складається переважно зі студентів, які освоїли C під час навчання, а потім перейшли на іншу мову. Однак рівень досвіду впливає на цю картину лише незначно. Половина тих, хто відмовився від C, обрала причиною «Я хотів(-ла) вивчити нову мову» — цей варіант обирають значно частіше, ніж ті, хто переходить з інших мов і здебільшого посилається на те, що «проєкт, над яким я працюю, вимагає використання нової мови».

Утім, торік подібних питань не ставили, і настільки помітного відтоку користувачів C не видно навіть за порівнянням часток із даними попереднього року (2,1% цього року як головної мови проти 2,0% торік). Проте виявлений рівень плинності цілком може виявитися надійним індикатором майбутніх змін.

Чому розробники йдуть — і куди

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

Варто зауважити, що вибірка для C, Kotlin і PHP дуже невелика — менш ніж 100 респондентів. Серед основних висновків з цих даних:

  • Вимоги проєкту — найпоширеніша причина зміни мови програмування.
  • Для C, як уже згадувалося, дуже популярні причини «Хотів(-ла) вивчити нову мову» та «Більш сучасні можливості мови», що, ймовірно, свідчить про широке незадоволення користувачів і старіння мови.
  • Для JavaScript основна причина відходу — «Кращі можливості на ринку праці».
  • Обмеження продуктивності та масштабованості часто стають причиною переходу з PHP.
  • На варіант «інше» припало 18% відповідей тих, хто залишив Kotlin; за їхніми словами, йдеться про зміну компанії або перехід між хобі-використанням і професійним.

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

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

Таблиця показує, куди йдуть люди залежно від їхньої попередньої мови. Python є основним напрямком переходу для всіх мов, окрім C (користувачі якої частіше обирали Java та C++) і TypeScript (де головними напрямками стали Java, JavaScript і C#).

Чому розробники приходять — і звідки

Погляньмо тепер на зворотну перспективу — з погляду мови, на яку люди переходили.

  1. Як не дивно, JavaScript одночасно є і мовою, яку залишають заради кращих можливостей на ринку праці, і мовою, на яку переходять з тієї самої причини. Утім, це різні потоки: одним із головних джерел зростання JavaScript є HTML/CSS. Виходить своєрідний конвеєр: HTML до JavaScript, а далі до TypeScript.
  2. Вимоги проєкту дуже часто стають причиною переходу на C# і C++, що свідчить: значна частина розробників обирає ці мови просто тому, що змушені це робити.
  3. На Kotlin переходять не з примусу, а тому, що ця мова пропонує кращий досвід розробки та більш сучасні мовні можливості.
  4. Продуктивність і масштабованість є головними принадами Go, тоді як для Python сильнішою приманкою є екосистема та підтримка бібліотек.

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

Тут за 100% береться мова, яку респонденти вважають головною на момент відповіді. Відповідно, діагональ показує те, що в JetBrains називають коефіцієнтом безперервності — частку людей, які використовують цю мову як головну і зараз, і використовували так само рік тому. Уявімо, що є 150 респондентів: 100 із них сказали, що цього року використовують певну мову як головну, а 125 сказали, що використовували її як головну торік. При цьому 75 людей використовували цю мову як головну і рік тому, і на момент опитування.

У такому випадку коефіцієнт утримання становив би 75%, а коефіцієнт безперервності — 60%. Важливо розуміти, що всі інші не обов'язково є «новачками» в цій мові: вони цілком могли користуватися нею й раніше, просто не як головною.

Що стосується джерел зростання, Python є основним джерелом припливу для C, C#, C++, Go, Java та JavaScript, що не дивно, адже це одна з найпопулярніших мов.

Для Kotlin головним джерелом зростання є Java, а для PHP і TypeScript — JavaScript.

Для самого Python головним джерелом зростання виступає Java.

Висновки

Аналізуючи реальні переходи замість намірів, дослідники зміщують фокус із намірів на дії — не те, що розробники кажуть, а те, що вони насправді роблять. Дані екосистеми перестають бути статичним знімком і перетворюються на карту потоків.

Вимоги проєктів і надалі є головним рушієм більшості переходів. Необхідність, а не вільний вибір, спонукає до зміни мови в багатьох випадках, хоча далеко не в усіх. Одні мови перемагають завдяки конкретним задачам, інші — завдяки продуктивності чи екосистемі. Чимало розробників рухаються цілими ланцюжками: від HTML/CSS до JavaScript, а далі — конвеєр навичок, де кожен крок відкриває наступний.

Плинність користувачів дає найчіткішу картину. C втрачає таланти швидше, ніж можна було очікувати, навіть якщо загальні цифри виглядають стабільними. Java лишається своєрідним хабом, але основний відтік із неї йде переважно до Python і TypeScript, а не до Kotlin. Python виконує роль універсального напрямку для переходів. TypeScript і Rust і далі виглядають передовим краєм розвитку.

Kotlin, власна мова JetBrains, грає за іншими правилами — і грає добре. Розробники приходять до неї не з примусу, а з власного бажання, приваблені чистішим синтаксисом, меншою кількістю незручностей і загальним відчуттям, що з нею просто приємніше працювати. Ця мова перемагає завдяки притяганню, а не тиску обставин. Утім, приплив користувачів із Java виявився слабшим, ніж очікувалося, а частина розробників і зовсім повертається назад.

Let's see what DevEco'26 will reveal.

JetBrains, Kotlin Blog

Джерело: Kotlin Blog