- PVSM.RU - https://www.pvsm.ru -

Java-дайджест за 18 декабря

Java-дайджест за 18 декабря - 1

  • Вышел первый пробный билд JDK 15 [1]. Страничка проекта — здесь [2], но смотреть там пока совершенно нечего.
  • RedHat зарелизили WildFly 18 [3]. Заявлена поддержка Jakarta EE 8, MicroProfile 3.0, JDK 13, есть куча изменений в подсистемах безопасности и EE, и многое другое.
  • Tobias Hartmann [4], HotSpot-инженер в Oracle, опубликовал в почтовой рассылке valhalla-dev большое письмо «Optimizing the way to Valhalla: JIT Status Update» [5]. Valhalla — это проект в OpenJDK [6], представляющий из себя инкубатор самых крутых современных идей в виртуальной машине и языке Java, такие как Value Types и Generic Specialization. Письмо представляет собой сплошной чеклист, и копипастить его в этот дайджест бессмысленно. В целом, там подробности про оптимизацию доступа к массивам и скаляризацию в C2.
  • Ionuț Baloșin [7] опубликовал результаты своего JVM Garbage Collectors Benchmarks Report 19.12 [8]. В качестве основы был выбран AdoptOpenJDK версии 13, а проверяемые GC — все подряд, включая даже Concurrent Mark Sweep GC, который предлагается зверски истребить в JDK 14, согласно Приказу 363 [9]. В частности, автор нашел ZGC и Shenandoah очень эффективными в случаях, когда происходит достаточно большое количество аллокаций. (Что такое «большое»? На 60% хипа, например).
  • Дальше будет пара новостей про наше сообщество. Сергей Егоров, наш давний друг и докладчик [10], присоединился [11] к Oracle Groundbreakers. Oracle Groundbreaker Ambassadors — это группа людей, особо отличившихся в области Java-разработки, облаках, микросервисах, контейнерах, девопсе. Кстати, если зайти на сайт Groundbreakers [12], то можно на второй сверху фотографии увидеть другого известного в сообществе человека — первого рыцаря и евангелиста GraalVM, Олега Шелаева [13].
  • Stephen Chin, еще один наш давний друг и докладчик на Joker, с которым мы в этом году делали интервью [14], опубликовал поджигающую статью «JavaFX – Not Dead Yet» [15], в которой анонсировал свою новую книгу и по пунктам объяснил, почему JavaFx живее всех живых. Книга, кстати, уже доступна [16] в магазине издательства Apress за 26.99 евро в электронном виде и за 32.99 евро — в мягкой обложке. Напишите в комментариях, как вы считаете, сейчас JavaFx скорее жив, чем мертв, или наоборот? Что там со сборкой под JDK 11 и выше? (Насколько понимаю, старый опакечиватель больше не работает, а новый — в нестабильном превью, но это неточно).
  • На The Server Side опубликован странный и немного истерично выглядящий пост [17] о том, что не следует использовать не-LTS версию Java на продакшне, со ссылкой на Gil Tene. Чем ближе Java 14, тем больше разгарается этот спор, ведь 14 — уже ровно на полдороги к следующему LTS. Сдаваться сейчас — это как в анекдоте про Чапаева, переплыть две трети реки и повернуть назад.
  • Зарелизился assertj-vavr v0.2.0 [18]. Библиотека лежит на GitHub [19] (95 коммитов, 30 звездочек) и предоставляет ассерты для vavr. Vavr [20], в свою очередь — это некая библиотека для функциональщины на свежих версиях джавы (8+), предоставляющая иммутабельные типы данных и инструменты для записи вычислений в функциональном стиле. Свежая версия assertj-vavr добавила новые ассетрты для Multimap, Map и Either.
  • Появился сайт [21], который в автоматическом (?) режиме ищет новые опенсорсные репозитории по различным языкам, включая Java. (Пригодится мне для написания дайджестов… хотя стоп, информации и так слишком много, нет, не пригодится).
  • Eclipse представляет еще один новый проект [22] — EMF.cloud. Это проект для тех, кто разбирается в Eclipse Modeling Framework (EMF) и хочет использовать его в браузере. Так уж получилось, что у EMF огромное количество существующих пользователей (привет, Xored!), вокруг него написано огромное количество кода и инфраструктуры, и от всего этого теперь можно не отказываться при переезде в облако. В наличии облачный сервер для моделей, есть облачное же расширение для Theia, проект-пример «The coffee editor», возможность делать JSON-формы и даже целый фреймворк Graphical Language Server Platform/Protocol (GLSP) для создания браузерных редакторов диаграмм.
  • OpenHAB дожил до версии 2.5 [23]. Сам по себе openHAB [24] — это софт для автоматизации умного дома, написанный на Java. Проекты лежат на GitHub [25] и имеют приличное количество звездочек и форков. Большая часть работы там произошла под капотом — рефакторинги, улучшающие качество кода, например, реинтеграция с Eclipse Smart Home [26]. Более подробно чудовищно огромный список изменений можно посмотреть здесь [27].
  • Вышла Kafka 2.4. Огромное количество KIP-ов, которые лучше посмотреть прямо в официальном анонсе [28]. Выглядит как что-то, на что стоит обновляться.
  • Amazon анонсировали Managed Apache Cassandra Service (MCS) [29] для AWS. Подробней про MCS можно прочитать здесь [30]. Как понятно из названия, это некий способ иметь Cassandra (точней, некую совместимую с ней базу) напрямую от Amazon, а не покупать у сторонних поставщиков. MCS довольно serverless, так что платить придется только за ресурсы, которые используешь: MCS автоматически масштабирует таблицы в соответствии с объемом входящего трафика (подробней можно послушать/почитать у Danilo Poccia [31]).
  • Atlassian анонсировал Forge [32] — совершенно новый, никогда такого не было, способ собирать и запускать приложения для облака Atlassian. По сути, теперь можно делать свой Functions-as-a Service (FaaS), используя их Forge UI — специальный декларативный язык. Ясно, что нижний уровень обслуживают не они, и под капотом у всего этого находится AWS Lambda.
  • RedHat продолжает цикл статей [33], посвященных юбилею Enterprise Java. Если кто не помнит (или еще не родился в этом году), Java 2 Platform, Enterprise Edition (J2EE) 1.2 появилась в декабре 1999 года и стала символом эпохи веба. В 2017 году Oracle задонатила Java EE в Eclipse Foundation, и кажется — это все еще не конец. В этой статье RedHat рассказывает, какие вехи мы прошли между 1999 и 2019 годами.
  • JetBrains продолжает цикл статей про Reactive Spring Boot. В свежей 10-й (и последней!) части [34] Триша расскажет, как использовать профили Spring, чтобы переключаться между RSocket и WebClient.
  • На JavaCodeGeeks появилась совершенно дичайшая статья [35] про то, как устанавливать Java. Там все написано очень подробно, включая скриншоты. Быть может, это статья для неразработчиков? Напоминаю, если вы — разработчик, то получить ссылки на скачивание Java можно на сайте https://jdk.dev [36].
  • Очень крутая хабростатья «"Hello World" вам в облако» [37]. Java, Docker, Kubernetes, CI/CD — все как мы любим, на очень простых и понятных примерах. На прошлой конференции DevOops мы обсуждали, не сделать ли на похожую тему доклад — и ура, Вячеслав запилил про это целую статью! У статьи много больше 50 плюсов, десятки комментариев — всячески рекомендую. В особенности, если вы ничего не понимаете в докерах и кубернетисах (эй, почему только мы должны страдать?).
  • Еще один лонгрид на Хабре про применение паттерна Pipes & Filters [38]. Шаг за шагом показано, как рефакторится изначальный пример, и в результате код становится куда более гибким и удобным. Показано, что решает и что не решает выбранный пример — все как в классических книжках по паттернам. Из мозговзрывающего: идентификаторы на русском языке. (Напишите в комментариях — хотите ли вы видеть больше такого кода? Стоит ли нам перейти на русскоязычный код в своих постах?).
  • Ещё один лонгрид «Не все патчи одинаково полезны» [39], на этот раз — довольно хардкорный. Автор продолжает разбор улучшений производительности, которые могли бы стать явью, если бы не разные "но". Объяснения даются со ссылками на почтовую рассылку OpenJDK core-libs-dev [40] с цитатами, комментариями и примерами кода.
  • Статья «Hello World из байт-кода для JVM» [41] продолжает неделю Java-хардкора на Хабре. Автор компилирует Hello World, показывает дизассемблер и дотошно разбирает всё что там происходит до самого низа, ссылаясь на JVMS и разные источники вроде постов Джеймса Блума или блога компании JRebel.
  • Если кто-то в 2019 году все еще надеется, что какой-то фреймворк даст возможность не изучать JS-фронтенд, то на Хабре написали туториал по Vaadin на Spring Boot [42]. Очень короткий, по делу, с примерами кода и репозиторием. Имхо, не изучать фронтенд это всё равно не поможет — раньше у вас была одна проблема, а теперь у вас та же проблема плюс Vaadin.
  • Ну и напоследок, есть хабрастатья «5 скрытых cекретов в Java» [43]. Секреты скрытые, поэтому подробности не будет.

