Java-дайджест за 17 января. Две первые недели нового года

wwjax3ywx7rykw0kuyddtw5gvno.jpeg


  • Появился шрифт JetBrains Mono — приятный и красивый шрифт для разработчиков


  • Вышел плагин для интеграции GitLab с IntelliJ IDEA. Теперь можно делать код-ревью прямо в вашей любимой IDE!


  • В Java-плагине для Visual Studio Code добавили кучу важных ништяков (действительно влияющих на качество жизни). Теперь в браузере файлов есть компактизация папок в привычный нам вид (как в Идее), у методов можно смотреть иерархию вызовов, в отладчике можно ставить брейкпоинты с условием (сработают, только если выполнилось условие), запускатор тестов визуально отображает статус теста (не нужно постоянно смотреть логи), и еще много всего.


  • Вышел Repeat 5.4, кроссплатформенный (Mac/Lin/Win) инструмент для хоткеев, макросов и автоматизации, на 70% написанный на Java. 442 коммита, 574 звездочки, проект пользуется массовой любовью и обожанием у своей узкой аудитории. Разрабатывается ровно одним человеком.


  • Прямо сейчас мы находимся в процессе перехода с HTTP на HTTPS на основных ресурсах вроде Maven Central и Bintray. По ссылке описано, кто выключил HTTPS (и тем не менее, на момент написания статьи, 21% загрузок с Sonatype Maven Central использовали HTTP, выводы делайте сами). Подробности проблемы, зачем всё это нужно — по ссылке.


  • Вышел Git 2.25. Из интересного — появилась команда для так называемых sparse checkouts, особенно полезных для гигантских монорепозиториев. Если коротко, это просто паттерны пути до файлов, которые будут приводить к частичному клонированию репозитория. Прочитать подробней об управлении жирными репозиториями можно на сайте Atlassian. На самом деле, sparse checkouts были с нами довольно давно, но теперь появилась отдельная команда sparse-checkout.


  • Groovy 3.0 продолжает готовиться, 12 числа вышел свежий третий релиз-кандидат. Задачи там простые: закрыть проблемы со свежими версиями Java, добавить лямбды в джавовом же стиле, новый do-while и улучшенный for, try-with-resources и тому подобное.


  • Google продолжает тёрки с Oracle. Следующее слушание — в марте этого года. Джошуа Блох вместе с ещё 38 известными учеными в области компьютерных наук выступил на стороне Google. Подробный документ здесь.



  • Сергей Егоров bsideup поделился результатами рожденственского хакатона: https://cimate.io/ — это новый способ взаимодействовать с CI, смотреть результаты тестов и историю с помощью API.


Our (@testcontainers & friends) Christmas holidays' hackathon project is out of the bag!

Built for our own needs, useful for everyone!

Let us know what you think about the idea and watch for beta access:) https://t.co/L5Rq7Z0S3B

— Sergei Egorov (@bsideup) January 8, 2020


  • Вышел Quarkus 1.1.0.Final. Доработана поддержка Kotlin и Gradle, багфиксы.


  • Вышел Yasson (JSON-B) 1.0.6 — фреймворк-прокладка между Java-классами и JSON-документами. Что-то вроде JAX-B, но только для JSON. Является официальной референсной реализацией JSON Binding (JSR-367). 411 коммитов на GitHub, 125 звёздочек, 28 контрибьюторов.


  • Вышла библиотека imgui-java — библиотека с Java-биндингами для Dear-ImGui — минималистичной библиотеки для создания UI для C++, на которой зачастую делают админки в играх. Сама imgui-java (кроме исходников под правильной лицензией Apache License 2.0) выложена в виде бинарников без каких-либо зависимостей, то есть сам Dear-ImGui уже лежит в комплекте. Конечно, если понадобится рендерер LWJGL3, придётся добросить в топку дополнительного мусора.


  • Вышел EvoMaster — инструмент для автоматической генерации системных тестов для RESTful APIs на платформах Java и Kotlin. Две тысячи коммитов и пять подготовительных релизов (версии 0..) говорят, что автор настроен серьёзно. У проекта 4 контрибьютора, а вот звёздочек-вочей-форков и прочих показателей статусности пока совсем мало.


  • Вышла небольшая утилита Kafkaer — она нужна для автоматизации создания/обновления топиков и конфигов Кафки в нескольких средах. Суть в том, что делаются шаблонные конфиги, и управляется это всё properties-файлами. 54 коммита, 17 звездочек — ну как, кто рискнёт это попробовать? :-)


  • Еще одна полезняшка, jMathPaper — небольшой калькулятор со свинговым интерфейсом, имитирующий написание заметок на бумаге. Разработка понемногу идёт, недавно автор выпустил какое-то обновление.


  • Юзер RoPi0n на Хабре опубликовал новость о продолжении развития экспериментального языка Mash. Компилятор генерит ассемблер для стековой виртуальной машины, и сейчас автор работает над генератором для Java (целевая платформа — JDK 1.8).


  • Сергей Мерзляков анонсировал Installmation — генератор инсталляторов для Java 11 и выше. Код есть на GitHub под Apache 2.0, для самой свежей версии выложены бинари.



