JavaRush /Java блог /Random UA /Кава-брейк #68. Чесна думка про Java та її екосистему. Тр...

Кава-брейк #68. Чесна думка про Java та її екосистему. Три нові інструменти Java, на які варто звернути увагу у 2021 році

Стаття з групи Random UA

Чесна думка про Java та її екосистему

Джерело: Dev.to Добре, я визнаю, що моя основна мова C#. Але це моя неупереджена думка про Java і її екосистему. Я досить часто використовував команду bash на Java, бачачи її недоліки. Наприклад, Java немає властивостей, у неї спочатку немає подій, немає структур, немає перевантаження оператора, і до Java 10 не було виводу, тому немає і 'var'. Все, що є в C #! Крім того, я використовував bash для Java через відсутність LINQ, var та enums. І все ж я досить багато пишу на Java, особливо коли створюю додатки для Android, але і для інших речей теж. Мій перший проект також був на Java! Отже, у п'ятницю ввечері через терміновість мені довелося писати на Java кілька годин поспіль. І вгадайте, що я виявив? ПОТОКИ! Кава-брейк #68.  Чесна думка про Java та її екосистему.  Три нові інструменти Java, на які варто звернути увагу в 2021 році.Очевидно, Java 8 з'явабося потоки! І я гадки не мав про це! Для тих із вас, хто не знає, Streams – це Java-реалізація LINQ. Також я виявив, що Java 10 є висновок типу, тому тепер в Java з'явилася функція var! Я не можу повірити, наскільки мої знання застаріли, але чесно тому була причина. Ці дві речі дуже змінабо моє мислення! Чи знаєте ви, що Java завжди перевіряє винятки, а C# - ні? Визнаю, що у C# мені дуже не вистачає цієї можливості! Так, тут немає структур, властивостей і так далі, але, чорт забирай, це елегантно! Я думаю, що Java за своїм задумом змушує розробника писати більш надійні програми. У той час як у світі .NET це переважно залишається на розсуд кодера. Деяким розробникам подобаються такі обмеження, тоді як інші віддають перевагу свободі. Хоча обидві мови досить безпечні, очевидно, що Java має невелику перевагу. Отже, чому великі компанії віддають перевагу Java? Здається, тепер знаю відповідь! Що мене найбільше засмучує, так це те, що... в більшості прикладів коду, які ви бачите в інтернеті, ці розширені функції не завжди використовуються… Я думаю, що якщо Java-розробник, що починає, побачить 'var', написаний по всій кодовій базі, він збожеволіє! А потоки? Що таке потоки? Розробники Java люблять цикл For! Насправді навіть цикли foreach досить рідкісні у світі Java (і, можливо, для цього є причина: цикл For набагато більш оптимізований). Але ж це непогані особливості! Я піду ще далі, сказавши, що це чудові функції! Мені дуже боляче, коли я пишу програми для Android і помічаю, що майже ніде в API Android не використовуються переліки! І це справедливо, тому що Android було написано багато років тому. Що мене найбільше дратує, то це те, що мені доводиться використовувати константи щоразу, коли мені потрібно використовувати функцію «Активність для результатів» в Android, наприклад: int PICK_IMAGE_FROM_GALLERY = 3000 Братане, це безумство! І все ж люди в усьому світі дійшли того, що це потрібно прийняти. І навіть я. Java також відсутня нативна реалізація подій! Якби у неї тільки були події та делегати, такі як у C#... (Гей, творці мови Java, якщо ви, хлопці, читаєте це, вам потрібно додати події! І якщо вони у вас вже є або в розробці, дайте мені знати). А тепер я скажу, що може бути найбільшим недоліком в екосистемі Java. ДОКУМЕНТАЦІЯ! Безладна та марна документація на сайті Oracle виглядає дурною та застарілою, на рівні 2007 року. У ньому навіть не завжди є приклади коду. Якщо ви почнете шукати відносно незвичайну фічу або метод API, ви знайдете нудне визначення, оголошення, аргументи, до якого пакету належить — і все. Я вважаю це абсурдом. Вам не здається, що це абсурд? Нема фрагментів коду? Тому ми, розробники, повинні покладатися значною мірою на форуми, такі як StackOverflow, або інші веб-сайти програмування, такі як TutorialsPoint ... Іноді вони дійсно допомагають з хорошими прикладами коду, що показують цю функцію, але в інших випадках вони не так корисні. Я раджу порівняти документацію Microsoft на C# із документацією Oracle на Java... Небо та земля! Не вірите? Підіть і перевірте: Oracle та Microsoft. Документація на сайті Microsoft виглядає чудово! Вони навіть мають темний режим! Ми, розробники, божеволіють від темного режиму. А як щодо документації Oracle? Як я вже сказав, вона так і залишилася у 2007 році. Мабуть тоді ще не було темного режиму? Отже, я хочу сказати, що Java - це чудово! Але ця мова сильно страждає від застарілої документації. Це в основному старі документи та старі посібники, які не виділяють затребувані нові фічі, такі як потоки, var та enums. Зараз люди кажуть, що Java починає старіти, і її замінить Kotlin, але я не згоден. Бо навіть якщо це й справді, він ще довго її не замінить. На це піде багато років. Ви пам'ятаєте, що Scala теж намагалася її замінити? Ну і що з того вийшло? Java, як і раніше, керує всією екосистемою JVM. Хоча я визнаю, що Scala дуже відрізняється від Java, насамперед функціональністю. Тепер, нарешті... ще одна річ, яка викликає у мене більше емоцій, ніж у світі Java. Це отримання JDK. Чому так складно завантажити JDK? Я маю на увазі, що якщо мені потрібний JDK, простий пошук Google вкаже на веб-сайт Oracle, я йду туди і знаходжу потрібну мені версію JDK. Поки що все відносно легко, але для того, щоб скачати його, мені потрібно зареєструватися. Навіщо мені створювати обліковий запис на Oracle, а потім щотижня розбиратися з їхньою електронною поштою замість того, щоб просто завантажити JDK? Майте на увазі, що вихідний код Java відкрито з першого дня! На відміну від C#, який нещодавно став відкритим, у 2015 році. Отже, я вже засмутився і переходжу на другий веб-сайт у результатах пошуку Google. Він вказує на сайт OpenJDK. Я знаходжу там JDK і натискаю скачати. Але (сюрприз-сюрприз!) вони дають посилання на продаж JDK з інших сайтів! Серед сайтів є цей проклятий Oracle, але є ще й посилання на Red Hat. Так, Red Hat чудовий. Це один з піонерів серед компаній з відкритим вихідним кодом у світі. Добре, я йду на їхній сайт! Скачаю звідти! Я натискаю на це посилання, знаходжу версію JDK, яку шукаю і вгадайте, що? Я теж повинен там зареєструватися... (драматична пауза) Це просто сумно... До біса це! Що не так із цими людьми? Нарешті, я здаюся і встановлюю Chocolatey (це схоже на apt-get, але для Windows. Я думаю, що це перший широко поширений менеджер пакетів для Windows, що використовується). Отже, після цього мені потрібно написати просту команду в PowerShell, наприклад: choco install jdk-1.8. І я це роблю! (якщо ви розробник C#, то знаєте, як легко отримати .Net SDK всього за 2-3 кліки, без реєстрації тощо). На закінчення моєї довгої тиради: Java - відмінна мова програмування. Він гарний, надійний і має (на мій погляд) найкращу IDE у світі – всім відому IntelliJ IDEA від JetBrains. Крім того, у Java є дуже корисна спільнота, велика і різноманітна екосистема. І це говорю я — розробник C#... Але нам потрібно оновити документацію. Приклад коду. API. Нам потрібно спростити отримання JDK. Загалом Java рухається в правильному напрямку, її популярність, можливо, останнім часом трохи постраждала, але це не змусить Java зникнути. Ось уже багато років вона вгорі списку найкращих мов світу! Я використовую Java постійно і це робитиму в майбутньому.

