jugLviv

Meta


Share on:


jugLviv Leader, CTO @Software Service&Innovation https://software-innovation.ch/

Java Ukraine 2019 – Survey Summary(UA)

Andriy AndrunevchynAndriy Andrunevchyn

Перед новим роком я створив невеликий опитувальник для учасників групи зокрема та українських джавістів загалом. Розкинув по всіх джавішних групах у ФБ та лінкедіні. За кілька тижнів опитувальник заповнило близько 400 джавістів тож я вирішив підбити підсумки, проте ви все ще можете заповнити опитувальник і я оновлю результати за якийсь час.

Отож насамперед трохи даних про людей які заповнили наш опитувальник. Як бачимо більшість респондентів віком від 30 до 40 років, це дещо неочікуваний результат оскільки вважається що джуніори більш активні (зауважте кількість респондентів віком до 25 років всього 20%). В коментарях навіть була така думка

Не довіряйте результатам, більшість відповідей будуть давати активні молоді люди, які нещодавно почали працювати. А вони все що нижче 12 версії рахують не вартим уваги. Хоча мій досвід показує, що від появи 6-ї версії чогось такого не з’явилось без чого не було б можливо жити. Мій досвід більше 16-ти років Java розробки. Активна робота зі всім, що дотичне до Java.

Дякую

Age

71% респондентів – розробники ПЗ, можу також припустити судячи із зауважень, що 5.7% які не вказали позицію – це QA інженери, що пишуть автоматизовані тести

position

Більшість – чоловіки, жінок ледь більше 7 відсотків

gender

Оскільки це Львівська група джавістів то очевидно, що більше половини вказало місцем роботи – Львів (підозрюю більшість побачила мій пост у нашій ФБ групі ), чверть з Києва, ну і жменька анкет зі всієї України. Сподіваюсь з часом географія розшириться

city

Дещо неочікувано для мене але більше половини мають петпроджекти

порівняно невелика кількість робить свій внесок в проекти з відкритим кодом

opensource projects

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

Отож лідером в комерційних проектах зі значним відривом є java8 хоч загалом на 11-ку за рік мігрувало  досить багато, з власного досвіду знаю що це не так і просто

java in prod

Якщо взяти до порівняння домашні проекти де оновити версію набагато легше то там картина зовсім інша хоча “вісімка” з невеликим відривом лідирує і там

java in pet projects

міграція на нові версії штука не проста, тому майже 44% взагалі ніколи не мігрують продакшин на нові версії і ще 31% думають щоразу коли виходить нова версія, що ж робити (підозрюю думи ці не прості)

java update in prod

Нові проекти як правило плануються на LTS версіях і тільки кожен п’ятий готовий взяти найновішу версію навіть без довготривалої підтримки

java for new project

Найпопулярнішим імплементаціями JDK є очікувано OpenJDK та OracleJDK, хоча підозрюю з часом частка Oracle  буде скорочуватись

jdk vendor

Для повноти картини я поцікавився якими ще jvm та не jvm мовами послуговуються. Картина передбачувана – більше половини взагалі інших jvm мов не використовує, а з non-jvm лідирує js

Оскільки я підозрювавав, що левова частка джавістів працює над веб проектами

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

popular web frameworks

я б сказав що Spring  переміг всіх двічі 🙂

Всі ці спрінгові проекти зазвичай крутяться на томкеті web servers

А томкети розгорнуті на хмарах або власних серверах hosting platform

І основним постачальником цих клаудів є Амазон cloud provider

Вертаючись до фреймворків – BigData схоже не настільки розповсюджена як можна було подумати – 72% не використовують жодного фреймворку, хоч з іншого боку – 28% це більше ніж кожен четвертий проект, в якому працюють з BigData… 

big data frameworks

Зі звичайними реляційними базами на відміну від BigData працюють майже всі і біля 60% з jpa загалом та hibernate зокрема, що в певній мірі підтверджує думку про аутсорс як “формошльопство”

rdb frameworks

Бази під хібером в більшості фрішні MySql та  Postgre relational DB vendors

Нереляційні бази теж широко вживані – лише третина не  використовує nosql в своїх проектах, Mongo та Redis попереду 

no sql solutions

Ще одним дуже поширеним компонентом сучасного девелопменту є черги повідомлень де доволі неочікувано для мене на першому місці кафка 

message queue systems

В межах блоку питань я ще поцікавився хто користується Lombok’ом і виявилось майже всі… окей не всі, але справді дуже багато (якщо хто знає – розкажіть як воно вживається з хібернейтом) 

lombok usage

Ну і звичайно не міг забути про системи логування (знаю slf4j не є окремою системою логування проте питань було вже й так багато тож не хотілось додавати ще одне)

Отож старенький log4j переміг logback 🙁 Більшімть все ж таки користуються slf4j – молодці

logging

І це було останнє питання з блоку про фреймворки та бібліотеки. 

Інструментарій

Вічно холіварна тема Idea vs Eclipse  схоже отримала свою остаточну відповідь, проте почнемо з простіших речей: отож – мейвен все ще лідер, хоча грейдл успішно відвойовує своє місце під сонцем

project build tool

 

Майже всі вже перейшли на гіт, свн – вмер

SCV platform

хтось користується гітлабом хтось гітхабом і навіть бітбакет не відстає – однозначного лідера нема

scv tool

Також приємно відзначити що >99% користується бодай якоюсь системою контролю версій

scv usage

Використання СІ інструментів незначно поступається за цим показником. Що тут казати – пишаюсь 🙂

CI usage

Найпоширенішим є Jenkins на другому місці – “Інше”

CI tools

Ну і найцікавіше наостанок

IDE

Процеси та практики

Більшість проектів використовує системи відслідковування дефектів

bug tracking usage

Якоїсь загальноприйнятої частоти релізів немає, кожен має свою частоту

release frequency

всі релізи добре покриваються юніт тестами

unit test covearge

Доволі часто на проекті дотримуються Test Driven Development (TDD)

TDD usage

Зазвичай на проект є QA

dedicated QA

тестується або вручну або вручну і автоматизованими тестами

QA type

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

QA env 

Це було останнє питання…

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

P.S.

Опитувальник все ще можна заповнити за посиланням

P.P.S.

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

 

Не забувайте нас фоловити у ФБ 

jugLviv Leader, CTO @Software Service&Innovation https://software-innovation.ch/