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

в 11:46, , рубрики: java, Программирование

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

  • Появился шрифт 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.

  • Вышел 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. Сейчас там публикуются только ссылки на дайджесты, но скоро там появится поток мелких интересных ссылок и мини-новостей.

Автор: olegchir

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js