Исследования:


Сервисы:


  • GitHub анонсировал GitHub for Android, сервис пока находится в бете. Это нативное приложение со светлой и тёмной темой, позволяющее управлять интерфейсом с помощью привычных на мобильном жестов (например, можно свайпнуть ишшую, чтобы отложить её на будущее или пометить как выполненную). Имхо, большая фича, сейчас мобильный экспиренс гитхаба — сплошная боль.


  • Google выводит на рынок бета-версию виртуальных машин общего назначения, которые предлагается гонять на Google Cloud Platform для работы с Google Compute Engine. Ранее Google объявил о двух классах машин: C2 (оптимизированных на вычисления) и N2 (общего назначения), E2 — это дополнение к линейке, фишка — они могут иметь разные пресеты по CPU/RAM и даже запускаться как preemptible VM (короткоживущие виртуалки для обработки батчей или чего-то устойчивого к падениям). Весь смысл в тарифах, поэтому нужно идти в статью и смотреть табличку c конфигурациями (12 + 3).


  • Apple, Google, Amazon и Zigbee Alliance создают свой стандарт умного дома. Подробности по ссылке. Важно, что это open source, и хотя они не самые большие фанаты Free Software, но хотя бы использование их работы будет бесплатным (в смысле, royalty-free). Это будет какой-то протокол на основе IP, объединяющий железо умных домов, мобилки и облака. Сейчас можно посмотреть на HomeKit Accessory Development Kit (ADK) от Apple. Google пообещали выложить часть OpenWeave, один из основных кирпичиков — это OpenThread. Zigbee Alliance — это Samsung SmartThings, Schneider Electric, Signify (ранее — Philips Lighting), IKEA, NXP Semiconductors и разные другие компании, которые разрабатывают высокоуровневые беспроводные протоколы для устройств с экономным потреблением энергии и трафика.



Java как язык и платформа:


  • Вышла пачка новых версий Java (инфа с сайта Oracle (JDK 13.0.2, 11.0.6, 8u241, and 7u251)): JDK 13.0.2, 11.0.6, 8u241, and 7u251. Надо отметить, что сборки JDK поставляет не только Oracle, а еще куча компаний, например, вот вам Liberica JDK 13.0.2 российской компании BellSoft. Остальные места, где можно скачать JDK, перечислены на моей страничке https://jdk.dev.


  • Вышел GraalVM версии 19.3.1. Кроме багфиксов, Ruby обновилось до 2.6.5, а Node.js — до 12.14.0. Это довольно свежая версия Ноды, на неё даже нет тайпингов в Microsoft Type Search — круто, что GraalVM так мощно показывает серьезность своих намерений в деле покорения вселенной JavaScript.



Eclipse:


  • У Eclipse Foundation обновился устав. Анонс здесь, PDF-ка с текстом доступна здесь.


  • Майк Милинкович (исполнительный директор Eclipse Foundation) торжественно объявил о публикации плана релизов Jakarta EE 9. В нем не подразумевается новых спецификаций, но предлагается почистить неймспейс jakarta, выбросить оттуда мусор вроде deprecated, ну и конечно — полностью поддержать Java 11.


  • Adam Bien (автор книг, заседатель в JCP, итп) выложил в Maven Central архетип для быстрого старта разработки на Jakarta EE 8. Если лень читать, телеграфирую: mvn archetype: generate -DarchetypeGroupId=com.airhacks -DarchetypeArtifactId=jakartaee-essentials-archetype


  • Вышла Piranha 20.1.2 — это рантайм Jakarta EE и MicroProfile для применения в облаке, находится на ранних стадиях разработки. Сайт здесь. До этого авторы публиковали короткую статью «Piranha Micro getting more compatible», в которой выложили результаты прогона тестов совместимости с Java EE 7.


  • Вышел Eclipse Dirigible v4.2. Это некая Cloud Development Platform, прочитать о безмерных преимуществах которой можно вот здесь. Эта штука с нами уже довольно давно, самая последняя версия 3.0.0 из доступных на GitHub датируется 2017 годом, у нее два десятка контрибьюторов, из которых основной вклад внесли первых три.



Spring:


  • Вышли выпуски «This Week in Spring» Джоша Лонга: за 14 января, новогодний выпуск за 7 января.


  • Отдельно хочется выделить «This Decade in Spring — Happy New Year Edition» — новогодняя статья Джоша Лонга, появившаяся то ли 31 декабря, то ли 1 января, как считать.


