24 декабря Архивач восстановлен после серьёзной аварии. К сожалению, значительная часть сохранённых изображений и видео была потеряна. Подробности случившегося. Мы призываем всех неравнодушных помочь нам с восстановлением утраченного контента!
Давайте засветимся с Java! 😎 Это не просто суровое кодежурство, это настоящее Java-путешествие во вселенную чудес и невероятных возможностей! 🚀 Мы, как Java-волшебники, работаем с абстракциями настолько высокими, что звёзды недоумевают, и исследуем глубины кодовой галактики, превращая его в нечто невероятное! Мы - джедаи абстракций ☝, разгадывающие загадки данных, словно истинные детективы, и внедряем магию оптимизации в каждую строку! Наши клавиши клавиатуры - это наши волшебные палочки, создающие чудеса во вселенной Java! 😜💻✨ Да, мы - покорители звёзд, ведущие корабль сквозь галактику Java, и каждая строчка кода - это наша сияющая звезда! ✨💻🌟
Что тут у нас:
🔮 LOOM: Потоки без швов, словно магия! 🧩 Pattern Matching: Проверки данных на стероидах. 📚 Sequenced Collections: Теперь .getLast() доступен всем! В превью: Structured Concurrency - контроль над асинхронностью. В превью: Scoped Value - гибкий ThreadLocal. В превью: String Interpolation - вставка переменных просто как ABC. В превью: Unnamed Classes и Instance Main Methods - для хелло-ворлда в одну строчку! Java 21 - как праздник для программистов, только без торта (но с мороженным)! 🍰🍦💻
>>2875051 Нумерация правильная. После 500 постов потому что предыдущий тред был нелегитимным и зашкварным,по этой же причине не учитываем его в нумерации. Этот будем перекатывать после 1000. Конечно если мочух ебанат опять тред не снесёт
>>2875076 Да меня-то всё устраивает сейчас, просто подметил, что кому-то очень важно, чтобы перекаты были после 1000 постов, но при этом сам он делает перекаты после 500.
>>2874645 (OP) Я вот курс прохожу и пиздец задания, в духе дают числа выведи наибольшее. А математических методов еще не показывали и сидишь ебешься складываешь вычитаешь хуе мое че за дегенераты эти курсы делают. Как будто дают задание гвоздь забить а вместо молотка дают какие то камни бля и палки. И таких заданий дохуя.
Никогда не понимал, почему залётыши лезут в интелидж идею. Там нет волшебных кнопок и лучшее, что можно дать - эклипс. Сиди строчи, программирувай, развивайся. IDE - не даст буста. Буст от опыта и понимания.
>>2876803 Да ну не. Смотри какой ухоженный, пахнет наверняка приятно, умный еще. Еще худой, следит за собой. Лысина только, но это ж не большой минус. Только не говорите, что мне скуфы начали нравица... >>2876810 Ну нинаю, я помню мне порекомендовали пользоваться идеей вместо эклипса и бля, это такой буст. Во первых ебейший автокомплит, во вторых куча желтых подчеркиваний, где говорица, чому я еблан, плюс ctrl+q. Ну и самое главное, я могу зажать контрол и залезть в кишки. Какой же это каеф, сидишь копаешься, изучаешь как вот гоетцы всякие что-то понаписали. Делаешь также....
>>2876820 То, что я не могу удобно копаться в кишках это минус. Это не кнопочка сделать все само. Помню когда я еще сидел там не было банальной функции ренейма. Конечно заебись руками искать контекст... Но нахуя? Я блять не шарпист руками импорты писать с лицом лягухи.
>>2876823 хз, жид брейны итак попустили сами себя уйдя с Российского рынка. А опен сорц - это опэн сорц. Комьюнити, где нет цвета кожи, нации и прочего.
>>2876825 Есть комунити версия. Тоже попенсорц. >Комьюнити, где нет цвета кожи, нации и прочего. Спорно. Надеюсь ты и сам это понимаешь. >>2876828 Я в эклипсе сижу по твоему? Когда я им пользовался ничего из этого не было. Ренеймил через ctrl+F. Как в блокнотике. Кишочков тоже не было. Мб надо было 100500 плагинов накатить, но я че, бесплатный тестер, который будет сам допиливать софт и выявлять баги?
>>2876835 Так при чем тут фанатизм то? Просто пользуешься ейц, потому что она лучше по всем параметрам + привык к хоткеям. Ораклом тоже пользуются не от большой любви к этой гнилой конторе.
>>2874645 (OP) > В превью: Structured Concurrency - контроль над асинхронностью. > В превью: Scoped Value - гибкий ThreadLocal. > В превью: String Interpolation - вставка переменных просто как ABC. > В превью: Unnamed Classes и Instance Main Methods - для хелло-ворлда в одну строчку! Ну то есть то что у белых людей есть уже лет 10 как...
>>2877680 Полное имя класса нужно определить по содержимому class-файла:
- имеется ввиду не текст, а структура class-файла, надо ознакомиться с предложенными статьями(можно поискать самому), и по структуре определить полное имя класса. Логика должна работать с любым class-файлом.
>>2877705 Для получения тестового достаточно перестать быть говноедом джавистом в 2023 году, взять .net 6+ и пойти в любую крупную компанию на гринфилд проекты. Но твой выбор вечно ныть и молиться, чтобы однажды тебя взяли поддерживать ненужно легаси на жабе.
>>2877709 >Но твой выбор вечно ныть и молиться, чтобы однажды тебя взяли поддерживать ненужно легаси на жабе. Дя. А еще я даже резюме не написал ни разу. Но тестовое жду. :3
>>2877993 Ой слушай, а может ты мне поможешь с шарпиком? Помню один вообще готов был минет сделать за перекат с жабы на шарп, а тут сущая мелочь, на вопросики отвечать.
>>2878260 Читал эту хуйню когда еще под 6 релиз был. На самом начале автор закинул какой то ебаный календарь с кучей непонятного кода, который я так и не разобрал, выбросив все к черту. Нахуя так сложно делать? Выучил джаву на Шилдте ни разу не пожалел, лучшая в своем роде. И как справочник и как самоучитель.
>>2878481 А можно к вам? Я буду морально помогать, массажик делать... Че там еще >>2878487 С вальхаллой пересматриваю систему типов, возможно и такое введут. Но чёт сомневаюсь. А тебе, к слову зачем он понадобился?
>>2878489 Я хочу заняться делом, но вы меня не берете. Ой, кстати мне тут бесплатный сервис для получения сертификата посоветовали https://letsencrypt.org/ru/ и пару багов нашли и сказали я хуевый дизайнер и фронт.
>>2878499 И все равно анализатор нахуй шлёт? Тогда requireNonNull попробуй. Если все равно что-то пишет, то это проблемы анализатора. Напиши им куда ну или + поставь на ишью существующий.
>>2878846 Полное имя класса нужно определить по содержимому class-файла:
- имеется ввиду не текст, а структура class-файла, надо ознакомиться с предложенными статьями(можно поискать самому), и по структуре определить полное имя класса. Логика должна работать с любым class-файлом.
>>2878257 Нет, вот этот тоже хуйню несёт, перевод это база. Нихуя он не теряет, и самое главное что без него когнитивный ресурс будет тратится на распознавание неродного языка, а не на понимание текста, и анону будет гораздо сложнее / меньше запомнит.
>>2879450 Там можно такое делать: // Define as non-nullable, but tell compiler to ignore warning // Same as FooBar fooBar = default!; FooBar fooBar = null!; Смысл от этой безопасности, если она не работает?
>>2879529 >>Null-Restricted Очевидно что они не сделают так как я написал. Приходит запрос с фронта - джексон пытается создать объект - жвм срет ошибкой из за нула в Null-Restricted поле. И чем это лучше NPE? Если в рантайме это не проверяется и это фича компилятора - то тем более бесполезный кал, хуже валидаторов привычных.
Если я не прав - напиши в каком разделе это указано, читать стену текста не хочу.
>>2879550 >Приходит запрос с фронта - джексон пытается создать объект - жвм срет ошибкой из за нула в Null-Restricted поле. И чем это лучше NPE? Так это в принципе невозможно сделать без NPE, додик.
>>2879527 Это модель, когда у тебя расширяется тип, а не сужается? Ну т.е. как в котлине? Ну в жабе это принципиально невозможно достичь из-за примитивов. Тип, что должно вернуть String str = null; str?.length();
Какие же всратые шрифты в VSCode. Ошибки, выводящиеся в центр экрана, а не в консоль внизу - это же пиздец. Управление с клавы - полная хуета, даже между вкладками по Alt + -> не переключиться.
Какое же всратое все в Eclipse!
Обе ИДЕшки жрут столько же памяти, как Идея. Последняя версия Идеи еще и быстрее всех стартует. Как от этого отказаться?!
У меня не еще не ком.разработка, но переучиваться на эти я ебал. Эклипс просто явно для босоногих индусов, а в VSC документация говна, в которой одна статься написана на половину дядей Фёдором, наполовину - псом Шариком. В Идее есть подробная документация, подсказки на старте, обучающий курс и одностраничная PDF-ка по кнопкам https://resources.jetbrains.com/storage/products/intellij-idea/docs/IntelliJIDEA_ReferenceCard.pdf
>>2879688 Даже блять ; в конце выражения, в которую вечно хуй попадёшь в Идее можно поставить по Ctrl + Shift + Enter, а VSC - нет. Для кого они делают продукт, я не понимаю.
>>2879715 Если не ком, то есть комунити версия ж. Пасиб за пдфку, кста.
Сейчас и не припомнишь, обычно когда кожу возникает же. Но вот например приоритеты, как отсортировать сниппеты так, чтобы sou был не souf, а sout. Ещё вроде есть фича, что можно не писать Type type = new Type(); Тип она умная и сама как-то заполнить могет. В идеале б она ещё и интерфейсы выбирала, вместо типа.
>>2879747 Вообще, <Ctrl + пробел> это предложить варианты, <Ctrl + Shift + пробел> авто-подстановка рекомендуемого <Ctrl + Shift + Enter> авто-завершение стандарта типа Type type = new ...
В случае с sout/souf я бы просто напечатал sou и выбрал из списка в меню, которое откроется, нужный вариант. Не приходилось сортировать этот предлагаемый список
>>2879747 Комунити версия - говно Я пока что каждый месяц на новую почту регистрирую триал но в Условиях использования уже запретили повторные триалы на одно лицо.
>>2879762 Ты похоже не поняв. Я хочу написать new Type(), а остальное путь идея напишет. Т.е. левую часть, а не правую. Не помню уж зачем мне именно так надо было. Ещё интересно, можно ли сниппеты накидывать на выделенную часть. Типа sout обернёт в себя все выделенное.
>>2879763 >>в Условиях использования уже запретили Думаешь тебе эфбиай в дом вломится и арестует за пиратский софт?
>>Я хочу написать new Type(), а остальное путь идея напишет. Т.е. левую часть, а не правую. ctrl + alt + v попробуй но я варами пользуюсь, чтоб слева не писать.
>>в чем отличие калмунити и ултимейт идей? Поддержка мавена, датагрипа, фич для контейнеров, других языков. Говорят что то про спринг, но я хз что там в комунити спрингового не работает.
>>2879889 Можно такой метод еще сделоть. Через аспекты, возможно, можно перехватить все возможные вызов и возвращать null, но тогда магии автобоксингов не случица, да и грязь это лютая.
>>2879851 Поддержка мавена в коммьюнити есть. Датагрип - вообще отдельный продукт, равно как и идешки для других языков. Скорее всего ты напутал ультимейт идею с all-products pack'ом.
>>2879915 Насчет аспектов, эт нереально. Когда я запихну null в тайп дженерика, то я сотру всю информацию о типе и соответственно методах и тогда будет невозможно создать проксю на его основе. То, что котлин на этапе компиляции вставляет такие проверки замечательно, конечно, но я все еще не понимаю цели всего этого. Поскольку ты только продляешь существование null значения. Нахуй так делать спрашивается?
А есть вообще разница между метод реферансами и анонимными функциями? Какая разница написать (x -> x.toString) или (Object::toString) например? Почему мне идея лямбды подчеркивает как ошибку постоянно?
>>2879965 Никакой разницы, анон. Это баг в маняподелке жидбрейнс. Вариант с иксом даже читабельнее. Если расскажешь о нем на собесе, то собеседующий сразу поймет, что ты шаришь.
>>2880677 Спасибо большое, ещё за ссылки, все посмотрю, буду учиться. >>2880632 Тоже спасибо, но тут англюсик, надо будет ещё его учить >>2880618 Большое спасибо, тоже прочту >>2880628 Отдельное спасибо, хоть это скорее всего не по теме, но чувствую ебаться мне придется много.
Пиздосе, шилда рекомендуют, а там талмуды на тысячу страниц. Как можно что то там выучить вообще. Пока один раздел перекопаешь, забудешь что было в 3 других.
Рекомендуют тут иметь глобальные цели. Ну предположим, у меня есть на примете апишка хуйни с которой я могу сосать данные. Хочу сделать сайт, где можно будет хуевертить этой апишкой мышкой, ну там сортировочки, поиски, и прочая залупа. А как это делать? Мне книжку открывать и пытаться искать по ключевым словам, которые могут быть, а могут и не быть в этой книге?
А что там про написание кода? Ну там чистый код. Я так понял, до сих пор блять не пришли к единому мнению, и каждый трактует понятие чистого кода как ему хочется, ведь он так понял и он так видит.
Всё это батхерт от того, что придется потратить сотни жопасчасов на изучения языка и набив шишек. При этом можно же по человечески, не проходя каждый раз по граблям. Но что то блять в этом мире пошло не так. Хотя наверно я просто тупой, отрицать не буду.
>>2880815 Чел, учить придется. Сейчас конкурс 1к человек на вакансию и у них у всех эти томики шилда и документация спринга от зубов отскакивает. Дальше будет хуже. Поэтому если не готов 24/7 работать и учиться с горящими глазами, то айти это не твоё. Айти - это должно быть твоё хобби, твой смысл жизни. Ты ж не хочешь как заводское быдло отработать 8 часов и вообще ни о чем больше не думать и спокойно попивать пивко и мацать жену за сиську? Ты хочешь читать талмуды и документацию постоянно, вносить новые фичи, фиксить баги, жить проектом, быть в постоянном напряжении. Поэтому терпи, пока другие живут нормальной жизнью. Ты выше этого.
>>2880815 >Рекомендуют тут иметь глобальные цели. Ну предположим, у меня есть на примете апишка хуйни с которой я могу сосать данные. Хочу сделать сайт, где можно будет хуевертить этой апишкой мышкой, ну там сортировочки, поиски, и прочая залупа. А как это делать? Мне книжку открывать и пытаться искать по ключевым словам, которые могут быть, а могут и не быть в этой книге?
Примерно. Декомпозируешь проект на отдельные задачи. Читаешь гугл или книжку до тех пор, пока не выполнишь одну из задач. Если что-то не получается - возвращаешься и читаешь заново. Повторяешь, пока не закончишь проект. Начинаешь новый.
В следующих итерациях рано или поздно начнешь понимать, где у тебя пробелы в знаниях, какие вещи делать слишком муторно, где у тебя бардак, где копипаст и из-за чего в основном возникают ошибки. Фокусируешься на этих вещах, гугли, читаешь, пробуй сделать проще/лучше.
>>2880994 >>2880695 Прочитал, что ты английский не знаешь, если возьмёшь эту книжку, сравнивай периодически с новым оригинальным изданием, там в переводе хуйни нагородили и ошибок добавили.
>>2881095 Конечно на ней пишут в 2кij. Будут писать и когда ты школу закончишь, и когда поступишь, и когда работу начнёшь искать, женишься, возьмёшь ипотеку, заделаешь личинку, сам увидишь — будут писать. А пока ковыряйся в своих игрушках, это, так сказать, естественно для возраста.
>>2874645 (OP) >Мы, как Java-волшебники, работаем с абстракциями настолько высокими, что звёзды недоумевают Вы вообще читали эту шапку? Это же уморительно!
>>2874645 (OP) Нюфаг на этой вашей джаве, как провалиться в реализацию пользовательского класса? То есть при ctrl + клик по типу переменной должен меня отправить с пикрил1 на пикрил2, но этого не происходит. Почему так?
Ты ебанутый? Возвращайся в свой дискорд и расставляй эмодзи там
> Потоки без швов, словно магия!
Просто хуйня. Гринтреды существуют в каждом языке уже лет как десять. И даже тут жабапидоры смогли обосраться и сделали эвентлуп из семи залуп
> Pattern Matching: Проверки данных на стероидах.
Невероятно тупая хуйня, хуй пойми как работающая в разных контекстах, транслирующаяся в хуй пойми какой байткод, так ещё и с ограничениями на вложенность паттернов и доступных для матчинга примитивов (только рекорды, без объектов)
> String Interpolation - вставка переменных просто как ABC.
Просто напоминаю, почти 2024 год.
---
Просто не позорьтесь, дорогие жабапидоры. Я советую этот релиз молча схавать и никому об этом никогда не рассказывать. Тем из вас, кому реально хоть немного стыдно за эту хуйню, предлагаю всё-таки выучить нормальный язык типа Erlang, Elixir или Ruby и не ебать больше никому мозги
>>2881794 >Гринтреды существуют в каждом языке уже лет как десять. Ну и где они в шарпе? А в петухон или жс, вообще один реальный поток. >хуй пойми какой байткод Invokedynamic же. >Просто напоминаю, почти 2024 год. И в каком яп есть проверка встроенная?
>>2881813 >>2881793 На этой чепухе реально нет базовых фич нормальных идешек? И у вас петушков подгорает от зависти к белым людям имеющим возможность провалиться куда угодно в один клик без лишнего пердолинга?
>>2881820 У всех эта хуйня из коробки работает Что ты там напортачил никто разбираться не хочет. Твои проблемы ты и ебись. >>2881818 Ахуительные невыдуманные проблемы. Отключить gc - как мооожно. И ещё в самолётах вообще древняя хуйня стоит, какая жаба, уверен там кобол до сих пор или вообще на плате все распаяно
>>2881824 >Второй важный для отрасли язык — разработанный ещё в конце 70-х годов Ada." Там же упоминается ОС реального времени QNX. Разумеется есть масса отдельных программ у отдельных узлов, так же как в квадракоптерах у каждого двигателя отдельный регулятор с отдельным чипом с программой. Как и я сказал, старье или вовсе распаяно. А ещё cpp говно ебаное. Си гораздо лучше.
Аноны, помогите... Что-то совсем запутался в Compact String
Пишут в openjdk: если всем символы строки умещаются в 1 байт, то юзаем utf-8 (1 байт на символ), иначе utf-16 (2 байта на символ) We propose to change the internal representation of the String class from a UTF-16 char array to a byte array plus an encoding-flag field. The new String class will store characters encoded either as ISO-8859-1/Latin-1 (one byte per character), or as UTF-16 (two bytes per character), based upon the contents of the string. The encoding flag will indicate which encoding is used.
Вот мой код: https://pastebin.com/kc52uPNg Всё работает как в доке, когда у меня строка либо чисто латиница, либо чисто кириллица.
Но когда у меня смесь кириллицы и латиницы, то у меня не все символы кодируются в utf-16, а только те, что не влазят. Хотя написано, что строка должна быть полностью utf-16
Если чекнуть реализацию класса String (пик2), то у нас там общая кодировка на ВСЮ строку.
>>2881822 Только установил эту шляпу, открыл первый попавшийся проект - такая херня. Это типа нормально по дефолту никак не подсвечивать типы и прочую херь? Цветные буковки же для дебилов придумали.
>>2881876 Тебе мои 200 рублей в рот не влезут, детсадовец.
>>2881999 Что за иде, IDEA? Если оно то у тебя похоже не выбран sdk для проекта. Открой projects structure в вкладке File и в project выбери версию джавы.
>>2881901 Потому, что ты хуйню делаешь. getBytes не даёт то, что ты думаешь. Посмотри на реализацию. Чтобы получить реальное значение нужна рефлексия. И вообще, ты та тянка? >>2881999 Подсвечивать типы - это васянство ебаное. Они видны ввиду нотации CamelCase. Если так хочеца - смени тему. И вообще притензии была в том, что ты прыгать куда-то не можешь. Че таки разобрался, рукожопище?
>>2881809 В теории, ты можешь попробовать. На SoC джава легко залезет, а футпринт можно усечь, юзая со старта модули, jlink и AOT.
На практике, ты столкнешься скорее всего с нехваткой готового инструментария и матчасти. В самой по себе JVM нет ничего дилбрекерского, равно как нет ничего плохого в GC, если он современный и правильно настроен. Все инициативы в джаве порезаны искусственно тупорылым культом спринга, который оккупировал собой все сообщество джавистов. Жирному Спрингу в эмбеддед делать действительно нечего, потому что это огромный кусок старого кала с рефлексией. Но без спринга у культистов начинается ломка и они нихуя сделать не в состоянии. Поэтому корпораты и не спешат брать джаву в эмбеддед.
>>2882340 Скинь доку по ерлангу. > Нихуя себе, так мы теперь на инвалидов ориентируемся? Ну ты сам хуйнул квантор всеобщности. Если речь идёт о фп, то так и говори. >Об этом я и говорю Не оч понял, про что ты говорил. invokedynamic имеет чёткую спеку.
Или трудоустраивайся в оракл и этот вот гонор свой детский вываливай Гойцу, как им надо было все сделать правильно. Например, каким раком ты собрался поддерживать паттерн-матчинг для классов, не выворачивая наизнанку их сокрытие данных. Или каким раком ты себе видишь имплементацию виртуальных тредов, который бы не красил методы, не ломал обратную совместимость и не менял кардинально практики разработки.
Или иди нахуй из треда в свой эликсир-загон. Как человек, сведущий помимо джавы в хаскелле, ссу рубисту-переможнику манямирковому на ебало.
>>2882430 В такой, которой я не собираюсь принципиально искать что-то за собеседника. Ты спизданул - ты и доказывай. Я не понимаю, почему у людей от этого так горит..
> каким раком ты собрался поддерживать паттерн-матчинг для классов, не выворачивая наизнанку их сокрытие данных
Ты совершенно прав, анон. Я никак это не вижу. Это никак не сделать. И это очередной пруф того, что Java это мёртвая ветвь развития. На неё не натянуть современные фичи, у языка просто невероятно уёбищный дизайн.
> Или каким раком ты себе видишь имплементацию виртуальных тредов, который бы не красил методы, не ломал обратную совместимость и не менял кардинально практики разработки.
Никак, анон, ты опять совершенно прав. И опять, из всего этого следует что Java это ущербный язык, который уже пора закапывать и забывать нахуй. Его ничто не избавит. Его даже не ждёт учесть JavaScript-а, который становится просто таргетом для компиляции, Java не будет таргетом, её просто пора забыть. Паттерн-матчинг и виртуальные треды в Java, это как ООП в Cobol: чисто технически можно захуярить, но оно будет так кастрировано и настолько чужеродно для экосистемы, что всем тупо будет похуй
> сведущий помимо джавы в хаскелле
> СЫНАА, СЫНА, ХВАТИТ В КОМПЛЮКТОРЕ СИДЕТЬ, ИДИ СЮДА, БОРЩИК ВОТ СДЕЛАЛА ВКУСНЕНЬКИЙ, СЫНААА, ПРОГРАММИСТУШЕК МОЙ ТРИДЦАТИЛЕТНИЙ
>>2882438 >Это никак не сделать Вче,что он написал уже сделано. Ты бредишь? Хоть один свой тезис подкоепи чем-то окромя, а воооот в обосраном фп давно уже все сделали. Спрашивается, а че ж тогда ваш ебаный фп модель памяти не продвинул как жаба в 1.5?
>>2882438 >Паттерн-матчинг и виртуальные треды в Java, это как ООП в Cobol: чисто технически можно захуярить, но оно будет так кастрировано и настолько чужеродно для экосистемы, что всем тупо будет похуй Двачую, емко описал мои размышления в последние 3 года наблюдения за джепами.
>>2882438 >И это очередной пруф того, что Java это мёртвая ветвь развития
И почему твои непрошенные маняразмышления должны меня как то трогать или волновать? Ты же просто рандомная сердобольная чмоня с комплексом неполноценности, и вся твоя нитка - пруф этому железобетонному факту. Если б это было не так, тебе было бы тупо похуй - на джаву, на джавистов и на то, че там у них происходит. Но ты ж тупо созависим, ты не можешь не высраться. Ты не нужен. Сходи убейся.
>>2882438 >Его даже не ждёт учесть JavaScript-а, который становится просто таргетом для компиляции, Java не будет таргетом, её просто пора забыть. Паттерн-матчинг и виртуальные треды в Java, это как ООП в Cobol: чисто технически можно захуярить, но оно будет так кастрировано и настолько чужеродно для экосистемы, что всем тупо будет похуй
Тыж даже сам не понимаешь, че за чушь ебаную ты несешь. Просто порвался и высрался, а по делу ноль сказал.
>>2882445 >мы говорили про pattern matching над обычными объектами >каким раком ты собрался поддерживать паттерн-матчинг для классов Яснаа. Ебать манямирок, удачи чмонь.
> Тыж даже сам не понимаешь, че за чушь ебаную ты несешь. Просто порвался и высрался, а по делу ноль сказал.
Что я не по делу сказал? Ещё раз, Java завозит фичи с опозданием лет так на 10-20. Причём завозит фичи в очень ограниченном виде. Pattern-matching работает лишь на примитивах, так и не получивших широкое применение, да и сам по функционалу невероятно слабый. Хуже жабовского матчинга, наверное, только современный питонячий.
Виртуальные треды уже никому не нужны, ведь те, кому они были нужны ещё лет 10 назад пересели на Kotlin/Go/Scala, эта хуйня тупо опоздала. А экосистема вся всё равно будет на системных потоках, поэтому у вас будет франкенштейн, где половина софта на системных, половина софта на виртуальных, и в итоге все тупо жрут говно, страдая от суммы проблем каждого из подходов.
Это фундаментальная проблема языка, он сам по себе очень древний, с древними идеями и древней экосистемой. Если одеть деда в подростковую одежду, не получится подросток, а получится старый ебанат. Именно это и происходит с Java: экосистема, которая уже написана на системных тредах с проверками на null и без рекордов/датаклассов навсегда останется такой, и поэтому новые фичи не дадут новых гарантий или какого-либо подобного профита без полного переписывания всего существующего Java кода на идиоматичный Java 21 (что просто невозможно, я даже не знаю что ты ещё под этим спойлером ожидал, анон)
>>2882490 Не крути жопой на предмет паттерн матчинга - речь не о нем шла. Ты высрался о том, что "Java не будет таргетом" для компиляции, что обьективно настолько тупой и толстый пиздеж, что я после него не особо верю в то что ты - человек, а не нейронка тупая.
Java это язык, который копилируется в JVM байткод. В Java никто не компилируется, все компилируются сразу в JVM, скипая текстовую Java и даже Java AST. Доброе утро, самое время подучить язык на котором пишешь.
Тебя так про хаскелль задело? Извини, я думал что будет смешно пошутить про то что ты с мамой живёшь, но раз тебя задело, видать это правда так, и я больше не будет
Я про рантайм ни слова не говорил, рантайм у Java один из самых пиздатых рантаймов. Но ты всё равно сходи к доктору проверься, а то какую-то хуйню придумал, нафантазировал ещё что я это написал, и теперь решил с выдуманной хуйнёй посраться. Продолжай в том же духе.
Сенька на работе говорит что тормознутость рефлексии преувеличена и фишки которые она дает позволяют избавиться от большого количества кода,что в совокупности потратит меньше времени чем честный код. Что думаете об этом?
>>2882715 Ну ансейф все как ты сказал, позволяет перфоманс повысить. Недаром шла 21 жаба, а он все еще тут, с нами. Когда-то в любой хоть сколь нибудь перфомансной либе были ансфейф вызовы. Рефлексия же имеет мало общего с этим. Типа ансейф это уровень вниз, а рефлексия вверх. Ну и ее еще постоянно оптимизируют, чтобы слишком уж не сосала. На счет применения, ну instanceof же используют, а это рефлексия.
>>2882726 >instanceof рефлексия С недавних пор абсолютно легальная конструкция языка, использование которой предполагается, а не которая оставлена на крайний случай и чёрный день.
>>2882286 А ты олд джавы? Что было до спринга? Как относишься к новым веб фреймворкам типа quarkus, micronaut, helidon и внутренним решениям типа тиньковского kora?
Не надо быть олдом чтобы знать что до спринга был Java EE и эпоха контейнеров приложений. Это было странное время.
А вот дальше был парадокс: эпоха контейнеров прошла, всякие JBoss'ы, стеклянные рыбы и вебсферы используются разве что в самых лютейших хтоничевских энтерпрайзах, а Оракл вообще отдал JEE на аутсорс после чего тот переименовался в Jakartу... и в то же время многие референс имплементации всяких спек из JEE не просто живы, а развиваются и используются по сей день. Контейнеры приложений можно критиковать по существу за многое, но архитектурно они проектировались достаточно грамотно. И сам факт того, что в основу того же кваркуса легли референс имплементации Jakartы, а не спринг, ИМХО косвенно свидетельствует о том, что деды, в отличие от пориджей, все таки худо бедно умели в дизайн, архитектуру и планирование на долгосрок.
>Как относишься к новым веб фреймворкам типа quarkus, micronaut, helidon и внутренним решениям типа тиньковского kora?
К новым фреймворкам отношусь хорошо - больше фреймворков хороших и разных. Кваркус с нативной компиляцией юзаем для пары сервисов, полет в целом нормальный.
С тиньковским kora не знаком. Вангую что его все хейтят за то, что он не спринг. Угадал?
>>2882680 Тормознутость - лишь одна из проблем. Вторая проблема заключается в том, что рефлексия усиливает связность и херит полиморфизм. Код с рефлексией рефакторить и поддерживать в долгосроке - геморрой тот еще.
Есть еще третья проблема - рефлексия заметно усложняет использование JPMS и AOT компиляцию, но камон, найдется ли сегодня сенька-спрингромист, которому не похуй...
Ну, это все же слегка преувеличение. Легальна она в новых свитчах в связке с sealed иерархиями, для которых гарантируется компилятором что в дефолтную ветку исполнения не попадет абы какой непредсказуемый класс - в такой парадигме можно косплеить ADT на минималках. В остальных случаях instanceof имеет ровно все те же недостатки, что и остальная рефлексия.
>>2882881 Equals - так себе пример. Equals как неотьемлемая часть java.lang.Object - дизайнерская ошибка нулевого дня, с которой приходится просто жить.
>>2883068 Вынес бы триаду equals/hashCode/toString в один или несколько интерфейсов, по типу того, как сделано с функциональностью сравнения (Comparable/Comparator). Но мое мнение здесь имеет мало значения - во те времена еще не существовало ни дженериков, ни скорей всего интерфейсов.
>>2883073 Я просто смотрю на шарп, который якобы решает проблемы жабы и у него ровно та же проблема: https://learn.microsoft.com/ru-ru/dotnet/api/system.object.equals?view=net-7.0 Дженерики же в этом случае вообще не помогут, ввиду стирания типов. А интерфейсы... Мне вообще сложно представить объект, который нельзя сравнить. В жабе есть только NaN с похожим свойством. Короче сложная какая-то концепция, есть ли язык, который это провернул?
>>2883098 Ну тем более, это мэджик методы. Они часть контракта объекта как и в жабке. А термин не интерфейс же означает, а просто имплементацию двух методов.
>>2883075 >Дженерики же в этом случае вообще не помогут, ввиду стирания типов.
Ну... кстати возможно ты прав. Надо пробовать.
>А интерфейсы... Мне вообще сложно представить объект, который нельзя сравнить
На семантику equals за времена ее существования наложилось дофига всего. К примеру, есть hash-based структуры типа HashMap, которые не просто сравнивают ключи на равенство, но впридачу еще и ожидают от equals/hashCode дополнительных гарантий, и если ты эти гарантии не обеспечиваешь, рискуешь получить утечку памяти. И вот тут уже представить обьект, для которого обеспечить такие гарантии не возможно либо не имеет смысла, будет проще... но метод один. И hash-based структуры не делают различий, допуская в качестве ключа любой обьект. А еще есть хибернейт, и там, насколько я помню, свои приколы с равенством и айдишниками.
>Короче сложная какая-то концепция, есть ли язык, который это провернул?
>>2883103 >Хошь сказать у тебя таких классов-ключей миллион чтоли? захотел положить объект классом из либы в сет - сосешь хуй потому что автор либы ЕБЛАН и не заимплементил интерфейс
>>2883104 Посмотри на это с другой стороны. Автор либы мог намеренно запретить тебе совать ЕГО обьекты в хэш-бэйзд структуры, потому что у него свои на этот обьект виды. И тем самым предостерег тебя от регрессий в будущем при апгрейде зависмимостей.
Кроме того, ты всегда можешь задекорировать ключ и определить семантику равенства в декораторе.
>>2883100 Хм, т.е. дефолт реализации нет? Ну у eq пишут есть вот. Но не сомневаюсь, что мог хуйню сказать, не питонист ни разу. >>2883103 >На семантику equals за времена ее существования наложилось дофига всего. Это уже проблемы другой плоскости. >Ну... кстати возможно ты прав. Надо пробовать. Я скорее про то, что там неизбежно будут бридж методы, ну а еще сложно будет сделать extends T. Типо придется дженерики как покраску функции разносить. >в Rust видел Вроде и в расте этот метод дефолтный, хотя вот разбираться в ржавчине, чет вообще желания нет. Не люблю этот язык.
Вот есть у меня метод с парой публичных методов и сложной логикой в приватных. Логика кроме этого класса нигде нахуй не нужна и выносить ее отдельно не понятно зачем. Как быть? Делать их протекдет/пэкедж-прайвет, рефлексию ебануть, все таки вынести куда то или еще есть варианты?
>>2884903 Если тебе надо тестировать приватные методы, то твоя инкапсуляция хуйня. Иначе б ты обошёлся только соблюдением публичного контракта, не заглядывая в реализацию вообще.
В чем понт Callable,если тебе нужно получить результат ты вызываешь get(),по сути просто ждёшь пока в фьюче появится результат,в итоге поток блокируется до получения и многопоточность идет нахуй
>>2885160 Я лично экзекутором только в связке с ранабл пользуюсь. Чисто из интереса,есть какая-нибудь альтернатива если пиздец надо вернуть значение из потока?
>>2885165 Еблан, Callable ты передаёшь, возвращается тебе Future, суть его в том что до его вызова можно ещё чё-то поделать и оно будет работать параллельно. Из этой возможности следует возможность объединения двух футуре, например, или сто двадцать двух, которые при 122 ядрах выполнятся за время одной.
Кто-нибудь уже успел виртуальные потоки в проде потрогать? Для каких задач используете? Мне дали добро на 21 джаву,но я хз зачем их пока использовать,тем более что цпу интенсив код там не рекомендуется
>>2885220 А нахуя такой код в потоки пихать? Придумали проблемы блять. Вот блоки синхры, что нельзя это действительно проблема. Да и вообще авторы либ должны их распихать, а ты-то тут причём?
Сап, мб я не по адресу, но у меня на винде есть elasticsearch 7.9.1 папкой из архива, в котором внутри есть папка jdk с джавой и папка bin с батником elasticsearch.bat, который запускает эластиксёрч по идее джавой из папки jdk. Вчера у меня перезагрузилась и обновилась винда и теперь при попытке запустить elasticsearch как обычно, возникает ошибка Exception in thread "main" java.lang.UnsupportedOperationException: The Security Manager is deprecated and will be removed in a future release at java.base/java.lang.System.setSecurityManager(System.java:429) at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:82) как будто бы оно теперь пытается использовать не джаву из папки jdk, а установленную в системе. Почему так может быть?
>>2885391 Возможно перенесут же, хотя я и сомневаюсь. Так или иначе, мой тезис это никак не затрагивает. Усилия оракла в области лсп сугубо положительные и благотворно влияют на все иде, а не только вскод.
>>2885920 Да я ебу что ли как у вас правильно? У тебя есть возможность доебаться до людей на работе. Вот и еби им мозги. Я бы тоже хотел иметь такую возможность...
>>2885950 Приватный метод - чистая функция. Там нет зависимостей - получает данные, отдает результат. А методы его вызывающие как раз к зависимостям обращаются и логики не содержат.
То есть приватный можно сделать протектед/вызвать рефлексией и нормально покрыть юнитами. А публичные его вызывающие надо мокать и хуй знает что там отъебнет на самом деле - код или моки.
К тому же в приватном формируется промежуточная сущность, которая потом мапится в конечные дто в каждом методе свои. В этих дто полей может быть меньше, чем в промежуточной.
>>2885992 Что у тебя происходит в приватном методе? Представь что у тебя не приватный метод,а все его содержимое написано как есть в публичном, ничего не поменялось
>>2886004 >р1 = вызватьПриватныйМетод1(х1, х2) >р2 = вызватьПриватныйМетод2(х1, х2) Выглядят как кандидатура на вынос в другой класс вызов которого будем мокаться в тесте этого. >смержитьПоЙобаПравиламПриватногоМетода (р1, р2) Всякая еба-хуйня точно требует отдельного класса со всеми вытекающими. >смапитьВДто Это мб в каком-то статическом методе хелпере, может даже самого ДТО может лежать. Итого - все разносится по разным классам и становится по больше части публичным, там и покрывается нормально тестами без какой-либо рефлексии.
Господа аноны, выручайте. Есть предмет на джаве - но не простой, а с подковыркой, которая заключается в том, что предмет в принципе посвящен изучению паттернов. Наша курсовая работа, которую мы должны сделать - симуляция умного дома. Там должно быть использовано максимальное количество паттернов, насколько это вообще возможно. ЧТОБ ВЫ ПОНИМАЛИ МЫ ВООБЩЕ НУБЫ Что есть в описании: 1) Каждое устройство в доме имеет API для управления им 2) Приборы имеют потребление в активном состоянии, в состоянии простоя, в выключенном состоянии 3) Каждое устройство имеет API для сбора данных об этом устройстве (потребление электроэнергии, газа, блабла) 4) Люди и животные в доме генерируют события и взаимодействуют друг с другом и с предметами Вроде все что есть полезного из описания на 2 страницы. В общем, нужны любые материалы и советы что смотреть/читать/делать, если полный нубас, и после прочтения задания понятия не имеешь вообще, как начать, да и в принципе делать лол. Нас ничему не учат, просто бросают в лаву. А может мне такие учителя фортанули. А может они начнут объяснять, но позже, скажем, к концу сема, когда уже не будет времени.
>>2886066 >Нас ничему не учат, просто бросают в лаву привыкай, так и дальше всегда будет разбирайся сам и радуйся что тебе не бесполезный кал уровня скопипастить пример и поменять 1.5 строчки дают а если не хочешь то тебе и в айти делать нечего
>>2886044 >>в другой класс Есть класс UserService а этот будет UserServiceHelper или вроде того? С тремя публичными методами, которые нигде нахуй не нужны и с которыми никто кроме UserService работать не сможет. Это ровно тоже самое что сделать те 3 метода публичными. Я уж лучше рефлексию ебану, оно хоть говном выглядеть не будет в коде. Тесты для кода, а не код для тестов.
>>Всякая еба-хуйня точно требует отдельного класса со всеми вытекающими. Там не настолько йоба, 30-40 строк кода. На класс не тянет.
>>Это мб в каком-то статическом методе хелпере, может даже самого ДТО может лежать. Это как раз трогать не надо, мапстракт это сделает сам в одну строку.
>>Итого - все разносится по разным классам и становится по больше части публичным, там и покрывается нормально тестами без какой-либо рефлексии. И получаем вместо одного класса с инкапсуляцйией 4 класса с кишками наружу.
>>2886017 Сложно, не хочется ебаться с моками, особенно когда порефачить захочу, на некоторые кейсы надо избыточные данные генерировать. Но это намного адекватнее идеи распидарасить класс на десяток недоклассов.
>>2886004 А зачем чтение из базы объединять с логикой обработки в 1 сущности? >Тесты для кода, а не код для тестов. Простота тестирования - один из при знаков хрошего стиля. >олучаем вместо одного класса с инкапсуляцйией 4 класса с Странно, верит в ООП но экономит классы.
Я думаю, или забивать на мантры ООП про инкапсуляцию, или разность по классам, как уже тебе написали.
>>2886066 Рефакторинг гуру сайт про паттерны. Но я лично против этой скуфодрисни с паттернами из нулевых, на твой кейс может стратегия, команда, билдер и фабрика будут полезны.
Как же я ненавижу ебучий градл. На каждый ебучий проект на этом говне приходится скачивать точную версию этого говна, а оно весит немало, мегабайт 300, а потом еще кучу зависимостей, а потом оно еще зачем то с нуля себя собирает, и только потом приступает к сборке проекта, выдавая заветный build failed спустя час после git clone.
А еще ебучий дегенерадл саботирует миграцию на новые версии джавы. Прошел уже месяц с релиза 21 жабы, а он до сих пор на ней не работает. Спрашивается, какого хуя, и нахуя эта залупа лезет в ТАКИЕ кишки, что поднятие версии джавы на 1 всё ломает и нужно отдельную версию говноподелия выдавливать, чтобы поддержать.
>>2886091 >Это ровно тоже самое что сделать те 3 метода публичными. Это другое, буквально, называется single-responsibility principle. >Я уж лучше рефлексию ебану, оно хоть говном выглядеть не будет в коде Будет, причем полным калом. Хочешь прослыть додиком-неадекватом - ебани. Потом будешь рефакторить и охуевать, почему открутил гайку на лбу, а отвалилась жопа. я уже так делал, как ты предлагаешь, знаю о чем говорю >На класс не тянет. Тянет. Или у тебя там строгий лимит на новые классы и за каждый выше квоты тимлиды ебут? >И получаем вместо одного класса с инкапсуляцйией 4 класса с кишками наружу. Тебе что важнее, читабельность и адекватность или инкапсуляция ради инкапсуляции? Мне не говори, себе ответь.
Приватные методы на то и приватные, что предполагается, что они могут меняться как угодно и на них завязываться нельзя. То есть если ты хочешь тестировать приватные методы, то ты либо долбоёб, который не знает, зачем нужен модификатор private, либо должен сознательно принять за норму отвал жопы в тестах после половины коммитов. Во втором случае в манифолде есть аннотация @Jailbreak, которая превращает все непубличные члены внешнего класса в публичные, перестраивая байткод метода, в котором эта аннотация использована на использование рефлексии.
анончики, такая хуйня щях на проекте юзаем SecurityContextPersistenceFilter в Spring Security 3.1.3 для конфига, он депрекэйтид уже техлид сказал, мол, слышь, хорош на колобков смотреть с трапами - пиздуй избавься от него, в инете нихуя не нашел инфы по его замещению выглядит стандартно, типа ".addFilterAfter(new LogRequestFilter(), SecurityContextPersistenceFilter.class)" как бы вы посоветовали? кастомные написать? или хуй забить вообще и плюхнуть @SuppressWarnings?
>>2886551 По-моему они нужны для того, чтобы не давать внешнему пользователю твоего класса вызывать твой метод, который может менять состояние, например. Иначе что за методы такие, на которые нельзя завязываться? Зачем бы они тогда были нужны.
>>2887180 Нельзя. Новый свитч по рекордам это просто расширение паттерн матчинга по типам на составные части рекордов. Нет по булинам вообще, не будет и внутри рекордов.
>>2887201 Так тут по сути свитч ничего не делает. Ты просто if заменил на when. А ещё ухудшение в том плане, что нет оптимизации деления на 15 через неявный вывод FizzBuzz в случае одновременного деления на 3 и на 5 (что есть в изначальном варианте с if).
>>2887207 Сделано через свитч? Сделано. То, что ты хочешь провернуть не совсем мне ясно. >>2887216 Какой баг блять, я-то вижу как оно скомпилировалось и помню, что условия не проваливаются друг под дружку. Че думаешь я просто так эту хуйню сверху добавил?
Алсо вот так вот можно реализовать свитч по булину с множественными условиями с O(1) сложностью и отсутствием оверхеда от классических if'ов. "// -->" это преобразование, которое должен выполнять компилятор.
>>2887476 Никакого оверхеда, но свитч можно хуёво реализовать и в итоге иметь свитч более тяжеловесный, чем if, когда можно их сделать буквально идентичными по тяжести.
>>2887484 Мне непонятна суть вопроса. Критерий вроде "тяжеловесно" слишком абстрактен. Если это верно для компилятора и не выходит за рамки здравого смысла, границы которых будет устанавливать maintainer, то это можно писать и будет правильно. Про производительность не говорю сейчас. С точки зрения поддержания кода - чем проще будет написан такой метод, тем лучше.
>>2887495 Чё блядь? В смысле абстрактен? Можно реализовать свитч так, чтобы он разворачивался в то, выполнение чего займёт 10 процессорных тактов, а можно так, чтобы разворачивалось в 1110 тактов.
>>2887507 Тебе лишь бы высрать, или чё? В изначальном примере делаем не 3 кейса, а 300, и вместо разворачивания до O(1) (как я показал) просто проходимся в цикле по всем кейсам и сравниваем совпадение.
>>2887511 Да, ведь ты часто пишешь 300 строк в switch. Ты ведь в курсе, что о большое будет работать только на больших значениях, то есть, чтобы ощутить прирост производительности, тебе надо написать, ну, не меньше нескольких сотен тысяч условий. Не уверен, что язык столько поддерживает. Тем более ты пишешь на Java. На таком уровне решает понятный стиль кода.
>>2887528 Додик, про какой понятный стиль кода ты говоришь, если разворот будет спрятан в компиляторе? Алсо вариант с разворотом быстрее ультимативно, он хоть при трёх, хоть при одном кейсе быстрее, так как там нет в принципе оверхеда от простого вычисления значения, засунутого в if. На основании чего ты вообще выдавил "будет работать только на больших значениях"? Просто подумал, что раз так работало в других разворотах до O(1), так и значит и будет тут?
>>2887535 Суть в том, что ты "ускоряешь" то, что не является узким местом. Всё. И делаешь это на Джаве. Если бы ты писал на C для луноходов или кофейных автоматов - я бы ещё понял. Это в прицнипе неверный подход к программированию на Джаве, потому что это enterprise инструмент для коллективной разработки. Твои оптимизации switch там не нужны. Если тебе надо оптимизировать switch в Java - ты делаешь что-то не то, либо не тем инструментом. И да, я уже стал читать твой слабо связанный фентезийный текст без единого реального примера "тяжеловесного" switch.
>>2887561 Так я ускоряю то, что нинужно или преимущество появится при тысячах строк? А может вообще важен понятный стиль кода? Ты че прыгаешь с темы на тему? Ты может скажешь, что конкретно тебя подорвало или так и будешь принимать мою урину на ебальник?
Я бы тебя мог обоссать и по преждевременной оптимизации, но для начала скажи мне, а где я вообще за неё выступал? Я лишь сказал, что можно сделать оптимизировано и показал как, а тебя распидорасило как Хиросиму.
>>2887566 Речь шла о том, что ты не понимаешь, как работает о большое. И что такого количества условий в switch не встречается в коде, поэтому и оптимизировать там ничего не нужно. Я продолжу с тобой дискуссию, когда ты принесёшь benchmark, где разница между "тяжеловесным" switch и развёрнутыми if в твоей оптимизации будет существенно заметна. А свои двачерские проекции может себе оставить, мне не нужны.
>>2887570 Я спросил пример много постов назад, а ты так и не привёл его. Что лишает смысла твои попытки "строго" задавать вопросы в этой переписке. Нагрузочный тест в студию, тогда и выскажешься.
Ладно, фиксирую слив и обоссаный ебальник тырпрайз-шиза. Вот из-за такого гноя, по интеллекту чуть превосходящему мою сидушку, которое рвётся даже не с преждевременной оптимизации, а просто с оптимизации (литералли, "почаны, смотрите, вот так можно сделать оптимизированный свитч" — БАБАХ), спринг и запускается по 10 минут.
И ведь это хуйло поняло под конец, что сидит в тёпленьком, и пассивно-агрессивно слилось через "Я продолжу с тобой дискуссию... А свои двачерские проекции может себе оставить, мне не нужны."
>>2887061 Джава 7 уже не в моде. Через стрим апи перепиши. И от магических чисел избавься, константы вынеси отдельно, добавь расширяемости, паттерны реализуй вместо повторения кода. И как это запускать? Консолью пердолится? Прикрути свагер с описанием апи. Можно через спринг все сделать. Если тормозной спринг не нравится - ебани на кваркусе с нативной компиляцией.
Ответы на вопросы от главного по джаве. Валхала скоро будет. Нужно только потерпеть. После этого шарпогосподки перестанут рыпаться и примут превосходство джавы
>>2887852 Джава уже давно превосходит петушарп. С вальхаллой ничего не изменится, просто разрыв больше станет. Шарподауны также будут приносить картинки из 1998 года, на которых еще не было Files.readAllBytes() и получать поноса за шиворот.
>>2889216 Это тот же самый рантайм-чек на нулл (типо того, что есть в ломбоке), но более плохой по двум параметрам: 1) Лишние расходы на проверку из-за invokestatic, внутри которого уже будет сама проверка 2) Занимает место в теле метода, когда в идеале проверка должна вешаться на объявление типа.
>>2889281 Каких именно хуй увижу? Рантайм-чек без лишнего инвокстатик и на типе есть уже давно в ломбоке. На компайловый чек уже джеп заведён ( https://openjdk.org/jeps/8316779).
>>2889304 Я к тому,что,насколько я знаю, экзектли ванс можно реализовать и без кафка стримс,поэтому вряд ли есть смысл использовать кафка стримс если цель получить экзектли ванс доставку
>>2889336 Потому что получится никому не нужная хуита типа раста. Пару стартапов заюзают её и всё. Джава и с оглядкой на легаси очень неплоха. Я даже с ходу не могу вспомнить, а где именно на джаву повлиял легаси, кроме дженериков.
Ебаные блядь инфоцыгане базарят,что кафка аморфна и ничего об оффсетах не знает,при этом сами через две минуты говорят,что оффсеты хранятся на брокере координатора группы в топике _consumer_offsets. Они ебанутые?
Что тут у нас:
🔮 LOOM: Потоки без швов, словно магия!
🧩 Pattern Matching: Проверки данных на стероидах.
📚 Sequenced Collections: Теперь .getLast() доступен всем!
В превью: Structured Concurrency - контроль над асинхронностью.
В превью: Scoped Value - гибкий ThreadLocal.
В превью: String Interpolation - вставка переменных просто как ABC.
В превью: Unnamed Classes и Instance Main Methods - для хелло-ворлда в одну строчку!
Java 21 - как праздник для программистов, только без торта (но с мороженным)! 🍰🍦💻
Вики по вкатыванию в джаву🎓: https://github.com/java2ch/java-thread/wiki
Предыдущий: