Разработка ждёт балета
1.67K subscribers
473 photos
2 videos
15 files
1.38K links
What I cannot create, I do not understand.

DM: @alexey_mileev
PeerLab: https://t.me/+e2ND1tAa0lU2ZTli
Download Telegram
Records (эдакие data classes для Java) продолжают развиваться, что не может не радовать. В JEP 384 идею развивают дальше по мотивам первого preview.
 
#java #records #jep
Вот тут можно посмотреть, что сейчас происходит с Project Loom в Java (это то, что сначала называлось fibers, а теперь зовётся virtual thread). Это всё про те же легковесные потоки, которые бегут не поверх OS threads, а userspace JDK.
А вот тут чувак немного поэкспериментировал со всем этим богатством.
 
#java #loom #coroutine
Черновик JEP’а про Primitive Objects.
Если упрощать, то это такие неизменяемые классы, с объектами которых можно работать, как с обычными примитивами. При копировании такого объекта получается объект, полностью идентичный оригинальному. И в планах даже сделать примитивными объектами int, boolean, и т.п., и обновить должным образом дженерики. Всем по List<int>!

#java #jep #primitive
А вот интересный замес: Брюс Эккель (наверняка его все знают, как минимум за книжку “Философия Java”) пожурил Gradle за всякое разное, а Седрик Шампо (делал Groovy, делает Gradle) аккуратно прошёлся по его тезисам и постарался их развалить. Ням!

#gradle #java #groovy
Тут в Git mailing list создатель JGit интересно расписал, с чем приходится сталкиваться, чтобы ускорить Git, написанный на чём-то более высокоуровневом (Java в его случае), чем C, и всё равно быть более медленным.

#git #c #java
Внимание! Из психиатрической больницы им. Кащенко сбежала группа джавистов. На попытки заговорить отвечают предложениями использовать checked exceptions в качестве union types. Не пытайтесь их понять, это опасно! Ни в коем случае не пытайтесь их переубедить - они агрессивны! За помощь в поимке вознаграждение гарантируем!

#java #exception #type
Java Generics are Turing Complete.pdf
481.1 KB
На последнем пирлабе обнаружилось страшное. Java Generics are Turing Complete. Как говорится, я просто оставлю это здесь...

#java #generics #paper
JEP 430: String Templates, дамы и господа! Прошу любить и жаловать!
В Java решили сделать что-то типа string interpolation, но чтобы было ЛУЧШЕ, чем у всех остальных.
Получилось, впрочем, как обычно:
String s = STR."\{x} + \{y} = \{x + y}";

#java #language #jep
Новая билд система для Java, на Java. Хотят, чтобы всё было прямо, как железная дорога, без магии. Название доставило: bld. "БЛД, почему не собирается?" "Почему, БЛД, так медленно?"

#build #java #tool
Тут вот про потенциальную утечку памяти из-за какого-нибудь new HashMap<>() {{ ... }} в Java коде. Хорошее дело. Кажется, когда-то мне такие и у нас приходилось чинить.

#java #memory #leak
Тут на последнем пирлабе зашла речь про неблокирующий I/O. Ну и кто-то поделился ссылкой про io vs. nio в Java.

#java #io #nio
Тут конечно сами себе палки в колёса вставляют, но очень интересно. Чел ломает java.lang.String. Чтобы строка не была .equals самой себе и всё в таком духе. И совсем не больно!
Только представьте, какая красота будет, если злонамеренно такое пропихнуть в какую-то популярную либу и сломать всем интернированную, скажем, "id".

#java #string
Чел написал игрушечную JVM на Rust в учебных целях. По ссылке - серия постов, где он разбирает .class файлы, байткод и разные другие детали своей погремухи.

#java #jvm #rust
Недавное видели игрушечную JVM на Rust. Нашёлся более амбициозный проект - пишут JVM на Go. Тут пост про то, как машинка находит методы классов. А тут несколько ссылок, если захочется больше деталей.

#jvm #go #java
Тут ничего и не добавишь, заголовок говорит сам за себя: A one-sentence summary of each new JEP from JDK 21

#java #jdk
Feature freeze для JDK 22 выглядит прямо прикольно. Много интересных приятных изменений. Прямо разворошили этот улей за последние несколько лет.

#java #jdk
Чуваки написали JVM на Java с фокусом на portability. Определённое подмножество Java уровня 1.5 они транспилируют в кучу других языков, опираясь, например, на их GC. Это всё позволяет, в том числе, запускать Swing приложения прямо в браузере (наконец-то!)
Тут можно почитать чуть детальнее, а тут можно потыкать браузерные демки.

#java #jvm #vm
Тут некогда студентка рассказывает, как ей работалось над кодом, который старше, чем она сама, в US National Ignition Facility. Код с кусками из Java 4, много миллионов строк, не очень много тестов. Я бы подсветил две вещи:
- Что там за код, мы не знаем, может просто какой-то advanced калькулятор, от багов в котором учёным не поплохеет.
- Показывает всю мощу Java. Четвёртая, восьмая, одиннадцатая, всё переварится.

#code #programming #java
Тут чуваки прямо стараются, чтобы Java в браузере через WASM запускалась. Прямо без рекомпиляции, обычные .jar кушает. У них там и Minecraft уже работает, и IDEA (вроде как). Swing можно прямо на страничке потыкать. Красота! Make Applets Great Again!

#java #wasm #web