company_banner

Java-дайджест за 29 мая


    • 23 мая нашей любимой Java исполнилось 25 лет. Все эти годы один из самых популярных запросов в гугле — когда же Java наконец умрёт? Не дождётесь.


    • К летней конференции JPoint присоединяется сам Джоэл Спольски — один из двух создателей Stack Overflow. Олды должны хорошо помнить его по классической книге «Джоэл о программировании» и по всё ещё работающему оплоту Mercurial — системе контроля версий Kiln. Шипилёв, Гослинг, Хорстман — и вот теперь ещё и Спольски, это будет очень хороший JPoint.


    • Германия делает приложение для информирования про коронавирус, оно написано на Spring Boot и лежит на GitHub.



    Java


    • Phoronix сделал очередной фирменный бенчмарк для GraalVM 20.1, OpenJ9 0.20 и OpenJDK. Делали это они из тех соображений, что 19 мая вышел GraalVM 20.1, со «значительно улучшенной производительностью».


    • Кстати, для GraalVM появился новый язык Yatta. Это минималистичный, параллельный и неблокирующий, строгий функциональный язык с сильной динамической типизацией и синтаксисом в стиле ML. Yatta ставит своей целью легкость восприятия написанного кода — простой синтаксис, минимум ключевых слов, бойлерплейт больше не нужен (ну, почти). Интероп с Java существует и выглядит как Java::type "java.math.BigInteger".


    • Рон Пресслер написал огромную стену текста в двух частях под названием «State of Loom». Зато всё нормально объяснено. На Хабре есть статья Алексея Сошина AlexeySoshin, в которой он проверяет, что Loom работает на JDK 15.


    • JEP 385: Deprecate RMI Activation for Removal заявлен на JDK 15. Выбросить предлагается только RMI Activation, а не весь RMI. Проблема в том, что за последнее десятилетие мир поменялся, распределенные системы теперь делаются в вебе. Фаерволы, фильтрация запросов, аутентификация, безопасность — это область веб-сервисов. Ленивым управлением ресурсами занимаются балансировщики, оркестраторы, контейнер. Этих механизмов нет в модели RMI Activation, поэтому по факту RMI Activation давно заброшена. Её уже сделали опциональной в Java 8, и вот настал момент выпилить её совсем.


    • JEP 383: Foreign-Memory Access API второй раз тянет срок в инкубаторе. Тред с предложениями и замечаниями есть в рассылочке, но он пока пуст.


    • Вышла новая версия библиотеки Testcontainers, на этот раз — 1.14.3. Testcontainers дает возможность быстро запускать одноразовые экземпляры баз данных, браузеров для Selenium и вообще чего угодно, что запускается в Docker. Ченжлог новой версии находится здесь.



    IDE


    • Вышел свежий EAP для IntelliJ IDEA. Срочно расчехляйте вашу кнопку «Update» в Toolbox!


    • NetBeans 12.0 дожил до версии Beta 5. Впрочем, не каждый догадается, как его установить на MacOS. Этому посвящена безблагодатная дискуссия в рассылке о том, как запускать скрипты, а в MacOS делать «Show Package Contents» и патчить директорию «Resources». Пикантности добавляет то, что это не просто бета, она чинит какие-то блокирующие проблемы.



    Eclipse


    • Jersey 2.31 продолжает эволюционировать. Напоминаю, это REST-фреймворк, референсно реализующий спецификацию JAX-RS (JSR-370) для GlassFish. В новой версии появилась официальная поддержка JDK 14, JDK 15 и даже Helidon. А ещё, для коннекторов можно будет использовать System properties, ура (кстати, какой сегодня год?).

    DevOps, облака, сервисы


    • Вышел GitLab 13.0. Появилось отказоустойчивое хранилище без NFS, работает так: Gitaly запускается в кластере и запросы отправляются на свободные узлы с роутингом через Praefect. Автоматическое развертывание в AWS Elastic Container Service, тёмная тема в WebIDE.


    • 18-ого мая вышла Grafana 7.0. Переделали UI для панелей (теперь у них есть консистентные параметры вроде unit, min, max, threshold и т.п.). Новый UI для распределенной трассировки — данные берутся из Jaeger и Zipkin. Теперь можно не только смотреть на данные глазами, но и на ходу превращать их в JSON-файлы или чего душа пожелает, по пути навертев простые манипуляции с этими данными. В целом, всё стало выглядеть красивее.


    • Travis CI научился использовать AWS Graviton2. Процессоры Graviton делаются в недрах AWS с использованием 64-битных ядер Arm под названием Neoverse. Их очень дешево использовать на Amazon EC2 — это были первые Arm-машины на AWS. Если запуск чего-то на Arm выглядит сложновато, то сэкономить на сборке через Travis выглядит куда более осмысленно.


    • Вышла Pulumi 2.0 — платформа для Infrastructure as Code. В новой версии добавили CrossGuard, инструмент для Policy as Code. Например, можно ограничить косты или типы инстансов. Политики можно сгруппировать в наборы и переиспользовать. Вот здесь лежат примеры таких наборов для разных платформ (Kubernetes, AWS, Azure, Google Cloud).


    • AWS зарелизили свой поиск для энтерпрайзов, использующий машинное обучение — Amazon Kendra. Превью запустили на декабрьском re:Invent и с тех пор прикрутили к нему кучу всяких штук вроде коннекторов для Salesforce и OneDrive, расширили список предметных областей (Automotive, Health, HR, Legal, Media and Entertainment, News, Telecom, Travel and Leisure).



    Spring



    Вышли свежие релизы:


    • Spring Tools 4.6.2. Пофиксили баги, производительность, и все в таком духе. Spring Tools — это возможность писать на Spring с помощью Eclipse, Visual Studio Code и Theia, если ваш ключ от IntelliJ IDEA Ultimate съела собака.


    • Spring Fu 0.3.0. В дополнение к KoFu (the Kotlin DSL) к нам вернулся JaFu (Java DSL). К следующему релизу (0.4.0) Себастиан обещает добавить spring-init, поддержку GraalVM native без настройки рефлекшена, пример масштабируемого приложения на JaFu + GraalVM native + Knative, выбросить XML и SpEL.


    • Spring Security OAuth 2.5.0. Важно: жизнь Spring Security OAuth подходит к концу, прочитайте анонс если еще не сделали этого.


    • Spring Data Elasticsearch 4.0. Улучшили описания маппинга, добавили возвращаемое значение SearchHit<T>, разрешили использовать прокси и свой SSLContext, разрешили писать обработчики заголовков для каждого запроса. Придумали pathPrefix на случай, если Elasticsearch находится за каким-то балансировщиком.



    Статьи


    • Дональд Рааб рассказал свои впечатления от двух десятков лет работы в Java-мире. Пост приурочен к 25-летию Java. Дональд — создатель Eclipse Collections, популярный докладчик (вы точно могли слышать его регулярно обновляемые доклады «Java Collections Reloaded») и Java Champion.


    • Доктор Хайнц Кабуц, известный Java Champion, написал статью «Upgrading ReadWriteLock». В Java ReentrantReadWriteLock никогда не апгрейдит read lock до write lock. В Kotlin функция ReentrantReadWriteLock.write() обходит эту проблему, отпуская read lock перед апгрейдом, тем самым появляется опасность создать гонку. Лучше использовать StampedLock, у которого есть метод для превращения во write lock.


    • Мартин Фаулер, кажется, дописал свою монументальную статью про паттерны бранчевания в системах контроля версий. Он добавил ещё немного текста, и наконец, последний раздел. Учитесь у корифеев, как превращать написание блог-поста в захватывающее шоу.



    Онлайн-митапы, стримы, подкасты


    • JUG Ru Group продолжает серийно делать онлайн-митапы. Каждый день можно зайти на сайт митапов и увидеть что-то новенькое: там есть и Java, и C++, и тестирование, и всё остальное. Следите за анонсами в нашем блоге на Хабре!


    • Джош Лонг записал Bootiful Podcast c доктором Малини Бхандару, в котором они поговорили про EdgeX и том, какой для разработчиков толк в использовании IoT.


    • Адам Бин продолжает жечь стримы — на этот раз стрим будет про Java Record JSON Serialization и JSON-B в Java 14. Кстати, Адам будет участвовать в летнем JPoint!





    Дайджесты публикуются при поддержке JUG Ru Group и конференции JPoint. Зарегистрироваться на летнюю онлайн-конференцию можно на официальном сайте.

    JUG Ru Group
    Конференции для программистов и сочувствующих. 18+

    Комментарии 10

      +5
      Спасибо за Дайджест — отличная вещь!
        +4

        Нууу, стараюсь! :-)

        +1
        К летней конференции JPoint присоединяется сам Джоэл Спольски

        Джоэл же вроде отказывался выступать в России?
        Удалось таки уговорить или отношение поменялось?
          +2

          Я с ним связался, пообщался, упомянул, что ситуация в России не такая уж и ужасная — и он согласился участвовать. Не буду выдумывать легенд про то, что он думает или не думает — я не знаю точно, и чужая душа потёмки.

            +2
            Понял. В любом случае здорово, что приедет.
              0

              Ну, это онлайн-конференция, поэтому он "приедет" в браузере ;)


              Будет здорово, если всё получится, и в следующий раз он приедет уже вживую.

                +2

                Ой. Хотел написать выступит)

          +2
          Как можно было не написать про запуск сайта inside.java?
            +1

            Я стараюсь не оставлять ссылок ни на какие новостные агрегаторы, регулярные блоги, телеграм-каналы и всё такое прочее. Мне бы хотелось, чтобы люди больше читали Хабр и писали на Хабр и меньше ходили на другие ресурсы. Это моё личное желание.

            +3

            Ещё в копилку новость из мира GraalVM и Java FX — Gluon (основной контрибьютор Java FX) запилил поддержку GraalVM Native Image для Windows (раньше официально была поддержка Linux и OS X, а чтобы скомпилить image для Windows надо было неслабо постараться).
            Так что теперь все 3 основных десктопных ОС охвачены, что не может не радовать!

            Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

            Самое читаемое