Перед новим роком я створив невеликий опитувальник для учасників групи зокрема та українських джавістів загалом. Розкинув по всіх джавішних групах у ФБ та лінкедіні. За кілька тижнів опитувальник заповнило близько 400 джавістів тож я вирішив підбити підсумки, проте ви все ще можете заповнити опитувальник і я оновлю результати за якийсь час.
Отож насамперед трохи даних про людей які заповнили наш опитувальник. Як бачимо більшість респондентів віком від 30 до 40 років, це дещо неочікуваний результат оскільки вважається що джуніори більш активні (зауважте кількість респондентів віком до 25 років всього 20%). В коментарях навіть була така думка
Не довіряйте результатам, більшість відповідей будуть давати активні молоді люди, які нещодавно почали працювати. А вони все що нижче 12 версії рахують не вартим уваги. Хоча мій досвід показує, що від появи 6-ї версії чогось такого не з’явилось без чого не було б можливо жити. Мій досвід більше 16-ти років Java розробки. Активна робота зі всім, що дотичне до Java.
Дякую
71% респондентів – розробники ПЗ, можу також припустити судячи із зауважень, що 5.7% які не вказали позицію – це QA інженери, що пишуть автоматизовані тести
Більшість – чоловіки, жінок ледь більше 7 відсотків
Оскільки це Львівська група джавістів то очевидно, що більше половини вказало місцем роботи – Львів (підозрюю більшість побачила мій пост у нашій ФБ групі ), чверть з Києва, ну і жменька анкет зі всієї України. Сподіваюсь з часом географія розшириться
Дещо неочікувано для мене але більше половини мають петпроджекти
порівняно невелика кількість робить свій внесок в проекти з відкритим кодом
Загалом опитувальник складався з кількох логічних блоків: питання по версіях java та загалом по мовах які використовуються, питання по фреймворках і бібліотеках, питання по інструментарію та питання по процесу розробки. Деякі питання видаються схожими проте різні формулювання дозволили вибудувати більш чітку картину. Також на багато питань можна вибрати одразу декілька відповідей – це зумовлено тим, що значна частина працює на кількох проектах одночасно і ще більше міняють проекти протягом року тому було б важко вибрати лише одну правильну відповідь
Отож лідером в комерційних проектах зі значним відривом є java8 хоч загалом на 11-ку за рік мігрувало досить багато, з власного досвіду знаю що це не так і просто
Якщо взяти до порівняння домашні проекти де оновити версію набагато легше то там картина зовсім інша хоча “вісімка” з невеликим відривом лідирує і там
міграція на нові версії штука не проста, тому майже 44% взагалі ніколи не мігрують продакшин на нові версії і ще 31% думають щоразу коли виходить нова версія, що ж робити (підозрюю думи ці не прості)
Нові проекти як правило плануються на LTS версіях і тільки кожен п’ятий готовий взяти найновішу версію навіть без довготривалої підтримки
Найпопулярнішим імплементаціями JDK є очікувано OpenJDK та OracleJDK, хоча підозрюю з часом частка Oracle буде скорочуватись
Для повноти картини я поцікавився якими ще jvm та не jvm мовами послуговуються. Картина передбачувана – більше половини взагалі інших jvm мов не використовує, а з non-jvm лідирує js
Оскільки я підозрювавав, що левова частка джавістів працює над веб проектами
то одним з важливих питань було, які вебфреймворки використовуються. На вибір було десяток великих і малих рішень
я б сказав що Spring переміг всіх двічі 🙂
Всі ці спрінгові проекти зазвичай крутяться на томкеті
А томкети розгорнуті на хмарах або власних серверах
І основним постачальником цих клаудів є Амазон
Вертаючись до фреймворків – BigData схоже не настільки розповсюджена як можна було подумати – 72% не використовують жодного фреймворку, хоч з іншого боку – 28% це більше ніж кожен четвертий проект, в якому працюють з BigData…
Зі звичайними реляційними базами на відміну від BigData працюють майже всі і біля 60% з jpa загалом та hibernate зокрема, що в певній мірі підтверджує думку про аутсорс як “формошльопство”
Бази під хібером в більшості фрішні MySql та Postgre
Нереляційні бази теж широко вживані – лише третина не використовує nosql в своїх проектах, Mongo та Redis попереду
Ще одним дуже поширеним компонентом сучасного девелопменту є черги повідомлень де доволі неочікувано для мене на першому місці кафка
В межах блоку питань я ще поцікавився хто користується Lombok’ом і виявилось майже всі… окей не всі, але справді дуже багато (якщо хто знає – розкажіть як воно вживається з хібернейтом)
Ну і звичайно не міг забути про системи логування (знаю slf4j не є окремою системою логування проте питань було вже й так багато тож не хотілось додавати ще одне)
Отож старенький log4j переміг logback 🙁 Більшімть все ж таки користуються slf4j – молодці
І це було останнє питання з блоку про фреймворки та бібліотеки.
Інструментарій
Вічно холіварна тема Idea vs Eclipse схоже отримала свою остаточну відповідь, проте почнемо з простіших речей: отож – мейвен все ще лідер, хоча грейдл успішно відвойовує своє місце під сонцем
Майже всі вже перейшли на гіт, свн – вмер
хтось користується гітлабом хтось гітхабом і навіть бітбакет не відстає – однозначного лідера нема
Також приємно відзначити що >99% користується бодай якоюсь системою контролю версій
Використання СІ інструментів незначно поступається за цим показником. Що тут казати – пишаюсь 🙂
Найпоширенішим є Jenkins на другому місці – “Інше”
Ну і найцікавіше наостанок
Процеси та практики
Більшість проектів використовує системи відслідковування дефектів
Якоїсь загальноприйнятої частоти релізів немає, кожен має свою частоту
всі релізи добре покриваються юніт тестами
Доволі часто на проекті дотримуються Test Driven Development (TDD)
Зазвичай на проект є QA
тестується або вручну або вручну і автоматизованими тестами
на середовищі як правило ідентичному до проду або близькому до ідентичного
Це було останнє питання…
Не буду робити жодних висновків з опитування, але був би вдячний за ваші думки, ваші висновки та ваші поради щодо наступного опитувальника.
P.S.
Опитувальник все ще можна заповнити за посиланням
P.P.S.
Велике дякую всім хто виділив свій час, щоб дати відповіді на питання, а особливо тим хто писав коментарі та поради. Я дуже ціную вашу участь.
Не забувайте нас фоловити у ФБ