Приехала пачка обновлений Spring:


  • Вышли Spring Framework 5.2.3, 5.1.13, 5.0.16 и 4.3.26. В Хабр не поместится столько букв, чтобы перечислить все изменения, но в 5.2.3 — 20 коммитов, ими закрыто около 63 тикетов.


  • Последняя версия Spring Boot — 2.2.3. Ченжлог можно посмотреть здесь, объем релиза — 377 коммитов и 75 тикетов (включая баги, фичи, документацию и просто обновления в таблице зависимостей).


  • Предыдущая линейка Spring Boot обновилась до 2.2.1. Ченжлог здесь: дикие 3297 коммитов, 39 штук всевозможных улучшений.


  • Вышла Spring Data версии Moore SR4 и Lovelace SR15. 59 и 34 исправленных тикета соответственно, подробности — в анонсе.


  • Вышла Spring Integration AWS 2.3.1 & Spring Cloud Stream Kinesis Binder 2.0.1, это просто багфиксы, подробности по ссылке.


  • Вышел Spring Security 5.3.0.M1, изменения в SAML и OAuth 2.0, подробности по ссылке.



Стримы и подкасты:


  • Adam Bien (известный автор книжек по JavaEE, заседатель в разных экспертных группах JCP и т.п.) запилил несколько очередных стримов. В одном из них он препарирует WildFly 18 и Quarkus и сравнивает утилизацию памяти на примере приложения под microprofile. Другой посвящён CSRF, XSS, JWT, Reactive Databases, TX and WebSockets, JSON-B. А ещё он же выпустил очередной подкаст про JavaFX. Вообще, Адам очень сильно активизировался, написал кучу каких-то мелких заметок в блоге и в интернете, описывать здесь которые не имеет смысла.


  • Только что вышел очередной Bootiful Podcast c неизменной машиной по созданию подкастов, Джошем Лонгом, и его коллегой из Spring Cloud Services, Bella (Yuxin) Bai. Ранее, десятого января, Джош сделал Bootiful Podcast с директором сиднейского Pivotal Labs, David Julia про agile, стратегию тестирования, архитектуру и все в таком роде. А под самый новый год вышел Bootiful Podcast с сооснователем Spring Cloud Дейвом Соером.



Статьи:


  • В Оракловском Java Magazine опубликовали статью Димы Александрова «Programming the GPU in Java». Тот момент, когда угадываешь автора статьи по первым абзацам.


  • Там же в Java Magazine есть интересная статья Бена Эванса про появление рекордов в языке Java.


  • Новая поджигающая статья в блоге Егора Бугаенко yegor256: «Embrace the chaos». Обратите внимание, что все читатели данной статьи обогащаются вакансией от Егора!


  • Ведущий футуролог интернета (по совместительству — Deputy CTO of Azul Systems), Саймон Риттер, опубликовал статью ±Staring Into My Java Crystal Ball 2020», в которой затронул такие темы, как Java ME (как известно, панночка помэрла), Jakarta EE (начинает оживать), JCP, Java SE, дистрибутивы OpenJDK (Azul — основной поставщик, но есть и другие).


  • Забавный факт: -Integer.MIN_VALUE == Integer.MIN_VALUE, но -Byte.MIN_VALUE!= Byte.MIN_VALUE.


  • С подачи Майка Милинковича (напоминаю, исполнительный директор Eclipse Foundation) опубликована статья «The realities of running an open-source community». Рассказывается его видение вопроса в целом, и какие проблемы им приходится решать.


  • Статья про то, как использовать внешние библиотеки в JShell.


  • «Vaadin 10+ as the Future of CUBA UI» — статья Влада Минаева в блоге компании CUBA.platform. Описана их история жизни с Vaadin, предстоящие челленжи, описаны особенности Vaadin Flow, веб-компонентов, Vaadin 14 и так далее, есть небольшая секция с последними новостями из мира Vaadin.


  • «JDT without Eclipse». А знали ли вы, что JDT можно использовать и без Eclipse, в headless-режиме? Например, можно отдельно запустить форматер кода.


  • «Spring dependencies in Gradle can be tricky». Статья для любителей Gradle и Spring. Вместо того, чтобы мучиться, пытаясь понять точные версии пакетов, можно использовать BOM, в который Gradle умеет, начиная с конца 2018 года. Вместо этого люди обычно используют io.spring.dependency-management. В статье мы узнаем, почему, какие там есть проблемы и что делать.


  • «Building and running Equinox with maven without Tycho»


  • «Using the GitHub packages Maven repository»


  • «Migrating Spock 1.3 tests to Spock 2.0»


  • «Concurrent smart contracts in Hyperledger Fabric blockchain (part 3)»


  • «Method parameter validation with Spring and JSR 303». В Spring есть простой способ, как валидировать бины согласно JSR 303 (подробности на https://beanvalidation.org/). В посте на несколько строчек коротко описывается, как включить фичу.


Обсуждения:


  • Если вы — любитель похоливорить про Kotlin, то прямо сейчас на Reddit происходит очередной эпизод священной войны Kotlin vs Java.

Хабр:


Подписывайтесь на канал @javawatch в Telegram. Сейчас там публикуются только ссылки на дайджесты, но скоро там появится поток мелких интересных ссылок и мини-новостей.

Habrahabr.ru прочитано 6080 раз