microJUG – Telegram
microJUG
979 subscribers
155 photos
1 video
2 files
237 links
Мысли о Java.
Основной канал: @miniJUG
Буст: https://news.1rj.ru/str/microJUG?boost
Чат: https://news.1rj.ru/str/micro_JUG
Таблица JEP'ов: https://minijug.org/jeps.html
Download Telegram
Тут появилась новость о планах на C# 9.0. В нём появятся записи! Выглядеть будет примерно так:
public data class Person(string FirstName, string LastName);

И ещё много интересного. Например, target types:
Point p = new (3, 5);

Top-level programs:
using System;

Console.WriteLine("Hello World!");

Covariant returns:
abstract class Animal
{
public abstract Food GetFood();
}
class Tiger : Animal
{
public override Meat GetFood() => ...;
}
Удивительно, что эту фичу добавляют так поздно. В Java она присутствует с 1.5!

Конечно прикольно, что нововведений много. Но не кажется ли вам, что в C# с каждым релизом становится всё больше и больше избыточного синтаксического сахара? У меня от C# примерно такие же ощущения, как от Котлина. В обоих языках просто перебор сахара. Как будто сожрал целую банку мёда.
Ушёл писать Notepad драйвер для slf4j... https://twitter.com/nikitonsky/status/1265268383777460224
#юмор
В 12:00 по МСК сегодня будет беседа в прямом эфире с Тагиром Валеевым. Он кстати недавно стал Java-чемпионом. Тагир расскажет про свой доклад для JPoint 2020 и обсудит киллер-фичи в IntelliJ IDEA и в новых версиях Java.
Недавно вышло неплохое интервью с Сергеем Куксенко. Рекомендую послушать. Мне, например, понравилось его объяснение того, почему убирают biased locking. Я знаю, что многие были в недоумении, когда узнали, что его отключают по умолчанию в Java 15. Но под этим есть вполне чёткие основания. И это не просто потому, что biased locking значительно усложняет код и его поддержку. Но и потому, что у некоторых очень популярных инструментов он вообще давным-давно отключен, потому что без него производительность становится выше! Например, в Кассандре.
Внезапно узнал, что Rhino (движок для JavaScript) не только не умер, но и активно развивается. Можно использовать в качестве замены Nashorn, который исчезнет в Java 15.
#javanoscript #rhino
Нашёл очень полезный сайт, в котором удобно и компактно собрана информация о всех релизах Java начиная с 1.0. Со всеми ссылками на документацию, спецификации, Release Notes. Также можно посмотреть различия в API между версиями.
А ещё есть песочницы для запуска сниппетов на различных версиях Java, чтобы можно было потестить те или иные языковые фичи.
Если бы Яндекс был Java-поисковиком
#юмор
Новые API в Java 16!
#юмор
uH4Yu.png
137.2 KB
Как скачать Java?
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
Удивительные, конечно, вещи творятся в мире OpenJDK. Microsoft (!) вот предложил прототип аллокации объектов на стеке для JVM. Говорят, что это поможет сократить количество выделяемых объектов в куче на 15%.
Java будет выдавать предупреждения при попытке засинхронизоваться на классах, которые являются кандидатами в inline-типы. Это Integer, Double, Long, Version, Optional, LocalDate, LocalTime, ProcessHandle и другие. Предупреждение будет как во время компиляции, так и во время исполнения. Кроме того, конструкторы обёрток примитивных типов станут deprecated for removal. Всё это, скорее всего, произойдёт в Java 16.
#java16 #valhalla
Многие спрашивают: почему в Java нету оператора sizeOf? Похоже, он появится. Вышел новый черновик JEP от Шипилёва: Low-level Object layout introspection methods
#шипилёв
Очень интересный выпуск подкаста Generic Talks с Иваном Углянским в гостях. Ребята обсуждают сборщики мусора в Java/Go и разбираются, почему в этих двух языках всё устроено довольно по-разному. Почему, например, в Go GC не двигает объекты и почему в нём нет поколений. Оказывается, что в Go далеко не всегда всё так радужно, как это принято считать.
Вообще, я считаю, что дискуссии получаются более живыми, когда в них участвуют специалисты из конкурирующих областей.
#go
Какую фичу/фичи 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%
Ошибка компиляции
Вы меня простите, но это уже какая-то порнография.
#amber #records