JavaRush /Java блог /Random /Кофе-брейк #68. Честное мнение о Java и ее экосистеме. Тр...

Кофе-брейк #68. Честное мнение о Java и ее экосистеме. Три новых инструмента Java, на которые стоит обратить внимание в 2021 году

Статья из группы Random

Честное мнение о 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 году - 1Очевидно, в 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 году - 2Язык программирования 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 году.
Комментарии (3)
ЧТОБЫ ПОСМОТРЕТЬ ВСЕ КОММЕНТАРИИ ИЛИ ОСТАВИТЬ КОММЕНТАРИЙ,
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ
Dmitry Ivanchenko Уровень 39
2 апреля 2021
Да, на винде это тот еще квест. Благо на макоси это выглядит одной строчкой в терминале: brew install openjdk
2 апреля 2021
Да, про скачивание JDK немного грустно. И примеры кода в документации хотелось бы видеть.
Кирилл Уровень 35
31 марта 2021
Помню когда впервые пытался установить JDK, то только на этом этапе я прочувствовал всю серьёзность Java программирования. )) Словом, быстро это сделать мне не удалось. Но этот нюанс, мелочь. А вот касательно доков, то тут полностью соглашусь. В Java доках примеры имеются не во всех описаниях классов, что и вправду заставляет всегда лезть в другие источники, что бы понять или вспомнить, как что работает. Так же могу похвалить в этом плане MS. С C# не сталкивался, но работаю с MS sql и для неё доки подготовлены добротно. По каждой теме есть примеры и результаты запросов по этим примерам, что очень ускоряет Гугленье, вплоть до 1й- 2х минут, когда переходишь сразу к примеру или его выводу и понимаешь, что и как работает. Java доки конечно таким похвастаться не могут.