Недавно вышло неплохое интервью с Сергеем Куксенко. Рекомендую послушать. Мне, например, понравилось его объяснение того, почему убирают biased locking. Я знаю, что многие были в недоумении, когда узнали, что его отключают по умолчанию в Java 15. Но под этим есть вполне чёткие основания. И это не просто потому, что biased locking значительно усложняет код и его поддержку. Но и потому, что у некоторых очень популярных инструментов он вообще давным-давно отключен, потому что без него производительность становится выше! Например, в Кассандре.
YouTube
Головы Гидры / Сергей Куксенко // 01.06.2020
Hydra 2022 — June 2-3
Info and tickets: https://bit.ly/3ni5Hem
— . Телеграм-чат для обсуждения: https://tlgg.ru/@hydraconf
«Головы Гидры» — это разговорное шоу конференции по разработке многопоточных и распределенных систем Hydra, где участники программного…
Info and tickets: https://bit.ly/3ni5Hem
— . Телеграм-чат для обсуждения: https://tlgg.ru/@hydraconf
«Головы Гидры» — это разговорное шоу конференции по разработке многопоточных и распределенных систем Hydra, где участники программного…
Внезапно узнал, что Rhino (движок для JavaScript) не только не умер, но и активно развивается. Можно использовать в качестве замены Nashorn, который исчезнет в Java 15.
#javanoscript #rhino
#javanoscript #rhino
GitHub
GitHub - mozilla/rhino: Rhino is an open-source implementation of JavaScript written entirely in Java
Rhino is an open-source implementation of JavaScript written entirely in Java - mozilla/rhino
Нашёл очень полезный сайт, в котором удобно и компактно собрана информация о всех релизах Java начиная с 1.0. Со всеми ссылками на документацию, спецификации, Release Notes. Также можно посмотреть различия в API между версиями.
А ещё есть песочницы для запуска сниппетов на различных версиях Java, чтобы можно было потестить те или иные языковые фичи.
А ещё есть песочницы для запуска сниппетов на различных версиях Java, чтобы можно было потестить те или иные языковые фичи.
uH4Yu.png
137.2 KB
Как скачать Java?
2017: Просто заходим на сайт Oracle и качаем Java
2020: См. инструкцию
2017: Просто заходим на сайт Oracle и качаем Java
2020: См. инструкцию
Довольно жаркая дискуссия в данный момент происходит в рассылке OpenJDK. В январе Роман Кеннке, лидер проекта Shenandoah, работающий в RedHat, предложил бэкпортировать Shenandoah GC в JDK 11, чтобы пользователи могли продолжать пользоваться LTS-релизом, но при этом иметь возможность использовать Shenandoah. Несколько дней назад он выкатил патч с готовностью применить его к JDK 11.
Несколько человек (из Microsoft, Alibaba, Amazon) уже поддержали изменение, однако Джил Тен из Azul высказался с критикой такого серьёзного изменения (там 42к строк!). Он сказал, что стабильность превыше всего, и зрелость JDK 11 не должна нарушаться добавлением новых фич, какими классными бы они не были. Если кому-то сильно надо, то можно использовать STS-релизы, в которых есть Shenandoah (14, 15), или подождать следующего LTS-релиза Java, который выйдет всего через 18 месяцев. Роман же заверяет, что всё будет на мази, Shenandoah очень стабилен и готов к production, протестирован большим количеством пользователей и т.д. Джил же продолжает стоять на своём.
Такие вот дела.
#shenandoah
Несколько человек (из Microsoft, Alibaba, Amazon) уже поддержали изменение, однако Джил Тен из Azul высказался с критикой такого серьёзного изменения (там 42к строк!). Он сказал, что стабильность превыше всего, и зрелость JDK 11 не должна нарушаться добавлением новых фич, какими классными бы они не были. Если кому-то сильно надо, то можно использовать STS-релизы, в которых есть Shenandoah (14, 15), или подождать следующего LTS-релиза Java, который выйдет всего через 18 месяцев. Роман же заверяет, что всё будет на мази, Shenandoah очень стабилен и готов к production, протестирован большим количеством пользователей и т.д. Джил же продолжает стоять на своём.
Такие вот дела.
#shenandoah
А вы что думаете по поводу бэкпортирования Shenandoah в Java 11?
Final Results
18%
Поддерживаю. Фича оправдывает риск нарушения стабильности.
50%
Против. Стабильность — это краегольный камень Java. Нельзя ей жертвовать ради хотелок пользователей.
32%
Затрудняюсь ответить.
Удивительные, конечно, вещи творятся в мире OpenJDK. Microsoft (!) вот предложил прототип аллокации объектов на стеке для JVM. Говорят, что это поможет сократить количество выделяемых объектов в куче на 15%.
Java будет выдавать предупреждения при попытке засинхронизоваться на классах, которые являются кандидатами в inline-типы. Это Integer, Double, Long, Version, Optional, LocalDate, LocalTime, ProcessHandle и другие. Предупреждение будет как во время компиляции, так и во время исполнения. Кроме того, конструкторы обёрток примитивных типов станут deprecated for removal. Всё это, скорее всего, произойдёт в Java 16.
#java16 #valhalla
#java16 #valhalla
Многие спрашивают: почему в Java нету оператора sizeOf? Похоже, он появится. Вышел новый черновик JEP от Шипилёва: Low-level Object layout introspection methods
#шипилёв
#шипилёв
Очень интересный выпуск подкаста Generic Talks с Иваном Углянским в гостях. Ребята обсуждают сборщики мусора в Java/Go и разбираются, почему в этих двух языках всё устроено довольно по-разному. Почему, например, в Go GC не двигает объекты и почему в нём нет поколений. Оказывается, что в Go далеко не всегда всё так радужно, как это принято считать.
Вообще, я считаю, что дискуссии получаются более живыми, когда в них участвуют специалисты из конкурирующих областей.
#go
Вообще, я считаю, что дискуссии получаются более живыми, когда в них участвуют специалисты из конкурирующих областей.
#go
YouTube
Generic Talks / Иван Углянский
Какую фичу/фичи Java вы больше всего ждёте, чтобы начать использовать в своей разработке?
Final Results
31%
switch expressions
35%
text blocks
30%
pattern matching for instanceof
48%
records
17%
sealed classes and interfaces
Что-то давненько никаких квизов не было. Давайте что-нибудь замутим простенькое. Какой вывод у данной программы?
Anonymous Quiz
55%
true
16%
false
29%
Ошибка компиляции
Хочу выяснить, какая самая вредная Java-библиотека. Библиотека, которая постоянно наносит урон разработчикам, усложняет им жизнь, привносит сложность в проекты. Создаёт больше проблем, чем решает. Для этого я создал опрос в Твиттере. Будем выбирать среди 16 библиотек:
• Commons Lang
• Hibernate
• Lombok
• Jackson
• Guava
• slf4j
• Xerces
• Protobuf
• Guice
• log4j
• JUnit
• MyBatis
• JAXB
• Mockito
• Gson
• Commons Collections
16 библиотек разделены на 4 дивизиона. Голосование по первому дивизиону уже закончено, там победил Hibernate. Голосование по второму, третьему и четвёртому дивизиону открыто. У кого есть Твиттер, переходим и голосуем.
Выявим самую ужасную библиотеку! 👺💪
#hibernate #xerces #guice #jaxb #guava
• Commons Lang
• Hibernate
• Lombok
• Jackson
• Guava
• slf4j
• Xerces
• Protobuf
• Guice
• log4j
• JUnit
• MyBatis
• JAXB
• Mockito
• Gson
• Commons Collections
16 библиотек разделены на 4 дивизиона. Голосование по первому дивизиону уже закончено, там победил Hibernate. Голосование по второму, третьему и четвёртому дивизиону открыто. У кого есть Твиттер, переходим и голосуем.
Выявим самую ужасную библиотеку! 👺💪
#hibernate #xerces #guice #jaxb #guava
Начиная с Java 16, компилятор Java будет выдавать предупреждение для неявных конструкторов в публичных классах, экспортированных из модуля. Например, такой код будет подсвечиваться:
#java16
package foo; // exported by module
public class Point {
int x, y;
}
Чтобы избавиться от предупреждения, нужно будет явно объявить конструктор:package foo;
public class Point {
int x, y;
public Point() {
}
}#java16
Вышел новый JEP 389: Foreign Linker API (Incubator). Его цель добавить в Java инструментарий, который является более безопасным, простым и быстрым, чем существующий JNI. Вангую, что первая реализация попадёт в Java 16. Кстати, на эту тему Владимир Иванов делал подробный 2-часовой доклад на JUGNsk. Рекомендую посмотреть, если кто ещё не видел.
#java16 #panama
#java16 #panama