Три нові інструменти Java, на які варто звернути увагу у 2021 році

Джерело: OpenSource Незважаючи на популярність Python, Go та Node.js, які в останні роки активно використовуються для реалізації проектів, пов'язаних зі штучним інтелектом, машинним навчанням та Kubernetes, технології Java, як і раніше, відіграють ключову роль у розробці корпоративних додатків. За даними Developer Economics, у третьому кварталі 2020 року у всьому світі налічувалося 8 мільйонів корпоративних Java-розробників. Кава-брейк #68.  Чесна думка про Java та її екосистему.  Три нові інструменти Java, на які варто звернути увагу в 2021 році.Мова програмування Java існує вже понад 25 років, при цьому вона постійно оновлюється. З'являються нові інструменти та фреймворки, які можуть розширити можливості ваших програм та вашої кар'єри. Переважна більшість платформ на Java створювалося для реалізації процесів, що тривало виконуються з динамічною поведінкою, з розрахунку на запуск на сервері або віртуальних машинах. Ситуація змінилася у 2014 році з появою контейнерів Kubernetes. Тепер при роботі з Java в Kubernetes найбільшими проблемами є: оптимізація продуктивності додатків за рахунок зменшення обсягу пам'яті, прискорення часу запуску та відповіді, а також зменшення розмірів файлів.