Подписаться на обновления этого дайджеста можно не только на Хабре, а на моем личном канале @javawatch [44] в Телеграме, там же есть чат для обсуждения [45]. Сообщать о ошибках и опечатках в дайджесте лучше всего в личку на Хабре [46].

«Картинка для привлечения внимания» предоставлена Daniel Cheung — он в миру консультант по SEO, а в свободное время делает клёвые художественные фотки Lego.

Автор: Олег Чирухин

Источник [47]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/java/340499

Ссылки в тексте:

[1] первый пробный билд JDK 15: http://jdk.java.net/15/

[2] здесь: https://openjdk.java.net/projects/jdk/15/

[3] зарелизили WildFly 18: https://wildfly.org/news/2019/10/03/WildFly18-Final-Released/

[4] Tobias Hartmann: https://www.linkedin.com/in/tobihartmann/

[5] «Optimizing the way to Valhalla: JIT Status Update»: https://mail.openjdk.java.net/pipermail/valhalla-dev/2019-December/006668.html

[6] проект в OpenJDK: https://openjdk.java.net/projects/valhalla/

[7] Ionuț Baloșin: https://ionutbalosin.com/about-me/

[8] JVM Garbage Collectors Benchmarks Report 19.12: https://ionutbalosin.com/2019/12/jvm-garbage-collectors-benchmarks-report-19-12/

