Этот дайджест взаимодополняет выпуск подкаста «Разбор Полётов». На этот раз в студии были Виктор Гамов, Барух Садогурский и Олег Чирухин. Получить запись подкаста можно либо пройдя по ссылке на сайт РП, либо скачав MP3-файл.
- Bruno Gois Mateus и Matias Martinez, исследователи в University of Valenciennes (Франция), провели исследование, показавшее, что кода на Kotlin в среднем требуется на 40% меньше, чем на Java.
- Вышел Dagger 2.17, dependency injection framework для Java и Android. Ченжлог во вменяемом виде приведен по ссылке.
- Если вам кажется, что ваши дела по переходу на новые версии Java сложны и беспросветны, то вот вам новая глубина ада: вышла новая версия Sourcetrail 2018.3 вышла с поддержкой Java 9 и 10. Sourcetrail — это такая система исследования кода, как они сами её называют, а на деле — продвинутый визуализатор. Представьте, насколько сложно им переводить систему, гвоздями прибитую к тонкостям рантайма.
- Gabriela Motroc и Dominik Mohilo провели интервью с Ondrej Mihalyi (Support Engineer в компании Payara, которые делают Payara Server). И еще одно интервью — с Reza Rahman (автором «EJB in Action»). Основные вопросы вроде «нужно ли мерджить MicroProfile в Jakarta EE». Интересно, что по многим базовым вопросам разработчики Jakarta не сходятся: например, Ondrej считает, что никакого толку в 6-месячном релизном цикле нет. Интересно было бы услышать, что думают по этому поводу реальные пользователи?
- Хороший обзор на Хабре под названием «Власть, деньги и open source. Рассказываем, как работает сообщество на примере Apache Ignite». Это статья по докладу на Apache Ignite Meetup (видео сохранились здесь).
- Издательство «Питер» выпустило «Алгоритмы и структуры данных. Извлечение информации на языке Java» — русскоязычную версию книги Аллена Доуни. Страница на сайте издательства, подробный обзор на Хабре. 815 рублей на бумаге, 499 рублей в электронном виде. Лайфхак: у них там постоянно какие-то скидки, как минимум на первую покупку после регистрации. Исходная версия книги называется «Think Data Structures: Algorithms and Information Retrieval in Java» и приобрести её можно на Amazon.
- Добавились новые курсы в GitHub Learning Lab. Есть даже один не связанный напрямую с GitHub курс: «Introduction to HTML».
- Интересный пост на Reddit: один из пользователей сделал отдельный костыль, позволяющий кодить на TypeScript для JIRA. Он назвал это Hyperion. Для этого он сделал специальную IDE на основе того же редактора, что используется в Visual Studio Code, — Monaco Editor, дальше оно транспилируется в JavaScript и на стороне JIRA выполняется через Nashorn. Это всё еще эксперимент, автору можно писать письма и чутко наставлять советом.
- Оказывается, в поставку GraalVM 1.0-RC5 теперь входят собранные бинарники для macOS x86-64. К сожалению, первый блин комом: забыли несколько зависимостей, что может приводить к ошибкам вида
Library not loaded: /usr/X11/lib/libfreetype.6.dylib
. Зависимости починят в следующих версиях (уберут ненужные, добавят нужные), а вот эта конкретная ошибка чинится установкой https://www.xquartz.org. - Выпущена новая виртуальная машина под названием Life, позволяющая писать приложения для WebAssembly на Golang. Возможно, в скором времени мы увидим что-то подобное и для Java.
- Вышел Containerum — платформа с открытым кодом для управления кластерами Kubernetes. Обещают обновления и роллбэки за считанные минуты, а также полный набор инструментов для интеграции с различными CI/CD и инструментами для групповой разработки. Для работы нужен Kubernetes версии 1.5 и выше, Docker, Helm и Kubernetes Ingress Controller.
- Spring Cloud Skipper добрался до версии 1.1.0.M1. Релиз в основном посвящен тому, что операции install/upgrade/rollback/delete задаются в формате manifest для Cloud Foundry. Это не то чтобы сильно интересно, а эта новость — просто чтобы напомнить о проекте. Skipper позволяет через API управлять жизнью приложений Spring Boot, запущенных на разных клаудах. Для этого есть HTTP API (оно само написано с использованием Spring Boot), утилита командной строки и реляционное хранилище для хранения данных. Интересные фичи: управление аккаунтами на клаудах, приложения можно искать в специальном «репозитории пакетов».
- Выходит летний release train проекта Reactor, Reactor Californium-M1. Spring Reactor — реактивная библиотека для создания неблокирующих приложений для JVM на основе спецификации Reactive Streams. Мы совсем недавно говорили о ней в 173 выпуске подкаста «Разбор Полётов». Калифо́рний — радиоактивный химический элемент седьмого периода таблицы Менделеева, актиноид, один из самых дорогих металлов на Земле. Назван по месту, где синтезирован, отсюда и название релиза.
- Reactor Netty 0.8.0.M1. Починили API так, чтобы пользователям было сложней ошибаться. Добавили HTTP/2.
- Reactor Core 3.2.0 — 70 ченжсетов обо всем на свете, см. теги v3.2.0.M2 и v3.2.0.M3 на GitHub, особенно раздел «update considerations».
- Reactor Extra 3.2.0.M1 — небольшие допилки API, интеграция с новым Core.
- Другой интересный проект — Spring Cloud for Google Cloud Platform добрался до полноценного релиза 1.0. Основные фичи: Messaging, Database, File Storage, Logging, Tracing, Authentication. Этот проект сделан не только силами основной команды, но и в сотрудничестве с инженерами Google Cloud. Обзор проекта уже делали Josh Long и Ray Tsang на конференции Google Next 2018:
- Выпущена IntelliJ IDEA 2018.2.1. Основные изменения:
- Починили проседание производительности автоопределения VCS (были проблемы с симлинками);
- Починили Android Profiler;
- Починили проседание перформанса на проектах Spring;
- Добавили поддержку для опции
–upgrade-module-path
из Java 9; - Улучшили понимание синтаксиса Groovy 3;
- Обновили встроенный TypeScript до v3;
- Немного улучшили JavaScript/TypeScript;
- Немного улучшили поддержку Spring Boot и починили Spring Integration;
- Более подробно всё описано в release notes.
- Начался EAP IntelliJ IDEA 2018.2.2
- Продолжают чинить автоопределение VCS (сканирование файлов);
- Чинят Java-инструменты (inspections, quick-fixes, refactoring и т.п.);
- Добавили поддержку ClickHouse по умолчанию в выпадашку Data Source на панели Database;
- Идет работа над Spring Boot, Gradle, VCS, Grails, Docker, JavaScript frameworks, TypeScript и SQL;
- Как всегда, всё это более подробно описано в release notes.
- В прошлых дайджестах мы рассказывали о Multi-document ACID Transactions для MongoDB 4.0. Случайно наткнулся на готовый туториал, как это может работать в Java. В тексте туториала утверждается, что к нему приложили руку сами разработчики MongoDB.
- Другой интересный вопрос, который мы обсуждали в аудио-версии дайджестов: как собирать приложение JavaFX на JDK 11? На этот счёт тоже есть готовый туториал.
- Вышел LibrePDF/OpenPDF 1.2.0 — библиотека с лицензией LGPL для создания и редактирования файлов PDF. Известна тем, что это форк не разрабатываемой более версии iText 4 — последней версии iText до перехода на лицензию AfferoGPL (разработчики наверняка сделали это для увеличения продаж коммерческой версии). Повыкосили мерзкие велосипеды, использовали готовое из Apache Commons IO, Apache Commons Compress, Apache Commons Text, Sanselan (Apache Commons Imaging).
- deeplearning4j дожил до версии 1.0.0-beta2.
- Выбросили CUDA 9.1, оставили 8.0, 9.0 и 9.2;
- Дефолтную реализацию BLAS поменяли с OpenBLAS на Intel MKL-DNN;
- Перешли в индексации на лонги вместо интов;
- Подробней — читайте ченжлог.
Дайджест готовили
- Текстовая версия: Олег Чирухин (контент, верстка, проверка фактов) и редакция JUG.ru Group;
- Подкаст «Разбор Полётов» (ссылка на запись): Виктор Гамов, Барух Садогурский и Олег Чирухин.