Дайджест: прошедшая неделя

  • Сложная история получила успешное разрешение. Ставший легендарным JSR 376 (проще говоря, Jigsaw) наконец согласован — проголосовали уже все участники экспертной группы, за исключением Red Hat, и все оказались «за». В числе проголосовавших, кстати, есть JetBrains (компания совсем недавно вошла в экспертную группу, и в предыдущем голосовании по Jigsaw ещё не участвовала).
     
    В общем, в случае с модульной системой у сообщества получилось-таки договориться, и внесённых за месяц изменений оказалось достаточно. Никите Липскому близка тема модуляризации (в частности, на JBreak 2017 он сравнивал модули в Java 9 и в OSGi), он следил за происходившим, и дал нам комментарий об этих изменениях:

    «Они по факту сделали два пункта по сравнению с тем, что было месяц назад:

    1. Согласились на то, чтобы в MANIFEST.MF можно было прописать имя для auto-модуля (это сделали почти сразу после негативного голосования)

    2. -illegal-access=permit был сделан в два приёма. Сначала разрешили нелегальный доступ в платформенные модули из unnamed-модуля (classpath) через рефлексию, но потом увидели, что и этого не хватает, и разрешили любой доступ (в том числе прямой) из unnamed-модуля.

    Второе по факту означает, что если весь ваш код лежит в classpath, то при переходе на Java 9 он будет работать точно также, как раньше, вне зависимости от того, был ли у него нелегальный доступ в плафторменные классы или нет, с точностью до предупреждений про этот собственно нелегальный доступ. Месяц назад приложение бы развалилось при таком нелегальном доступе. То есть теперь Jigsaw сам по себе не влечёт (почти) никаких последствий для обратной совместимости в “девятке”. Но, как правильно заметил Владимир Иванов, то, что раньше не работало из-за Jigsaw (точнее, из-за наличия нелегального доступа), теперь не работает из-за более мелкой и смешной штуки: из-за смены формата версии (java.version property) с 1.9.X на 9. То есть в любом случае проблемы с переходом на Java 9 могут быть, но теперь никому не удастся обвинить в этом Jigsaw (а только собственные кривые руки)».

  • Но не стоит забывать о том, что Java 9 — это не только модули. Вот, например, свежая статья небезызвестного Олега Шелаева о нововведениях в синтаксисе и API.
  • В России объявлена неделя Петра и Павла. Количество статей на Хабре про информационную безопасность и шифрование данных, а также про административно-правовую составляющую всего этого, увеличилось в два раза. Конечно, имеются в виду вирус Petya и общение Павла Дурова с представителями Роскомнадзора по поводу Telegram. К Java это всё напрямую не относится, но приятно знать, что Telegram-чаты наших конференций по-прежнему доступны всем без каких-либо ограничений, собираетесь на любую из них — вступайте.
  • К вопросу о наших конференциях: мы продолжили анонсировать осенние, и знатокам Java могут быть интересны целых четыре из них. Помимо уже традиционного Joker, в октябре в Петербурге впервые состоятся DevOops и SmartData (по DevOps и Big Data соответственно), а в ноябре Mobius (о мобильной разработке) впервые окажется в Москве. С 1 июля билеты на Joker, DevOops и SmartData дорожают — значит, сегодня последний день действия старых цен!
  • Новость для новичков (интересно, дочитал ли кто-то из них дайджест до этого момента): опубликован самый актуальный список лучших книг по Java для начинающих по версии thejavaprogrammer.com.
  • Ну и напоследок. Как давно известно, Шипилёв косячнул один раз, и это всё равно улучшило перформанс. Теперь же выясняется, что он пишет полезные патчи, даже когда сам не знает об этом.

  1. Никита Липский
    Один из инициаторов и руководителей проекта Excelsior JET, сертифицированной реализации Java SE, разрабатываемой компанией Excelsior. Работая над проектом с 1997 года, поучаствовал в исследовании и разработке практически всех компонент продукта от ядра до продуктовых свойств. Также активно принимает участие в технической поддержке продукта. До проекта Excelsior JET, участвовал в разработке объектно-ориентированной базы данных и конструктора графических пользовательских интерфейсов Оберон-2 системы Мифрил (Kronos Research Group), а также объектно-ориентированных библиотек для языка Оберон-2 (XDS ltd.). @pjbooms