Три нові Java-фреймворки та інструменти

Розробники Java завжди шукають найпростіші способи інтеграції популярних інструментів та проектів з відкритим вихідним кодом у свої Java-програми. Нові інструменти з високою ефективністю значно збільшують продуктивність розробки та стимулюють більше компаній та окремих розробників використовувати стек Java. Сьогодні поговоримо про три нові Java-фреймворки та інструменти:

Quarkus

Quarkus призначений для розробки хмарних мікросервісів та безсерверних додатків. Він має швидкий час завантаження, малий розмір резидентного набору (RSS) пам'яті та високу щільність використання пам'яті в платформах оркестрування контейнерів, таких як Kubernetes. Згідно з дев'ятою щорічною доповіддю JRebel, використання Quarkus серед Java-розробників зросло на 6% (роком раніше — менше ніж на 1%). Micronaut та Vert.x зросли до 4% та 2% відповідно (торік – приблизно на 1%).

Eclipse JKube

За допомогою Eclipse JKube Java-розробники створюють образи контейнерів на основі хмарних програм Java, використовуючи стратегії складання Docker, Jib або Source-To-Image. Цей інструмент також генерує маніфести Kubernetes та OpenShift під час компіляції та покращує роботу з інструментами налагодження, спостереження та ведення журналу.

MicroProfile

MicroProfile вирішує проблеми, пов'язані з оптимізацією корпоративної архітектури Java-мікросервісів, без впровадження нових фреймворків або рефакторинг цілих додатків. Крім того, специфікації MicroProfile (наприклад, Health, Open Tracing, Open API, Fault Tolerance, Metrics, Config) продовжують розвиватися відповідно до реалізації Jakarta EE.

Висновок

Важко сказати, які Java-фреймворки чи інструменти найкраще підходять для корпоративних Java-розробників. Поки є можливості покращити стек Java та прискорити розвиток корпоративного бізнесу, ми можемо очікувати появи нових фреймворків, інструментів та платформ. Ознайомтеся з ними, щоб дізнатися, чи зможуть вони покращити ваші Java-програми в 2021 році.
Коментарі
ЩОБ ПОДИВИТИСЯ ВСІ КОМЕНТАРІ АБО ЗАЛИШИТИ КОМЕНТАР,
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