Портал DOU представляє результати щорічного опитування щодо мов програмування. Цього разу зібрали 9747 анкет. Поїхали.
Комерційне використання
Бачимо, що JavaScript нарешті суттєво випередив Java і став найпопулярнішою мовою програмування. Також серед нових мов слід звернути увагу на Dart — він одразу зайняв, не сказати щоби велику, але досить помітну нішу. Нам буде зручніше мати під рукою історію питання: Тут важко не відмітити падіння популярності JVM та ріст JS-екосистеми (JavaScript, TypeScript). Схоже, на серверах JVM стек поступається Node.js. А от темпи зменшення популярності C# призупинилися — можливо, це пов’язано з розповсюдженням .NET Core — відкритого кросплатформного райнтайму, який знімає для користувачів проблему «прив’язки до вендору».
Також цікава ситуація у світі мобільної розробки: частка Swift незначно зменшується, Kotlin — незначно росте, коли, з іншого боку, mobile first для бізнесу вже традиційна практика. Можна припустити, що в мейнстрім пішли кросплатформні фреймворки (ті ж React Native й Flutter), а нативні мови використовуються більше для системних задач.
Давайте подивимось на те, які зміни є статистично значущими в порівнянні з попереднім роком: Ріст: Python, TypeScript, Dart, і… чомусь 1C.
Спад: Java, PHP, Objective-C та Scala. Цікаво, що в порівнянні з 2017 роком, статистично значущі зміни майже ті ж.
Щодо Scala, мені здається, що тут є частка «обережності» старту проекту перед виходом Scala 3.0 (він же Dotty). До речі, Dotty — дійсно нова мова й абсолютно фантастична (приходьте на ScalaUA).
Зазначимо, що майже 8% респондентів використовують декілька мов у якості основних.
Особисті вподобання
Зараз фаворитом є Python, далі йдуть майже однаково рівні C#, JavaScript та Java, а далі вже — TypeScript.
Якщо дивитися у ретроспективі, можна відмітити схожий на експоненційний ріст Python та TypeScript. На перший погляд можна спробувати поділити частку вибору в наступному проекті на частку використання в теперішніх проектах, щоби побачити тенденції, але прогон цієї моделі на історичних даних показує її хибність, яку неможливо пояснити лише інерцією. З цього можна вивести, що люди, які ухвалюють рішення про вибір мови програмування в наступному проекті,
не можуть бути представлені випадковою вибіркою з популяції розробників.
Подивимося на «індекс вподобання» — це відношення розробників на мові X, які для наступного проекту у своїй області також оберуть X. Ми бачимо, що найбільш приємні мови — це порівняно нові мови, що спеціалізовані для своєї предметної області.
Найбільш задоволені (92%) користувачі Rust (цієї мови навіть немає у 20-ці) — бачимо, що для ніши системного програмування вона підходить майже ідеально. Далі — Kotlin. Між 80 і 90% також міститься Swift, Go, Scala, TypeScript і навіть Erlang. А перша масова мова — C# — має індекс вподобання 83%.
Узагальнюючи, можна сказати, що нішеві мови подобаються користувачам, але ця ніша може бути занадто вузькою. А от хто думає про міграцію, так це передбачувано старі мови, для яких є більш сучасні аналоги у відповідних нішах.
Вивчення нових мов
Наступного року планують вивчити мову програмування 60% респондентів. Лідери — Python та JavaScript — тут зрозуміло. Також можна звернути увагу на порівняно високу частку (у порівнянні з актуальним розповсюдженням) інтересу до Dart,
Rust, ну і традиційно — Haskell.
Як і в попередні роки, більшість респондентів (54%) збираються вивчати нову мову самостійно, з допомогою книг та документації. На онлайн-курси орієнтуються майже 32%, а 7% збираються використовувати офлайн-підхід із локальними викладачами.
Додаткові мови
Що тут можна сказати — розподіл даних приблизно той самий. Можна побачити, що частка нішевих мов як додаткових менша, ніж їхня частка як основних. Отже, скоріш за все, для FullStack-розробки більше використовуються мови загального призначення, такі як JavaScript, TypeScript, ніж Swift та Kotlin. Свої проекти
Ну і, нарешті, pet projects. Динаміка знову повторюється. Що цікаво — спостерігається деякий «ренесанс» C++ та С. Можливо, це пов’язано з ростом cегмента інтернету речей, де DIY (Do it yourself — зроби сам) набрав риси своєрідної субкультури. Додаткові дані Ми бачимо, що майже 15% — це рік досвіду й одна основна мова. Потім квадратик на діагоналі світлішає — люди переходять на інші мови. Видно, що на третій рік 0.51 людей залишаються на тій же мові. Далі перетікання послаблюється:
4 роки — 0.45; 5 і 6 років — так само 0.45. Отже, якщо не звернули з мови в перші три роки, то, як правило, залишаєтесь надовго.
Якщо дивитися на залежність віку та досвіду розробника від мови програмування, то цікава роль C++. Наразі ця мова з наймолодшою медіаною віку — 25 років. Цікаво, як так виходить. Спробуємо наступного року створити карту можливих напрямів розробки. Пропоную поки що обговорити це в коментах. Щодо діаспори, то тут дані говорять самі за себе. Знову більш ніж у 4 рази різниця частки Scala-розробки. Здається, що спеціалізація на «масових мовах» може зіграти негативну роль у подальшому розвитку: маємо ризик знайти «спіраль невдачі» — менше спеціалістів із нових технологій => менший пул талантів => менше замовлень. Хотілося б бачити якусь стратегію протидії. Нижче перша мова програмування для розробників з досвідом менше року, протягом останніх шести років. Наразі все ще лідирує Pascal. Але, як бачимо, основною мовою навчання стає С++, далі йдуть Python та Java.
Источник: DOU
Мы ежедневно собираем для вас важные исследования со всего мира. Следите за нами в Facebook, Twitter и Вконтакте, чтобы всегда иметь под рукой свежие и актуальные данные. А также подписывайтесь на нашу еженедельную рассылку. Подписаться!