[9] Приказу 363: https://openjdk.java.net/jeps/363

[10] докладчик: https://www.youtube.com/watch?v=MU4wjB5CE-c

[11] присоединился: https://twitter.com/bsideup/status/1205201054280888322

[12] сайт Groundbreakers: https://developer.oracle.com/ambassador/

[13] Олега Шелаева: https://www.youtube.com/watch?v=tPezgDSD1Bk

[14] делали интервью: https://habr.com/ru/company/jugru/blog/467383/

[15] «JavaFX – Not Dead Yet»: http://steveonjava.com/javafx-not-dead-yet/

[16] доступна: https://www.apress.com/gp/book/9781484249253

[17] странный и немного истерично выглядящий пост: https://www.theserverside.com/opinion/Dont-ever-put-a-non-Java-LTS-release-into-production

[18] assertj-vavr v0.2.0: http://www.devthoughts.pl/2019/12/14/assertj-vavr-v0-2-0-released/

[19] лежит на GitHub: https://github.com/assertj/assertj-vavr

[20] Vavr: https://www.vavr.io/

[21] Появился сайт: https://www.goopensource.dev/#/Java

[22] представляет еще один новый проект: https://eclipsesource.com/blogs/2019/12/16/introducing-emf-cloud/

[23] дожил до версии 2.5: https://www.openhab.org/blog/2019-12-14-openhab-2-5-release.html

[24] openHAB: https://www.openhab.org/

[25] лежат на GitHub: https://github.com/openhab

[26] реинтеграция с Eclipse Smart Home: https://community.openhab.org/t/the-road-ahead-reintegrating-esh/64670

[27] можно посмотреть здесь: https://github.com/openhab/openhab-distro/releases#newaddons

[28] официальном анонсе: https://www.confluent.io/blog/apache-kafka-2-4-latest-version-updates/

[29] анонсировали Managed Apache Cassandra Service (MCS): https://aws.amazon.com/about-aws/whats-new/2019/12/announcing-amazon-managed-apache-cassandra-service-now-in-preview/

[30] прочитать здесь: https://aws.amazon.com/mcs/

[31] послушать/почитать у Danilo Poccia: https://aws.amazon.com/blogs/aws/new-amazon-managed-apache-cassandra-service-mcs/

[32] анонсировал Forge: https://www.atlassian.com/blog/announcements/introducing-forge

[33] продолжает цикл статей: https://www.redhat.com/en/blog/celebrating-20-years-enterprise-java-milestones

[34] В свежей 10-й (и последней!) части: https://blog.jetbrains.com/idea/2019/12/tutorial-reactive-spring-boot-spring-profiles-to-switch-clients/

[35] совершенно дичайшая статья: https://examples.javacodegeeks.com/how-to-download-java-64-bit/

[36] https://jdk.dev: https://jdk.dev

[37] «"Hello World" вам в облако»: https://habr.com/ru/post/465149/

[38] применение паттерна Pipes & Filters: https://habr.com/ru/post/479464/

[39] «Не все патчи одинаково полезны»: https://habr.com/ru/post/433174/

[40] core-libs-dev: http://mail.openjdk.java.net/pipermail/core-libs-dev/

[41] «Hello World из байт-кода для JVM»: https://habr.com/ru/post/480550/

[42] туториал по Vaadin на Spring Boot: https://habr.com/ru/post/480852/

[43] «5 скрытых cекретов в Java»: https://habr.com/ru/post/480544/

[44] @javawatch: https://t.me/javawatch

[45] чат для обсуждения: https://t.me/javawatch_chat

[46] в личку на Хабре: https://habr.com/ru/conversations/phillennium/

[47] Источник: https://habr.com/ru/post/481004/?utm_source=habrahabr&utm_medium=rss&utm_campaign=481004