🌈🎉 Взрывайтесь от радости с обновлением до Java 22 - это просто бомба!
🆕 Веселые фичи: — Теперь у вас есть свобода до super(); и this();. 💻 — Стрим газонюхи: добавьте свои прикольные операции, типа batch(). 🌟 — Запускайте Java как питона в один мах, даже если у вас целый зоопарк файлов. 🐍
🚀 Новые фантастические обновления: — Переключайтесь на короткие входные точки (void main() {}), и забудьте про неназванные классы - они на автомате становятся именными! 📄 — Кастрированный ASM теперь на службе, ускоряя сборщик мусора и отпуская Java от его оков! 🛠️ — А форейн функшен выходит из превью, и мы уже на пороге Вальхаллы! 🌋
🎈 Веселые изменения: — Обновлены шаблоны строк, переменные в лямбдах через _, структурированная многопоточность/скопед значения и вектор апи - все прикольные штучки остаются с нами в превью/инкубаторе. 🔃🔄🔍
В мире Java-разработки всегда появляются новые и интересные книги, которые отражают современные подходы и тенденции. Вот несколько модных книг, которые стоит рассмотреть:
1. "Effective Java" by Joshua Bloch - Эта книга является классикой в мире Java и предлагает множество советов и лучших практик по использованию Java в реальных проектах. 2. "Clean Code: A Handbook of Agile Software Craftsmanship" by Robert C. Martin - Эта книга не привязана к какому-то конкретному языку, но содержит множество ценных советов по написанию чистого и поддерживаемого кода, что является ключевым аспектом разработки на Java. 3. "Java Concurrency in Practice" by Brian Goetz, Tim Peierls, Joshua Bloch, Joseph Bowbeer, David Holmes, Doug Lea - Это одна из лучших книг по многопоточному программированию на Java, которая поможет вам понять и применить современные подходы к параллельному выполнению кода. 4. "Modern Java in Action" by Raoul-Gabriel Urma, Mario Fusco, Alan Mycroft - Эта книга предлагает обзор современных возможностей Java, включая функциональное программирование с использованием потоков, а также нововведения, введенные в последних версиях языка. 5. "Java Performance: The Definitive Guide" by Scott Oaks - Если вам интересно узнать о современных методах оптимизации производительности в Java-приложениях, то эта книга предоставит вам все необходимые сведения.
Эти книги помогут вам оставаться в курсе современных подходов и методик в мире Java-разработки.
>>3136115 > Читай шилдта. За такие советы надо бить ебальник. Дядя конченный пидорас - учит плохому: 1. Доступ?! А хуй на него везде дефолтный. 2. ООП не нужно. 3. Ряд методов-примеров из книги надо разбивать на два-три. 4. Нейминг - не неслышал. И тому подобное говно. Короче дядя застрял в 90х на С с классами. 100% не современное и даже не уровня кода начала разработки java.
>>3136087 1. Толковое прямо 10/10. Афтырь разработчик java. 2. Толковое. 3. по прежнему актуально, но нудно. 4. не читал. 5. Оптимизация нахуй не нужна, так сказал Блох. Живите с этим.
>>3136844 > 1. Доступ?! А хуй на него везде дефолтный. Какой нахуй доступ в книге объясняющей основу джавы? Ты ебобо? Доступ только в разделе про доступ, очевидно.
> 2. ООП не нужно. Ещё раз, это не книга про ООП, это книга про управление джавы. Как ей рулить.
> 3. Ряд методов-примеров из книги надо разбивать на два-три. > 4. Нейминг - не неслышал. Вкусовщина, воняющая агрессивным анальником, что вместо работы доёбывается до коллег и свои бест практисисы навязывает, которые при более детальном рассмотрении часто (почти всегда) оказываются антипаттерном.
>>3136087 >1. "Effective Java" by Joshua Bloch - Эта книга является классикой в мире Java и предлагает множество советов и лучших практик по использованию Java в реальных проектах. Устарела, морально и физически
>2. "Clean Code: A Handbook of Agile Software Craftsmanship" by Robert C. Martin - Эта книга не привязана к какому-то конкретному языку, но содержит множество ценных советов по написанию чистого и поддерживаемого кода, что является ключевым аспектом разработки на Java. Список размытых мантр "за все хорошее", которые урежут производительность кода в лучшем случае в 2 раза
>5. "Java Performance: The Definitive Guide" by Scott Oaks - Если вам интересно узнать о современных методах оптимизации производительности в Java-приложениях, то эта книга предоставит вам все необходимые сведения. Опять мантры и лознуги, сразу понятно что вводят в заблуждение, особенно начинающих
Все эти книги нужно читать с приличной долей скептицизма, а факты проверять, т.к. самой новой из них 6 лет уже
>>3136855 > Какой нахуй доступ в книге объясняющей основу джавы? Ты ебобо? Доступ только в разделе про доступ, очевидно. > Ещё раз, это не книга про ООП, это книга про управление джавы. Как ей рулить. > Нейминг - антипаттерн
Слыш, пошёл нахуй вместе с этим пидором. Вы оба нихуя не шарите.
>>3136924 Он не один ее писал. >>3137013 Причем тут это? Корневая библетека, часть джавы, без которой ее сложно представить. Это уникальный опыт, который стоит того, чтобы его книги читали.
>>3137749 Лишь бы было удобно. Круче всего писать в vim, но мне не удалось его нормально настроить для жабы (чтобы на 100% работало автодополнение). Он больше заточен под правку конфигов или небольших скриптов. Emacs вроде позиционируется как IDE, но я его вообще не понимаю, слишком все сложно и неинтуитивно. Там автокомплит вроде ставится 1 плагином. IDEA и Eclipse слишком прожорливы, NetBeans не подходит для чего-то сложнее HelloWorld'ов.
>>3136844 Шилдт писал на Си и крестах, и по этим языкам у него отличные книги. Шарп и жабу он знает хуже. Я бы начинающим советовал Брюса Эккеля "Философия Java" - такая же классика, как K&R и Страуструп. И затем учить фреймворки - Spring, Hibernate и др.
>>3137796 > советовал Брюса Эккеля "Философия Java" Помоему она района java 1.6 т.е. даже не 1.8. Читать надо Хорстмана обе книги. Полное представление о Java SE нормальным языком, рабочими примерами и сравнительно актуальная версия java. > крестах В целом при наличии официальной, на русском, доки читать дядей по крестам даже вредно.
Есть кто попробовал в свои спринговые микросервисы прикручивать ai на том же spring-ai, который близок уже к релизу? Интегрили что-то из набора доступного в РФ, например яндексовое или свою standalone-сеть, а не openai?
>>3138030 Насколько я вижу из фич там: - Сгенерировать инишалайзером проект - Перейти по замапленному в контроллере пути - Перейти по типу к его дефинишену Так?
>>3138564 1. На заре джавы было сделано несколько ошибок, и одна из них это то, что print не печатает строку, а добавляет в буфер вывода текст, который не будет выведен пока не будет получен сигнал завершить печать строки. Чтобы всё выводилось сразу используй println вместо print. 2. Ты не в терминал смотришь, долбоёб.
>>3138571 > То есть, я даже просто запустить не могу Идея тупорылая, ей надо создать проект и там написать твой хелоуворд. А иначе она не отдупляет, что делать вон пишет no usages.
>>3138582 Исходники должны быть в папках исходников, которые синей иконкой помечены. Или тебе нужно былоотмечать папку с мейном исходником, или переносить мейн в src
>>3138861 >А ты больше просил? Тимлид сам инициировал разговор про зп, мол, надо бы тебе повысить до 150к. Это было в феврале этого года. У нас на галере начальство ввело какой-то ебанный временный фриз на повышение всвязи с перестройкой компании и мне недавно выдали, что повышение будет не раньше июля.
>>3138863 Ну у меня по бумажкам выходит 2 года опыта. Я полгода стажировался, а еще год просто получал зп ниче не делал. Вот сейчас завершаем проект, на нем я 7 месяцев, это считай мой первый проект реальный. > пора бы тебе крутануть +год А че, 2 года опыта ща не котируются? Без накрутов не получится?
>>3138826 Валхалла делают уже 10? лет. За это время сишарп стал кроссплатформенным и сожрал кусок рынка, го стал мейнстримом в бэкенде, у джаваскриптеров появилось еще два рантайма для сервера. Просто пиздец бездарности из оракла.
1. Есть ли для Java ассемблер, чтобы писать методы окодами JVM? 2. Можно ли во время выполнения генерить код, т.е. скомпилить .class-файлы и потом создавать объекты из них? 3. Совместима ли JVM с моделью памяти языка Форт? Там и там стековая машина, но у Форта раздельные стеки для данных (аргументы функций и локальные переменные) и адресов возврата.
Хочу написать для JVM свой язык с изменяемым синтаксисом. Смотрел Clojure, не понравилось, слишком усложнено.
>>3139380 > 1. Есть ли для Java ассемблер, чтобы писать методы окодами JVM? Шизофренище, иди таблетки пей, живо. > 2. Можно ли во время выполнения генерить код, т.е. скомпилить .class-файлы и потом создавать объекты из них? ASM. > 3. Совместима ли JVM с моделью памяти языка Форт? Там и там стековая машина, но у Форта раздельные стеки для данных (аргументы функций и локальные переменные) и адресов возврата. Никого не интересуют шизофренические поделия 70-х в этом треде.
>>3139448 Для начала стоит поменять запрос на хочу работать за еду год, а то и два, под надзором жесткого кабанчика, вероятней всего, в офисе. После этого войти в топ 5% вкатунов и массово спамить все вакансии в хх, телеге и тд. Сразу понять, что рейт 1/300 приглашение/отказ это неплохой результат и да, это только приглашение на собес, после чего еще и шансы пройти его мизерные, так что днем и ночью смотреть записи собесов и повторять очередное пособие 1000 вопросов по стеку и подготовить и прорепетировать перед зеркалом, почему в предпенсионном возрасте ты неудачник и решил, что тебя тут ждет что-то лучше и чтобы это звучало хотя бы издали правдоподобно. Возраст сразу скидывает все приличные стажировки, хотя можешь подрочить литкод и через контест пройти в какую-нибудь более менее сносную контору, которая иногда пропускает скуфов, чтобы показать, что они не такие, но уровень необходимых усилий по отношений к достигнутому результату и применимости в дальнейшей деятельности будет жалок.
>>3139491 >вррёёёёёте! вы всё врёёёте! рыночек порешал! на одного вкатуна 20 вакансий! Может кроме обвинений в злой лахте что-то по делу покажешь, например, статистику, опровергающую хоть что-то из сказанного анонами выше?
БИЛДИШЬ ПРОЕКТ ДЕГЕНЕРАДЛОМ @ РРРРЯ БИЛД ФАЙЛЕД! ПРОЕКТ СОЗДАН НА 7.6 А ТЫ ЗАПУСКАЕШЬ 8.7! @ ОК, ЗАПУЩУ ВРАППЕР @ РРРРРЯ БИЛД ФАЙЛЕД! СЛИШКОМ НОВАЯ ДЖАВА В СИСТЕМЕ! ЭТО СТАРЬЁ НЕ ПОДДЕРЖИВАЕТ ДЖАВУ ВЫШЕ 19! @ SSSSSUUUUUUU
ТЕПЕРЬ ЭТО В ПРОШЛОМ! Я написал бат-шорткаты для шинды для запуска дегенерадла с выбором нужной версии джавы и динамическим определением того, откуда эти шорткаты вызываются. Добавил папку с ними в path и теперь ввожу gradlew17 для старья и gradlew21 для современного и радуюсь зелёному билд сакцесс. В чём я не прав?
@echo off setlocal set JVM_PATH=путь к джаве set PROJECT_PATH=%CD% cd /d %PROJECT_PATH% %PROJECT_PATH%\gradlew.bat build -Dorg.gradle.java.home=%JVM_PATH% %*
>>3139380 > Есть ли для Java ассемблер, чтобы писать методы окодами JVM?
Есть. Так и называется - objectweb asm. Но пользоваться оным довольно заебисто, поэтому на практике чаще всего пользуют щадящие альтернативы. Самая хайповая - byte-buddy. Еще есть cglib, javassist, bcel.
>Можно ли во время выполнения генерить код, т.е. скомпилить .class-файлы и потом создавать объекты из них?
С кастомными класслодерами возможны все твои фантазии, пупсик.
>Совместима ли JVM с моделью памяти языка Форт?
Не ебу, скорее всего нет. Но чел, не стоит проецировать на JVM свои фетиши по устройству модели данных. JVM - это вещь самодостаточная, ты либо принимаешь ее такой какая она есть, с ее моделью. Либо не принимаешь и пишешь свой рантайм с нуля.
>Хочу написать для JVM свой язык с изменяемым синтаксисом
Ну на базе байткода кастомных языков - вагон и малая тележка: скала, котлин, кложура, цейлон, так что в теории все возможно. Еще - на хайпе щас graal truffel, хотя оно про другое.
>>3139494 > например, статистику Да вы тоже не предоставили никаких фактов. В /b/ ноют, что бабы не дают, тут ноют, что вката нет. > опровергающую хоть что-то Чувак, я помню лет пять назад у нас по снабжению, в которое я тогда перекатывался с продаж была 1 вакансия в неделю, а то и месяц. И в принципе я за средний прайс тогда нашёл работу в течении года. Последнюю на которой работаю искал в течении двух лет - подфатило попал в короновирус. > а одного вкатуна 20 вакансий! Вот только щас вижу пост на соседнем форуме, о том, что чувачок съёбывает в англию по it-шной визе с яндекса. Хотя казалось бы куда жирнее для этой страны. Погодите 1.11.2024 ещё не наступило. > кроме обвинений в злой лахте Чувак, мне похуй кто ты что ты, я вообще не тебе писал.
>>3139380 >3. Совместима ли JVM с моделью памяти языка Форт? Там и там стековая машина, но у Форта раздельные стеки для данных (аргументы функций и локальные переменные) и адресов возврата. Загугли JMM, т.к. ты наверное один тут сможешь понять подходит это под Форт или нет
Это что получается, если я хочу с JAVA клиента читать мейлы по протоколу IMAP, я должен либо ТУПО каждые n-секунд запускать fetch(), либо использовать специфицескую хуйню типа пушей от гугла?
>>3140121 > Да вы тоже не предоставили никаких фактов. Скринов с количеством вакансий и вкатунов с хх.сру не бы ла! Индекс вката не подсчитывается! Статистики лейоффов НЕ ТУ! ВЫ ВСЁ ВРРРРЁЁТТИИИИИ!!!!! Ясн, можешь не продолжать.
>>3140444 Если ты прошедшую неделю ничего ни читал, ничем не занимался, то вообще похуй. Потом будешь рассказывать, что вката нет. Ты пытался год-полтора смотря маняме и играя в доту2.
Блядь, как же я срал в рот всем кто хоть какое-то отношение имеет к созданию веб серверов пердолимых конфигами. Какое же это убогое говно не для людей. Что из джавового есть для того чтобы на /kal был кал, а на /mocha была моча? Хочу джавовым кодом всё настраивать, доебали блядские конфиги. И чтоб поддерживаемое было, а не залупа на 2 звезды.
>>3141543 Я наверное несколько лет уже как к олимпиадкам не притрагивался. На самом деле очень приятное чувство, когда ты на протяжении часов 5 решаешь задачки с тестирующей системой, принимая ad hoc решения, подбирая константные формулы и пр. пр. и когда получаешь OK на задачке... Прям ух. Непередаваемые ощущения.
Конкретно к этой задаче у меня не сохранилось решения, поскольку сайт их не сохранил... Нашел промежуточное https://pastebin.com/DJR6ZMgS Глядя на него примерно понимаешь, что хороших привычек олимпиадное программирование не прививает, так еще и практическкими задачами оно не пресекается..
В общем хз, мб и решу.. Это ж не дп, которое я до сих пор не понемаю.
>>3141567 Я скорее про шизофренические алгоритмы по типу префиксных сумм. По сути дп, это про подбор рекурентной формулы, что для меня как-то пиздец сложно. Возможно там просто надо заучить 100500 алгосов, но мне впадлу. >>3141581 Задача про проход числа циклом. А в наивном решении двойной проход. Че тебе не нравится?
>>3139993 >Программирование это всегда про математику? НЕТ БЛЯТЬ! Программирование это про сайты! Или про программы/мобильные приложения. Какая хуй разница, на каком языке ты пишешь, хоть на питоне, хоть на хаскелле, хоть на java, это общего смысла не меняет. В конечном итоге, всё равно получится ёбанный сука САЙТ! Или чё там ещё может выйти нахуй? Машина времени? Звезда смерти? Или блять спутник? Не надо программировать ради самого программирования.
Чем абстрактнее хуйня, тем меньше образовательный КПД и меньше пользы для тебя, как для программиста. Ты можешь хоть усраться и формулами исписать, их всё равно никто не увидит и твой полёт фантазии не оценит. Обычный пользователь увидит лишь формочки, кнопочки, хуёпочки. Пользователь нажимает хуёпочку, там происходит какое-то волшебство и ему выдаётся результат. Вот программирование об этом.
Но если ты прям так рвёшься к МАТЕМАТИКЕ, то добро сука пожаловать в РОБОТИЗАЦИЮ, ФИНАНСЫ, ИНЖЕНЕРИЮ, БИОИНФОРМАТИКУ. Там столько матана что ты охуеешь. Кто знает, может это ты создашь российский аналог atlas'а из boston dynamics...
>>3142893 Виртуальные потоки это жидкий обсёр. Говорю как жабафан. 1. Синхронайзедов нет. Крест на идее непереписывания кода, а также фактическое серьёзное замедление кода из-за необходимости использовать каловые реентранты вместо быстрых синхронайзедов. 2. Если с платформенным потоком ещё можно как-то выебнуться для того, чтобы получить выпиленный Thread#stop() назад, то с виртуальным хуй.
>>3142792 не я вообще не хочу заниматься математикой,искать ебанутое число фибоначчи и прочую эту хуйню я прост учусь на программиста и хотел изучить джаву чтобы писать всякую хуйню под мобилки
>>3135222 (OP) я мне могу блять понять, почему у меня в спринг буте при неккоректном никнейме (несуществующем аккаунте) происходит оверлоад и ответ от сервера не возвращается... никаких экспешенов нет, в консоли h и hh выводится.. https://pastebin.com/BCTFx8qf
>>3143200 Они не для этого чувак,виртуальные потоки имба когда ты закинул рест или запрос в базу и идёшь дальше кошмарить платформенный поток,стоп тоже нахуй не нужен тк ты перданул виртуал потоком,получил результат и он благополучно сдох,долгоживущих тасок там не бывает,наконец-то можно тупо на любое говно вешать @Async и не ебаться с тредпулом,шарпомухи должны быть в восторге
>>3143332 на самом деле, даже типы это математика, типизирование по черчу, все дела. хотя в жабе она не самая красивая, но в вальхалле исправят конечно, да да. наверняка с этим столкнешься, когда женерики изучать будешь.
ну и конечно не стоит забывать, про асимптотику алгосов, доказывние корректности чернз индукцию и пр. пр.
>>3143362 Код пупуням лучше не показывать, выглядит очень больно. Первое что бросается в глаза это this там где он не нужен,плюс не использовать ResponseEntity(сущность для хттп респонса) в сервисном слое это ужасно,не надо так делать. Что касается твоего вопроса, исключения нет тк ты его не выбрасываешьлогично?. Если ты хочешь получать исключение когда юзера нет то сделай следующее: 1)Твой репо слой возвращает Optional<YourObject> 2)В сервисе ты делаешь repo.findByField() .orElseThrow(() -> new YourException("Bullshit with given login does not exist"))
>>3143484 ну мне не надо быть пиздатым программистом который пишет охуенные алгоритмы,я алгоритмы ебал в рот мне надо прост бабла заработать,желательно побыстрее
>>3143470 >писать красивые кнопочки на сайтах Это не про жабу вообще. > автоматизации рутинных действий пользователя Это тоже больше про UI и скрипты какие-нибудь.
В любом случае теория алгоритмов это основа программирования. Думая, что ты убираешь что-то ненужное, ты буквально фундамент уничтожаешь. Вообще у математики и программирования очень много общего, поскольку второе буквально создано первыми. Например маниакальная абстракция везде и во всем. Изучая спринг ты просто ахуеешь от количества и качества этих абстракций. Почитай: https://www.fredrikholmqvist.com/pages/why-i-hate-frameworks.html >>3143490 У тебя нет конкурентного преимущества, за которое можно платить. Может ну его, это айти?
>>3143332 Если циклы и настолько простая математика вызывает настолько сильное отторжение, сдавайся - программирование не твое. Программистом ты возможно еще устроишься, но ни счастья, ни денег, ни самоудовлетворения, ни развития эта работа тебе не принесет. Будешь не работать, а пресмыкаться перед менеджментом и подлизывать хрюшам, чувствуя свою неполноценность перед коллегами моложе тебя, но окончившими мехмат. А когда ты осознаешь, что в 40 лет ты все еще джун с окладом ниже дворника, и в любой момент можешь вылететь из-за кадровой оптимизации, просто уйдешь в лютый кризис, возненавидишь себя, уйдешь в запой и самовыпилишься, если не одумаешься.
>>3143536 А че фронтенд? У них например задача, чтобы их говно не лагало на всех устройствах этого мира. У тебя же только один сервер. Плюс язык у них посложнее будет, в том плане, что позволяет очень много хуиты.
>>3143332 >не я вообще не хочу заниматься математикой,искать ебанутое число фибоначчи Тебя никто насильно под пистолетом не заставляет. Есть правильное АКАДЕМИЧЕСКОЕ программирование, где всё по книжкам, считают числа фибоначчи и всё такое прочее. И есть неправильное КОММЕРЧЕСКОЕ программирование. Где весь смысл - это получить сука БАБКИ.
То что вы учите, решаете всякие литкоды, это не только не полезно, но и вредно. Одно дело решить на скорость головоломку и через полчаса забыть о ней. И другое когда тебе нужно поддерживать проект с 200 тысяч строк кода. И когда ты добавляешь новый функционал в одном месте, ломается в другом. При этом на тебя ещё заказчик орёт, вот это - реальное программирование, а не то что вы фантазируете.
>>3143595 При чем тут наши фантазии. Чел бугуртит с примитивных концепций, которые у среднестатистического кодера настолько зашиты в кодкорке мозга что он даже не осознает когда пользует их. О чем тут речь может быть вообще? Ну не дано и не дано - нахуя себя мучать?
>Синхронайзедов нет. Крест на идее непереписывания кода >как-то выебнуться для того, чтобы получить выпиленный Thread#stop() назад
Да ты сам нихуя идей стоящих за джавой не выкупляешь, если маленькое ситуативное ограничение на синхронайзд для тебя - дилбрекер, а сраный тред-стоп, который руинит пол-JMM одним своим существованием, для тебя фетиш. После этого ты в лучшем случае - непереучившийся сишник, привыкший ловить конкарренси-аномалии ебалом, которому концепция memory model просто стоит костью в горле, в худшем - фрик со взаимоисключающими параграфами, но уж точно не джава-фан.
>>3144084 Пиздец. Ошибку кидает. А то что у этого прибитого треда могли быть захвачены мониторы, и он в момент прибития мог лопатить шаред-стейт - несущественный нюанс, ага?
Ты на вопрос не ответил. Те thread stop нахуя, фрик?
>>3144082 > Да ты сам нихуя идей стоящих за джавой не выкупляешь, если маленькое ситуативное ограничение на синхронайзд для тебя - дилбрекер, Может по делу скажешь почему это не "дилбрекер" и почему я должен поскакать переписывать квадриллионы строк умеренного легаси с синхронайзедами на реентрантлоки не только тратя на это время, но и понижая перформанс.
> Нахуя те вообще Thread stop, фрик? Безопасно работать с внешним кодом, чтобы можно было грохнуть поток если выполняется слишком долго.
>>3144087 >А то что у этого прибитого треда могли быть захвачены мониторы, и он в момент прибития мог лопатить шаред-стейт - несущественный нюанс, ага? Еще раз, как это jmm ломает? Все локи он освободит, у тебя даже дедлока-то не будет. > Те thread stop нахуя, фрик? Я вообще не он.
"Безопасно" и "Thread.stop" в одном утверждении - это смешной оксюморон, и мне тебя жаль если ты на этой шутке строил гарантии в проде. Грохнуть поток безопасно - это Thread.interrupt, живи как хошь с этим фактом но именно для этого его и дизайнили в свое время.
А ты по существу сидел на депрекейтнутой залупе, от которой все еще в восьмерке открестились, о чем ты мог бы узнать если бы не был фриком и элементарно чекнул javadoc к методу.
>>3144102 А для тебя шутка чтоли, что у тебя мониторы отлетают посередь критической секции и обьекты остаются хуй пойми в каком промежуточном состоянии? Типа дедлока нет, ошибка есть - значит все штатно? Ну удачи, че.
>>3144114 Ты тоже фрик чтоли? Для тебя пучок поломанных обьектов, для которых состояние неопределено и ничего не гарантируется после таких выкрутасов - не дырища в JMM?
>>3144124 Нет, в п.5. четко сказано, какое поведение допустимо. А именно, все, волатайл чтение видит любую, еще раз любую запись, которая не упорядочена после, а также уплощает цепочки записей, до последней. О чем нам это говорит? То, что ты описываешь, четко сука описано в спеке, а ты блять ее никогда в жизни не открывал. Но при этом что-то про нее пиздишь. Классика.
>>3144126 Блять, при чем тут волатайл, душный! Я те выше про слетевшие критические секции - с хуя ли ты на волатайл то стрелки переставляешь? У тебя весь шаред стейт в крит-секциях чтоли волатайл или что?
>>3144128 >У тебя весь шаред стейт в крит-секциях чтоли волатайл или что? Лок/анлок это sa, которое перейдет в hb. Там на него те же правила: >A set of actions A is happens-before consistent if for all reads r in A, where W(r) is the write action seen by r, it is not the case that either hb(r, W(r)) or that there exists a write w in A such that w.v = r.v and hb(W(r), w) and hb(w, r). С чуть большим множеством. >Угомонись, епта Да я тебе с самого начала сказал, что ты пиздишь о том, о чем не понимаешь. Эти ошибки вообще можно перехватить и хуину забить.
>>3144130 Блять, да о каких правилах на анлок ты вообще даже в теории можешь говорить, если анлок у тебя происходит не там, где было задумано, а хуй-пойми где, где тред прибьется? Че ты там обрабатывать и перехватывать собрался?
>>3144131 >о каких правилах на анлок ты вообще даже в теории можешь говорить Ну будет rc. Для приложения критично, да, но jmm это не ломает. > а хуй-пойми где, где тред прибьется? Можно прям внутри критической секции try/catch поставить. И просто игнорить смерть треда. Thread#stop не убивает треды средставми ос.
Корочи ладно, извени. Хотел пожелчить~ Надеюсь не обидишься
>>3144089 >Безопасно работать с внешним кодом, чтобы можно было грохнуть поток если выполняется слишком долго. Чтобы безопасно работать с внешним кодом, нужен простой...
>>3144317 Т.е. как я понял, сам объект создается примерно так: Object user = classLoader.loadClass("User").newInstance(); И дальше можно обращаться к полям и методам через рефлексию. Но как правильно настроить classLoader?
>>3144326 Смотрю, возмиожно подойдет для моих целей. И еще вопрос, классы обязательно должны загружаться из файловой системы? В памяти их держать нельзя, ничего не записывая на диск? Можно, конечно в Windows и Linux создать RAM диск.
>>3144337 >классы обязательно должны загружаться из файловой системы? Я не уверен, но вроде можно, типа вот ты же сам определяешь работу пика, следовательно можешь как угодно определить то, как интерпретируется юрл. Но наверное лучше поискать имплементации соответсвующие..
>>3144205 Это непроизводительно. Под каждый кусочек внешнего кода выделять по 100 мб памяти на виртуалку и в 1000 раз замедлять интероп с ним за счёт общения сокетами? Я лучше буду обычные джава методы вызывать.
>>3144337 >И еще вопрос, классы обязательно должны загружаться из файловой системы? >В памяти их держать нельзя, ничего не записывая на диск? >Можно, конечно в Windows и Linux создать RAM диск. JVM пофиг откуда возьмется байткод, хоть с диска, хоть будет загружен по сети Log4Shell именно на это основан был, хоть из базы данных JVM в Oracle Database именно так и работает, хоть сгенерирован на лету.
>>3144406 В смысле не делал? Ты про то что тред детх можно перехватить? Так я эти полгода назад на это и ответил что перехват тред детх можно улавливать на проверке кода на безопасность вайтлистом, что в любом случае нужно т.к. в джаве есть небезопасные операции, например взаимодействие с файловой системой.
>>3144391 >Я лучше буду обычные джава методы вызывать. Я тебе еще в прошлых тредах объяснял, что твоя манясекьюрити говно. Есть тысячи разных способов запустить код в другом треде и ты никогда не можешь быть уверен, что перекрыл их все. Пэтому нормальный подход это или предполагать что код не будет специально завешивать машину, или считать что код сознательно пишется со злым умыслом принимать жесткие меры ограничению его прав. Все остальное говно и полумеры.
>>3144415 > Есть тысячи разных способов запустить код в другом треде и ты никогда не можешь быть уверен, что перекрыл их все. Именно поэтому вайтлист, а не блеклист.
>>3144432 > Ты сам ручками синтаксический анализ кода делать будешь? Есть же АСМ. Просто запретить вызовы явно небезопасных методов и оборачивать в рантайм чек те методы, что могут быть использованы в полезных целях, а могут и во вредоносных.
> и судя по тому, что за полгода нихуищи не поменялось... Я не делаю ничего, просто размышляю. Все эти полгода был занят более важными вещами.
>>3144434 >Есть же АСМ. Отлови вот это. Есть случаи еще менее явные. В любом случае это вызовет SOE, можно аллокаций тебе наделать, которые тебе память переполнят и также крашнут jvm. Не бывает безопасных методов, в правильных руках они все опасны. >Все эти полгода был занят более важными вещами. Чем же?
>>3144459 > В любом случае это вызовет SOE И чё? Внешний тред крашнется и всё. Ровно то же самое как если бы я сам его крашнул за слишком долгое выполнение.
> можно аллокаций тебе наделать, которые тебе память переполнят и также крашнут jvm Насколько я помню из того когда я размышлял об этом я это решил обёрткой new в кастомный аллокатор который будет подсчитывать сколько внешний код потребил памяти и при превышении лимита, в, например, 128 мегабайт тред бы киллялся, а всё лишнее собиралось сборщиком мусора.
> Чем же? Правой дрочил, левой щекотил. Блядь, чё за тупые вопросы?
>>3144473 >я это решил обёрткой new в кастомный аллокатор Ебать ты фантазер. Кастомную гц уже пишешь. Еще размер аллокаций откуда-то знаешь. И это если я все правильно помню для майнкрафта? Реально мем, его идеи. >Блядь, чё за тупые вопросы? Учусь у мастера
>>3144477 int[] new = new int[9999999999999999999999] замени на i + 1. Можно вместо 999999.. вставить рандом или еще какую-нибдуь непредскзуемую хуиту.
>>3144478 int value = random.nextInt(1, 9999); ThreadAllocationLimiter.monitorArrayAllocation(INT, value); // выбрасывает ошибку если не хватает памяти int[] new = new int[value];
>>3144483 Говорю, можно придумать множество способов обдурить твою систему. Подсовывать ей минусовые занчения, чтобы уходить в плюс, например, делать стримы, когда ты не сможешь впендюрится между или тип узнать. Ну или делать аллокации объектов, размер которых ты просто не сможешь подсчитать.
Блять, вот дали человеку инструмент, который легко может ограничить потребление любых ресурсов, нееет дай я свой велосипед напишу. Хотя нет, придумаю, до реализации этот кал никогда не дойдет.
>>3144419 >Именно поэтому вайтлист, а не блеклист. 1. И как ты это себе представляешь? Сам руками отсмотреть весь JDK и определить безопасные методы? Или пользователи должны тебя упрашивать разрешить вызывать очередной метод? 2. Где гарантия что ты не проебешься и не разрешишь метод который не надо? 3. Как будешь защищаться от OOM?
>>3144434 >Я не делаю ничего, просто размышляю. Все эти полгода был занят более важными вещами. Лучше бы анус дрочил.
>>3144495 > Подсовывать ей минусовые занчения Фактически операция new int(-100) потратит 0 байт оперативной памяти (если перехватить ошибку инициализации массива, в противном случае пользовательский тред вообще умрёт), поэтому надо просто отредактировать аллокатор массивов так чтобы размер памяти увеличивался на Math.max(0, countedBytes);.
> когда ты не сможешь впендюрится между Как я говорил сначала значит, кастомный аллокатор. LimitedAllocator.newArray(INT, Random.nextInt(0, 999));.
> Ну или делать аллокации объектов, размер которых ты просто не сможешь подсчитать Конкретные примеры?
>>3144498 > Еще кстати как варик тебе нахерачить 100500 скобочек "))))))))))))))))))))))))))))))))))))..." чтоб парсер жабовский на колени поставить. ASM работает с байткодом, дебил. Скобочками ты только свой компилятор положишь.
>>3144499 > Или пользователи должны тебя упрашивать разрешить вызывать очередной метод? А как иначе?
> 2. Где гарантия что ты не проебешься и не разрешишь метод который не надо? Гарантии безопасности нет и без запуска пользовательского кода, всегда можно добавить случайно какую-то библиотеку с аналогом log4jshell. Бекапы в любом случае нужны.
>>3144501 >Как я говорил сначала значит, кастомный аллокатор. А ты думаешь там только лимиты? Давай еще предикат разбери, угу угу. >поэтому надо просто И как думаешь, сколько дыр в твоей системе? Заебешься убирать. >Конкретные примеры? Объект A. Или че, ты ручками будешь филды считать? >ASM работает с байткодом Ну т.е. тебе будут байткод высылать? Это еще больше возможностей для вставки херни.
>>3144506 > А ты думаешь там только лимиты? Я на твой скрин не смотрел вообще. LimitedAllocator.newArray(INT, 50) это аналог new int[50] с ограничением. Все вызовы стримов очевидно придётся заменять на вызовы собственных стримов созданных асмом на основе обычных стримов, как и вызовы любых библиотек вообще.
как прилетает куда-то ООМ, проходим по пользовательским тредам и убиваем ожиревшие.
> И как думаешь, сколько дыр в твоей системе? Заебешься убирать. Такая проблема есть везде. Что-то программирование от этого не умерло.
> Объект A. Или че, ты ручками будешь филды считать? Ну да, а что? Один раз же по байткоду придётся пройти. Дальше только LimitedAllocator.newObject(500 /размер высчитанный на этапе обработки/, () -> new A());.
> Это еще больше возможностей для вставки херни. Например?
>>3144510 Бля, мне не нравится, это бесполезный спор, давай ты хоть что-то сделаешь, а потом будешь раскрывать свой рот. Типа у тебя все идеи заруинились еще на этапе остановки потока. А ты вот рассуждаешь, о том как ты там байткод будешь анализировать, никогда его в глаза-то не видев вероятно.
Но у меня более сложная система, поэтому, наверно, буду пробовать ByteBuddy. Еще с Groovy и Clojure не экспериментировал, может окажется проще генерить исходники под их синтаксис.
>>3144553 И каким хуем это что-то сломает? В один прекрасный момент в процессе создания просто создание такого объекта положит пользовательский поток лимитатором.
>>3144546 Насколько я помню, + в стринг пул не ложит ничего. Только константы введённые программистом туда идут. Но даже если ложит, всегда можно заменить это на использование стринг билдера или стринг нью, которые точно ничего не ложат и отлично мониторятся уже описанным концептом лимитатора.
>>3143414 >>3144550 На собесах все равно будут спрашивать про устройство и алгоритмическую сложность HashMap и TreeMap. Некоторая алгоритмическая подготовка все-таки нужна. Я бы советовал освоить дискретную математику, а вот без матана и теории категорий вполне можно обойтись. Мобилки это что, игры? Там нужен поиск пути, физический движок (обработка столкновений), может быть что-то из геометрии и матриц.
>>3144624 > На собесах все равно будут спрашивать про устройство и алгоритмическую сложность HashMap и TreeMap. Некоторая алгоритмическая подготовка все-таки нужна. Это не алгоритмы, а скорее основа оптимизации кода.
>>3144623 >всегда можно заменить это на использование стринг билдера Ну т.е. ты хочешь сделать те оптимизации, которые оракл ни шмогла полностью сделать? Попустись по амбициям. Ну и тогда ты лимитером не сможешь проверять нормально, это ж мутабельная структура. Также в этом примере были анбоксинг и боксинг. Он тоже как не в себя срет памятью.
>>3144630 >Монады - бесполезное говно для аутистов Ты ахуел? Я тебя щас как помещу в IO, будешь знать у меня.
И вообще в теории категорий есть вот такая няшная штука https://en.wikipedia.org/wiki/Kind_(type_theory) Если совсем вкратце, она может на уровне типов различать контейнерные объекты и простые значения. Просто уввву, представь какие паттерн матчинги можно делать~~
>>3144633 > Ну т.е. ты хочешь сделать те оптимизации, которые оракл ни шмогла полностью сделать? Попустись по амбициям. Не понял, что я собираюсь сделать? Я сказал лишь заменить str1 + str2 на использование стринг билдера если там какой-то пиздец в байткоде который не является классическим new.
> Ну и тогда ты лимитером не сможешь проверять нормально, это ж мутабельная структура. Чем мешает?
> Также в этом примере были анбоксинг и боксинг. Он тоже как не в себя срет памятью. Ну и пусть срёт, мне-то то? Те же самые new же остаются, на которые будет навешан лимитатор.
>>3144646 > Я сказал лишь заменить str1 + str2 на использование стринг билдера Ну тк блять. Я и говорю, что это оптимизация, которую оракл не полностью сделали. Значит там есть нетривиальные случаи, в которые лезть себе дороже. >Те же самые new же остаются Тут нет new.
>>3144640 Лямбды и замыкания есть в мейнстримных языках, паттерн-матчинг тоже встречается, а где эти ваши монады? Никому они за пределами хаскеля не нужны. В функциональных языках, которые имеют практичное применение (Erlang, Scala, Rust) также монад нет.
Можно придумать множество математических концепций и основанных на них ЯП, но практика критерий истины. Вот, например, Пролог, не смотря на весь хайп, оказался не нужен и тихо вымер. Настоящая математика должна оперировать с моделями из реального мира.
Знаете ли Вы, что до поражения Германии во Второй Мировой, было два вида математики, - арийская и еврейская, - названные так по национальности своих сторонников?
Арийская Математика брала пример с естественных наук, склонялась к эмпирицизму, конечности и познаваемости мира, и работала исключительно c объектами, которые можно построить физически (например, в памяти ЭВМ или на бумаге).
Еврейская Математика же слоняется к религиозной абстракции и казуистике: всеохватывающей бесконечности, множествам, и порождаемым ими апориям. Так Еврейская Математика постулирует, что можно удвоить объект, путём перекладывания его частей, пространство делимо на "бесконечно малые", а для любого числа, Бог может создать большее число (аксиома о бесконечности).
Основатель Еврейской Математики, Гидеон Кантор, писал, что работает с "Абсолютом - непознаваемым человеком Актус Пьюриссимус, именуемым многими Богом". Примечательно, что Кантор окончил свою жизнь в психиатрической лечебнице, однако дело Кантора поддержали сионистские организации и католическая церковь, доведя до того, что сознательные германские студенты и профессора протестовали, требуя убрать еврейскую заразу из ВУЗов.
После войны, евреи сделали все возможное, чтобы уничтожить Арийскую Математику, удалив ее сторонников и подменив ее Теорией Множеств - центральной опорой Еврейской Математики. Так основатель интуиционизма, Лёйтзен Брауэр, подвергся изоляции, а результаты Русских и Английских финитистов умалчивались и не получили распространения. В русской истории от рук евреев пострадали математики Егоров (умер в гулаге), Лузин (подвергся травле и был отстранен), Флоренский (расстрелян), Есенин-Вольпин (репрессирован).
Сегодня математика стала еврейской даже по-цвету. Государства поддерживают так называемую "анти-расистскую математику", требующую например использовать еврейские имена в примерах и задачках, рассказывая при этом о великом "вкладе" еврейства в развитие математики.
Евреи, занимающиеся математикой, предпочитают всё специфическое-эльфийское. Причём презирают тех, кто занимается вещами, имеющими практическое применение. Поэтому в Советском Союзе вышел закон, по-которому в ВУЗах должно учиться евреев пропорционально их населению. Лишних отчисляли. Преподаватели евреи на мехмате в знак протеста ушли из университета и образовали НМУ (Независимый Московский Университет). Отсюда и название в мехматянском простонародье ``еврейская секта''.
Еврейские дети в СССР часто учились отдельное от детей гоев, в специальных элитных школах. Одной такой была Московская 57-й спецшкола, ученики которой не без оснований называют себя "пятидесятисемитами". Там часто преподавали выдающиеся преподаватели с мехмата.
В основании математики последнего столетия лежит знаменитая теория множеств Георга Кантора. Если вы откроете большую часть современных серьезных учебников математического и функционального анализа или топологии, или теории вероятности, то в начале почти наверняка увидите экскурс в теорию множеств. Почти вся современная математическая литература написана на теоретико-множественном языке. Камень теории множеств лежит в основании грандиозного здания современной науки.
Но в самом сердце этой самой фундаментальной вроде бы теории, лежащей в основе "царицы наук", почти сразу после ее создания были обнаружены очень серьезные парадоксы и проблемы, не преодоленные до сих пор. Уже сто лет с тех пор математика находится в состоянии перманентного кризиса, который остро воспринимается самыми выдающимися учеными. Великий немецкий математик Герман Вейль писал по этому поводу: "Мы менее чем когда-либо уверены в незыблемости наиболее глубоких оснований логики и математики. Как у всех и всего в мире, сегодня у нас есть свой кризис".
Математика говорит, что у шпекеровой последовательности есть предел? Говорит. Практика говорит, что его нет? Тоже говорит. Математика говорит, что апельсин можно удвоить путём перекладывания его частей? Говорит. Удалось кому-нибудь с новозаветных времён повторить эту процедуру? Наблюдения раз за разом показывают, что при такого рода операциях закон сохранения вещества неукоснительно соблюдается. Математика предсказывает наличие в бесконечномерном гильбертовом пространстве базиса Гамеля. Наблюдать оный пока вообще никому не удалось. Так что математика - именно лженаука, и никак иначе.
Именно уверенность в нематериальности математических объектов влечёт за собой веру в возможность "приближённых" вычислений (что чушь - вычисления бывают либо точные, либо неверные). Да, самолёты летают и при засилье Теории Множеств. Но если бы математика была конструктивной, они летали бы лучше, потому что конструкторы не забивали бы себе голову теоретико-множественным мусором, на практике бесполезным и дезориентирующим.
Аксиомы имеют смысл только тогда, когда они выражают свойства объективно существующих предметов. Так, если мы введём аксиому "на каждой руке человека содержится 3.1415… пальцев" и построим на базе этой аксиомы формальную теорию, то положения этой теории будут бессмысленны и даже вредны.
>>3144670 Раст вообще не фп язык. На счет скалы.. https://www.javadoc.io/doc/org.typelevel/cats-docs_2.13/latest/cats/Monad.html Про эрланг хз, в любом случае монада это всего лишь очень абстрактный интерфейс, реализация которого есть.. Только не сильно удивляйся... в жабе. И я не очень понимаю, почему ты про монады начал... Теория категорий вообще не про них. Это всего лишь маленькая часть. Я вот тебе kind-ы скинул, прочитал хоть?
>>3144623 >В один прекрасный момент в процессе создания просто создание такого объекта положит пользовательский поток лимитатором. Как твой хуетатор будет считать сколько зааллоцировал в байтах поток, и сколько из этого объема live set?
>>3144837 В джаве, императивном языке где нет do-нотации, пользы от того что это монады (что кстати не совсем правда, но похуй) мало.
>>3144670 Блять, что за шизу я щас тока что прочитал... Один абзац про монады, разбавленный полотнищем отборной мкаксимально ебанутой демагогии. Ты че - фрик?
>В функциональных языках, которые имеют практичное применение (Erlang, Scala, Rust) также монад нет.
>>3145024 >>3145090 Ну я кстати попробовал индентичные программы написать на жабке и хаскеле. Знаете, сахарок не помешал бы... Хотя интересно, этим вообще кто-то пользуется...
>>3144943 У тебя там пук-среньк, а не объяснение. Сколько занимает весь объект с графом зависимостей не понять пока все зависимости не будут инициализированы. Если считать без них, то https://pastebin.com/FpjLXmEP объект будет header + 40 байт. Перехватывать все new можно, но внезапно некоторые классы из коры имеют интризики которые заменяют new на нативный код. Трэд аллокейшен не учитывает сколько отправится в мусор.
В целом это пустой разговор. Напишешь код - обоссым и докажем, что ты облажался по полной, а так тебе доказывать бесполезно, ты слишком тупой.
>>3145103 >если вместо Optional возвращать nullable значения Чет мне не кажется, что станет сильно проще. Это или ручками придется проверять/оборачивать в опшионал. Хотя мб я не понял идею, можешь продемоснтрировать, елси не против, вот код: https://pastebin.com/qg3EN02t
>>3145110 > из коры имеют интризики которые заменяют new на нативный код. АСМ, ещё раз, работает поверх байткода. Не поверх исходного кода и не поверх того что жид высрет.
>>3145110 > У тебя там пук-среньк, а не объяснение. Сколько занимает весь объект с графом зависимостей не понять пока все зависимости не будут инициализированы. Тебе ещё раз повторить что это и не нужно и если объект слишком жирный будет вылет в процессе его инициализации?
>>3145181 А в чем у го киллерфича? >>3145178 Ни, не оч идея. У reduce тип хуевый, например foldr могет свернуть во что-то другое, а редьюс нет. Можешь сам попробовать впрочем.
>>3145192 А это ДРУГОЕ, причем у ГО-сектантов - это нормальная и постоянная практика абсолютно. ГЦ джаве - тормознуто и медленно, но в го - это перформанс и удобство Джава занимает 300 МБ джарник - фу, но скомпиленый го бинарник 100+ МБ - это совсем другое, только выиграли! Хайлевельные фреймворки на го - это уверенность, перформанс, удобство, но спринг - это фу, блоатваре и легаси. Компиляция - это круто, но ГраальВМ для джавы - это фигня Язык с набром фич как у бейсика - это круто, го "не пытается быть умным", "вместо новых фич - просто напиши больше кода!", но когда чего-то нехватает у джавы, при том что фич-то в ней больше чем в го начиная наверное с Java 1.4 - так это язык "невыразительный", "скучный", "многословный". Тот код, который в джаве считается легаси-лапшой, в го это уже свободный от лишних абстракций и интуитивно понятный! А такие переобувки постоянно происходят, когда гоферы рассказывают про преимущества го
>>3145208 >Хайлевельные фреймворки на го - это уверенность, перформанс, удобство Вот это как раз наоборот, насколько я знаю. У них там ни одного вменяемого фреймворка нет, только либы.
>>3145213 Ноуп. Я тоже так раньше считал, но в целом и общем спринг раздает говна и причем хорошо. Единственная как по мне его проблема это монстроподобная конфигурация и достаточно болезненный процесс миграции.
>>3145213 Ну не знаю, у меня чистый спринг бут на домашней машине стартует за 4 секунды. У баелдунга в бенчмарке за 2 https://www.baeldung.com/spring-boot-vs-quarkus Для большинства применений это норм, не скорость света конечно, но и не тормозная хуйня. Тем более с учетом того, что например в микросервисах, где так важен этот стартап тайм, скейлинг в основном происходит через rolling update стратегию, то есть на все время старта еще будут живые сервисы, принимающие траффик.
>>3145213 Наверное само основном что может вызывать проблемы - это неравномерная нагрузка, сочетаемая с маленькими лимитами пода. Т.к. на запуске спринг резко требует очень большое количество ресурсов, а потом - практически ничего, то тут либо ставить большие лимиты и держать впустую вычислительную мощность 99% времени, либо ставить маленькие лимиты и тогда старт будет ужасно долгим.
>>3145171 >Тебе ещё раз повторить что это и не нужно и если объект слишком жирный будет вылет в процессе его инициализации? Ты слишком тупой, чтобы понять что тебе пишут. ВНЕЗАПНО, инициализация это просто вызов метода, Никак не отличимый от любого другого. Ты можешь вообще всю логику программы в new засунуть. У тебя просто вызывается метод за методом, и что-то там аллоцируется. Если мерять все аллокации то свалится код который аллоцирует много временных объектов и поэтому надо понять, размер live set.
При этом ты достаточно умный, чтобы понять что идея говно полное и даже не пытаешься её реализовать. Потому что понимаешь, что ты обязательно обосрешся.
>>3145504 >>то есть на все время старта еще будут живые сервисы, принимающие траффик. Скейлинг это не про апдейт, а как при живых 10 сервисах поднять еще 100 дополнительных, чтоб переварить внезапный трафик. Это проблемы облакодебилов с дорогущими тарифами и в РФ не особо актуально.
>>3145526 >Это проблемы облакодебилов с дорогущими тарифами и в РФ не особо актуально Это кто там крякает? Кубернетисодебил, ты? И чё ты скажешь что ку-ку-кук-бернетис дешевле облаков? Да ладно?
1) Используют ли сейчас java для создания приложений для десктопа? 2) не будет ли совсем плохо, если графический интерфейс будет реализован через c++/qt посредством нативных методов?
>>3145553 >2) не будет ли совсем плохо, если графический интерфейс будет реализован через c++/qt посредством нативных методов? Уже есть SWT, там именно такой подход. Ну только внизу не qt, а нативные компоненты.
>>3145553 >1) Используют ли сейчас java для создания приложений для десктопа? Да, ~75% пользователей ИДЕ сидит на джавовском UI. Для приложений на основе эклипса есть целый раздел на вики https://en.wikipedia.org/wiki/List_of_Eclipse-based_software Arduino IDE ( и его родитель Processing IDE ) - все джава. Ну интеллиджи ты наверное знаешь.
>>3145553 >2) не будет ли совсем плохо, если графический интерфейс будет реализован через c++/qt посредством нативных методов? ну как сказать, это просто излишняя сложность. Если уж хочешь QT - пиши все на QT. Если хочешь Java - пиши на свинге. Если можешь обойтись без интеропа - обходись, так везде и всегда.
>>3145208 В джаву 23, кстати, завозят генеративный згц. Анало говнет ни в одном другом языке. Помнится мне как гоферы постили как у них с каждой обновой паузы гц становились всё меньше и меньше, так эти паузы даже самого последнего обновления го даже рядом не стояли с згц даже самого первого образца. А теперь ещё и згц избавляется от своей главной проблемы — не самой высокой пропускной способности.
>>3145525 > ВНЕЗАПНО, инициализация это просто вызов метода, Угу, а сама jvm, прочитав байткод, в котором нет информации о том, когда аллоцировать, а когда нет, с божьей помощью аллокацию производит. Что-нибудь по делу вообще высрешь?
> Ты слишком тупой, чтобы понять что тебе пишут. > При этом ты достаточно умный, чтобы понять что идея говно полное и даже не пытаешься её реализовать. Потому что понимаешь, что ты обязательно обосрешся. А, ну понял, не высрешь. Слив принят.
>>3145489 Если тебе чисто нехитрую форму наклепать без всякого охуения - свинг бери. Тупо универсальнее. Чтобы все остальное работало - надо тягать свои либы под разные системы и битности. А свинг тупо работает абсолютно везде где есть JRE.
>>3146014 >Угу, а сама jvm, прочитав байткод, в котором нет информации о том, когда аллоцировать, а когда нет, с божьей помощью аллокацию производит. Ты просто тупой и не понимаешь простейших вещей. JVM не надо понимать сколько займет тот или иной объект после полной инициализации. Она просто выделяет память и собирает мусор, а когда память заканчивается кидает ООМ. Тебе же надо понять сколько займут живые объекты созданные потоком, а это совсем другая задача.
>А, ну понял, не высрешь. Слив принят. Пиздабол, ты уже который тред засираешь своей шизой, и при этом не написал ни строчки говнокода.
>>3146295 >Приблизительно оценить достаточно легко даже на этапе компиляции/обработки, ещё раз. Ну так давай, показывай код! Накидаем тебе хуёв полную панамку.
Аноны, дайте ссылки на нормальные курсы или workshop-ы по профилированнию Java приложений. Интересует поиск утечек памяти, поиск bottleneck и вот это вот всё.
>>3147912 В чем вообще сакральный смысл использования кортежей? Я же правильно понимаю, что вы про это.. https://en.cppreference.com/w/cpp/utility/pair Типааа, я даже в cpp это говно не юзаю, поскольку ты стираешь инфорамацию, а че ты там в first положил, а че в second. Проще уж объект создать.
>>3147939 >вернуть несколько значений из метода Боже, какие же шарподауны дегенераты. Пока им не завезут конкретную синтаксическую конструкцию под конкретную задачу даже учитывая что эту конструкцию можно заменить простым классом/методом они не начнут программировать. Воистину необучаемое племя.
>>3147939 >Вернуть несколько значений из метода. Опять же, объект. >Составной ключ для хэшмэпа. Че? >С деконструкцией можно делать своп (а, б) = (б, а) Звучит бесполезно, если честно.
Кстати, а у вас в шарпике есть такая няша как zip/unzip? А, ну и возможность работать с кортежами через pattern matching, ну т.е. вот в методе напрямую именовать fst и snd, как вот у меня в начале x и y сделан.
>>3147809 Дебилизм какой-то. Продвинутые системы сборки потому и используют блядь потому что им нужны продвинутые фичи, а не простота. Вот облегчили бы как-нибудь архетипы мавена (идея хорошая, но времени всё равно много тратится), вот это было бы дело. А этот блдь это какое то бешенство с жиру.
>>3147928 Ни в чем, кроме охуения от использования математически концептов в програмировании (туда же монады, комбинаторы, каррирование и т.д. и т.п.) >Типааа, я даже в cpp это говно не юзаю, поскольку ты стираешь инфорамацию, а че ты там в first положил, а че в second. Все так, но так как в джаве этого нет - значит это плохо. Хорошо только когда этого нет в го. Тут понимать надо. Вероятно может быть бенефит в переиспользовании объектов, в меньшем мемори футпринте и т.д. но это всё очень пограничные случаи. Имхо основная плюшка - это деструкция, а она уже в джаве есть, да и то это просто сахарок
>>3147957 >>Вернуть несколько значений из метода. >Опять же, объект. Это надо класс декларировать. Бойлерплейт, стало быть. >>Составной ключ для хэшмэпа. >Че? Капчё. Например, хэшмэп шахматных фигур. Координаты - ключ, фигура - значение.
>Кстати, а у вас в шарпике есть такая няша как zip/unzip? Zip есть. Прямо так и называется. Unzip через SelectMany (проекция в коллекцию + уплощение) >А, ну и возможность работать с кортежами через pattern matching, ну т.е. вот в методе напрямую именовать fst и snd, как вот у меня в начале x и y сделан. Мне надо бежать, я попозже гляну, что ты имеешь в виду.
>>3148002 >это надо класс декларировать >public record Result(String foo, int bar) { } Ух, как сложно! А ещё сложно тип переменной писатью! Похуй что без декларации и того и другого не понятно, что код делает/возвращает, переходим на динамикодрисню, так короче!
>НО ВИТЬ МОЖНО УПИСАТЬСЯ ВЖЖЖОЛЬ И ПОПЕРЁК КОММЕНТАРИЯМИ, ЧТОБЫ КАЖДЫЙ РАЗ ПРЫГАТЬ В СУРСЫ И ЧИТАТЬ НИ КАПЕЛЬКИ НЕ БОЙЛЕРПЛЕЙТ НАТУРАЛЬНЫЙ ЯЗЫК КОТОРЫЙ ДАЕТ ЗНАТЬ ЧТО ЭТО КОММЕНТАРИИ ВООБЩЕ ЗНАЧАТ!
>>3147957 >А, ну и возможность работать с кортежами через pattern matching, ну т.е. вот в методе напрямую именовать fst и snd, как вот у меня в начале x и y сделан. Не, я так и не понял, что ты имеешь в виду. А ты меня про своп не понял. Смысл не в том, что функцию можно опередить, а в том, что можно написать (a, b) = (b, a), и у тебя значения переменных а и b поменяются местами. Они, конечно, должны быть одного типа.
>>3148018 Если тебя бойлерплейт не смущает, то не ной больше про гетсет.
>>3148013 Да расслабся ты, тут нет перфоманс инжынеров. Смари, можно легко сделать из этой коробки односвязный список. Как думаешь, норм на собесе такое написать?) >>3148036 >что можно написать (a, b) = (b, a), Фу... Мутабельность >Не, я так и не понял, что ты имеешь в виду. Ну вот это, написать прям в методе. Как на пике 2 крч.
>>3148059 Ля, ну не душни. Ты кстати заметил, что он полиморфен? Вот тебе задача, как еба инжинеру, сделай его мономорфным. Проще говоря, чтобы низя было сделать такое [1,"2", 3]
>>3148121 На самом деле в первом случае у тебя получился самый настоящий тайп-сейф тупль с неограниченным количеством значений, я сейчас подумал. Там по идее никаких тайпчеков не будет, всё будет в компайл тайме. Только вернуть его не получится из метода потому что придётся называть весь его состав, вар же не работает для типа возврата.
>>3148242 Там же был и есть Java Persistence Query Language (JPQL) — платформенно-независимый объектно-ориентированный язык запросов, являющийся частью спецификации Java Persistence API (JPA)
https://youtu.be/DucriSA8ukw?si=RJ6GO1VeU64mY7Ym&t=780 а вы видели какие прорывные концепты вводит Zig? Опираясь на обработку ошибок Го, он вводит возможность обрабатывать исключительные ситуации, в том числе неожиданные исключительные ситуации, а так же явным объявлением заставлять программиста обрабатывать ожидаемые ошибки при вызове функции. Это как го, но только еще удобнее!
>>3148254 >он вводит возможность обрабатывать исключительные ситуации, в том числе неожиданные исключительные ситуации Wut? Так это и в жабе можно легко. Ловишь Exception и сидишь пукаешь что там. >а так же явным объявлением заставлять программиста обрабатывать ожидаемые ошибки при вызове функции Wut^2? Изобрели checked exceptions? Ну единственное что там можно типа swith-case сделать по коду ошибки.
>>3148246 хуй знает чем ты читаешь. Там написаны сопли и эмоции отдельного пориджа, неосилившего типы языка. Jooq он там никак не выделяет на фоне остальных построителей запросов.
Как вкатиться в spring? Смотрел letscode, но вроде всё уже устарело и как то не особо понятно "зачем он это делает, почему" Опыт в java, kotlin есть, нужен только спринг (в т.ч. спринг микросервисы и спринг реактив)
>>3148048 >тут нет перформанс инженеров Не был бы я перформанс инженером, я бы не задумался на автомате о том, что ты выдавил низкопроизводительный кал.
>>3148291 Знакомо? Преждевременная оптимизация — корень всех зол?
Так вот, у меня цель понять границы exhaustive у паттернов, а не написание эффективного листа. Скажу так, уже писал - это скучно. Так что, вот лучше доебуйся до коллег использующих спринг.
>>3148737 Нууу, в любом случае мой реальный код ты не видел... По крайней мере O(n^2), когда можно линейный я не делаю. А вот сидеть дрочится, а вдрууг эти instanceof будут боттлнеком, хотя они в любом нормальном equals есть, может и сравнения не делать в таком случае, хули нет. Вот короче будут, тогда и приходите..)
>>3148262 >>Опыт в java, kotlin есть, нужен только спринг Это где ты работал с джавой, но без спринга? Я такое конечно встречал в вакансиях, но там всегда какой нибудь велосипед со вкусом спринга с аннотациями идентичными натуральным.
У чела в оригинале хаскель. Он ничего там не мутирует, просто делает новый кортеж из старого путем перестановки, и попутно флюродросит на паттерн матчинг риальных пацанов, а-не-вот-это-вот-недоразумение-джавовое. Есть такая порода разрабов, которые вроде неглупые ребята - любят новые штуки изучать, самообразовываться, но никак смириться не могут что мир несовершенен, джава - не хаскель, никогда им не будет, и покодить декларативно в чистом функциональном стиле им на проде врядли когда либо доведется (ничего против хаскеля и ФП не имею, но мир устроен так, а не иначе, сорян).
Пройдет свои юношеские пять стадий принятия и остепенится.
Как быстро вкатится в Java ? Всё сижу на синтаксисах в JavaRush. Сложность задач там очень плавающая, и я заметил на решение задач можно тратить по несколько дней, так никуда и не продвигать. Иногда забиваю болт на задачи и изаю GPT. Хотя все равно в голове ощущение топтания на месте. При этом слышал много историй как с нуля люди вкатывались за после полугода обучения и вполне успешно прогают.
>>3150203 >Как быстро вкатится в Java ? Писать много реальных проектов.
>можно тратить по несколько дней, так никуда и не продвигать Должно пожаловать в реальное программирование. Да, часто так и происходит. Ты сидишь на какой-то мелкой хреновиной и несколько дней думаешь.
>>3150231 > Должно пожаловать в реальное программирование. Да, часто так и происходит. Ты сидишь на какой-то мелкой хреновиной и несколько дней думаешь. Либо у меня задачи какие-то неправильные, либо ты тупой. Если меня что-то в программировании и блокирует, так это баги, но в последнее время и они имеют свойство разрешаться за несколько часов.
Так смешно, java-пидоры все радуются своему спрингу 22 и новым костылям. Такие древние технологии ещё на asp net 5 версии были из коробки. Какие же джависты убогие
>>3150826 Binding нахуй правильно, это сложная тема. А вот парсинг со StAX-апи для чтения был бы к месту, мне кажется. Поверх уже можно все что угодно воротить. Но я уже отказался от этой идеи, название, которое я хотел использовать, уже занято.
>>3150851 >А вот парсинг со -апи для чтения был бы к месту, мне кажется. Поверх уже можно все что угодно воротить. Ты много видел парсинга JSON хотя бы в JsonObject? Сейчас 99% это парсинг в некий DTO. Ебаться с StAX никто не хочет.
>>3141541 https://github.com/javalin/javalin - вот что больше всего подходит под твоё описание, предельно минималистичный фреймворк, никаких конфигов, 7.3k звёзд , вся либа 760кб, просто в main методе создаёшь сервак и вперед
>>3151115 Да похуй на питон, ты в Java много парсинга в Map видел? У тебя все современные библиотеки сразу предлагают парсть в DTO. Желающих ебаться с Map - нет.
Допустим у меня есть класс A, класс B, который расширяет класс A, и класс A содержит puclic/protected поле field(пусть это будет штука типа Integer). Теперь сам вопрос: можно ли сделать расширение класса B в виде класса C так, чтобы field уже имел другой тип? Нет ли аналогии @Override для полей?
>>3151392 можно через дженерики легко https://pastebin.com/awAwv1sg >аналогии @Override для полей если попробовать объявить в дочке поле с тем же именем, то в супере оно не затронется. гугли динамическое связывание.
>>3151392 Вьеби логики. Посмотри на твой расклад глазами коллера и сразу поймешь, почему такое не просто не реализовано - оно невозможно и противоречит здравому смыслу.
У тебя B - наследник A. Следовательно, B может быть подставлен аргументом в любой метод, где агрументом ожидается A. А теперь ответь на вопрос - что прикажешь делать нижеследующему методу, если вызвать его с аргументами типа B (или C extends B, неважно), у которых field больше не Integer?
Integer sum(A a, A a2) { return a.field + b.field; }
Ищу готовое решение для фильтрования нецензурной лексики(замены части символов на звездочки или что-нибудь такое) в русскоязычном тексте. Чтобы подключил двумя строками коробочное решение и забыл. Подскажи, а?
>>3152462 Не коробочное решение(нет словаря), с кучей ложных срабатываний. Например, что останется от строки "Застрахуй команду корабля со скипидаром" после такой фильтрации? Лучше варианты есть?
>>3152677 Молодец! А по практике - ну собственно только практикой это и решается. Пили проект, где сам вручную обрабатываешь общие данные в несколько потоков, попытайся продумать какие проблемы могут возникнуть из-за гонок доступа к данным. Посмотри от чего защищают синхронайзеды, сымитируй, посмотри чем они плохи, как можно улучшить. Посмотри от чего защищают локи, волатайлы, атомики и попытайся сымитировать эту ситуацию. И так далее.
>>3152688 хуйню какую-то насоветовал, даже jcstress не упомянул. впрочем многопоток крайне редко встречается, имею ввиду, что этим репозитории занимаются. К примеру, вообще не всем очевидно, что простое чтение volatile обеспечивает ровно те же гараниии по видимости, что и лока.
>>3152677 >а по сабжу, как анон учился использовать многопток?
Хуй знат. Совет, который дадут 90% людей (в целом годный), это java concurrency in practice. Лично я вдовесок знаю неплохой курс заточенный под конкретно многопоточку джавы. Все вышеперечисленное поможет проходить собесы, но все же реальное понимание приходит тогда, когда выпадает решить какую то реальную практическую задачу. И вот с этим сложно. Редко выпадает такая возможность.
>>3152616 Анон. ты понимаешь что значит готовое решение? Я не хочу пердолиться с регэкспами, искать справочник матов, дебажить это все, тестировать разные строки, фиксить ебучие "скиПИДАРы" и вот это вот все. Весь интернет решает подобную задачу для своих целей, и что, у всех свои велосипеды? Вы там совсем ебанутые чтоли?
>>3149187 >Он ничего там не мутирует, просто делает новый кортеж из старого путем перестановки (a, b) = (b, a) Вне мутабельных языков не имеет смысла жи. >джава - не хаскель, никогда им не будет Ну нинаю, пока я смотрю, жаба много чего позволяет. Мне женерики все больше и больше нравятся, вот например на пике карринг и композиция сложная. >Пройдет свои юношеские пять стадий принятия и остепенится. Ну хто знает, хто знает. Посмотрим!
>>3153734 Полная противоположность final. Мол может быть любое количество наследников. Хз почему это надо явно указывать, мб там sealed бай дефолт. >>3153714 Можно делать пайплайны функций с любым количеством аргументов же(пик1). Я вот например пиздец как бугуртил, что шарпомухи не додумались у своих делегатов до банальной композиции(пик2). Смысл от этой хуйни ихней мне вообще не ясен после...
>>3153827 Хотя вот еще один пример, где у BiFunction нельзя просто взять и применить andThen, требуется явная лямбда, а значит и указание типов ручками.
Вообще теоретически, на жабе тоже можно сделать функции из составных композиций, как вот видно на хаскеле это j и u, нооо, т.к. переменные не могут содержать полиморфные типы, это невозможно без явного создания методов и вывода типов, впрочем главное, возможность имеется..
>>3153710 Комплитабл фьюче и прочие реактивные стримы - это самое простое что есть в джавовом конкарренси. Если освоил материал из книги - в остальном легко разберешься.
>>3153635 >Вне мутабельных языков не имеет смысла жи.
И тем не менее у тебя там хаскельный ghci в качестве референса.
>на пике карринг и композиция сложная
В карринг я помню джаваны еще на заре выхода восьмерки игрались, когда лямбды со стримами появились. В те времена по рукам еще ходила серия статей с DZone от разочаровавшихся функциональщиков, под заголовком чето типа "Джава - это вам не Хаскель". Найду - запощу: интересное чтиво для своего времени.
Короче - это все игрушки. Пока ты сидишь и дрочишь кошек, оно выглядит перспективно, а как в прод потащишь, быстро прочувствуешь на себе корнер кейсы, где по тебе ебнет и карринг твой, и дженерики.
>>3154578 >на заре выхода восьмерки игрались Блиин, мне тогда и 10-то не было. > а как в прод потащишь Хмм, ну мокито по крайней мере много всякой магии женериковой взяло. Особенно мне нравица coerce, типаа когда return тайп определяется по женерику, это все настолько няшно, что будто дслка. В любом случае я пока не работаю, так что лучшее время всякую всячину поизучать. >Найду - запощу: интересное чтиво для своего времени. Оки, можно будет перепосчивать, как с тюринг полными женериками)
>>3154597 >лютый инсайд для его обхода Ну так и пиши так чтобы не было обхода. А не видя сорцов он что не догадается как мат написать? То есть сравнивая веловипеды и опенсорс от комьюнити мы считаем что велосипеды надежнее? Тут же весь смысл как раз в игре в долгую. Комьюнити получает фидбек и фиксит. А через год получает стабильное прогнозируемое решение. Я понимаю что от моих впросов библиотека не появится. Просто грустно чот.
А если серьезно - зря ты так нос воротишь от replaceAll, кмк. Насколько я понимаю, челики, которые решают подобную задачу, дальше замены по блэклисту не особо и заморачиваются (типа - а смысл переусложнять? Все равно без фолс-позитивов решение врядли существует, а так хотя бы просто, понятно и администрируемо). И если че и шарят, то в основном сами блэклисты, типа такого: https://www.myadept.ru/index.php/page/spisok-necenzurnyh-slov-dlja-anti-spama-i-cenzury. Ибо кроме блэклистов там и шарить нечего.
Сап, анонасы, в каком состоянии находится тред, когда джет http-ответа через feign клиент? Running? Этот тред не переиспользуется в момент ожидания, если он на ForkJoinPool крутится?
Пацаны Я лениво вкатываюсь на тестировщика. В процессе обучения легко понял как работают встроенные циклы, многомерные массивы, классы, как писать самому методы и прочие азы. Всякие хелло ворды, калькуляторы, поиск символов в трёхмерных массивах освоил за 2 недели. И чёт мысль засела, мб программистом попробовать стать . Всё, что я написал это прям элементарные вещи или это уже "чуть-чуть" понимаю ? Или не выебываться и идти тостером.
>>3154908 Смотря че конкретно ждет. Если молотит какой то джава-код, то Running. Если ждет ввода-вывода (например, в базу лезет), то скорее всего либо Waiting, либо Timed_Waiting. Если ждет захвата монитора критической секции, то Blocked. На практике наиболее вероятные исходы - второй и третий.
>Этот тред не переиспользуется в момент ожидания, если он на ForkJoinPool крутится?
Если ты просто заменил дефолтный тред пул у сервлетного движка на FJP и с довольным ебалом пошел запросы выполнять, то сорямба - твой план провален, ибо разницы никакой. Чтобы FJP мог выполнять то, для чего он предназначен, и твои таски бить на подтаски, твои таски изначально должны быть разбиваемы. Для этого их надо extendить от RecursiveTask со всеми вытекающими.
>>3154932 Ну мне зимой надо начать искать работу. А про джаву слышал, что её года 2 точно учить нужно. Ну и мне тяжело понять порог входа в программирование. >>3154930 а это я всё написал, чтоб меня хоть примерно сориентироваои насколько это фигня.
>>3154939 Ждет http ввода-вывода, в профилировщике 90% времени треды в статусе Running. Мне тоже кажется, что статус waiting более логичный, может ли быть такое, что профилировщик мне пиздит? При этом cpu-время на фоне реального времени исчезающе мало.
>>3154930 Чел, синтаксис месяц учится. Это самое простое. Больше всего ебани во всяких фреймоврках, кучи кучи спек и спецификаций. Впрочем, даже в простейшем синтаксисе можно засесть надолго, поскольку подводных там до жопы, та же теория типов, алгоритмов и пр. пр.
>>3155004 Месяц? Ну ты наверное гений с iq 150 Мне необходимо было 4 месяца. Но я выкатился и работаю, всё норм. Другие вкатуны также называли 3-4 месяца цифру для самой базы.
>>3155033 Может они под самой базой java core понимали? Синтаксис это кейворды, в основном. Они вон, на одной картинке умещаются. >Мне необходимо было 4 месяца. Хз, лично я никуда не торопился, мне просто было по кайфу, что пограмирование это буквально конструктор детальки для которого безграничны. А еще я чекнул мыло, пиздец я людей заебывал, мде.. Ниче не понменялось, хех....
>>3155116 Формально я тебе соврал маленько, кстати. На самом деле контракт тасок, поддерживающей деление - это ForkJoinTask. RecursiveTask - это одна из каноничных имплементаций контракта.
Впрочем для тебя это ничего не меняет. Если ты кормишь FJP обычными тасками, профита от ворк-стилинга ты не получишь. Он будет вести себя просто как обычный тред пул.
>>3155140 хотя ладно, ты прав. Эта хуйня просто треды плодит, а паралелизм про другое. Тогда можно виртуальные треды использовать, там тоже fjp, нооо у них в этом плане лучше все. Просто RecursiveTask пидец неудобный, особенно учитывая нулевую оптимизацию рекурсии со стороны хот спота и компилера жабы.
>>3155137 Не знаю - ты мне скажи проблема ли это. Ты же спрашивал:
>Этот тред не переиспользуется в момент ожидания, если он на ForkJoinPool крутится?
С нативными тредами двусмысленности быть не может - если он у тебя встал где то на локе или IO, все - он занят и ничего ты с ним особо не сделаешь. Свободен он станет когда доделает таску и запаркуется в тред пул обратно. Соответственно в общем случае если ты хошь его переиспользовать, ты должен сам что то предпринять по этому поводу. FJP за тебя это не сделает и сделать даже в теории не особо может.
Но не то чтобы занятый тред это проблема: нативный тред программы != хардварный тред процессора. Если один тред встанет, процессорное время просто отойдет другому. Пока у тебя небольшое количество тредов, с этим можно жить.
Ну и есть есть лум, ака виртуальные треды. Но это другая история.
>>3155140 И че ты этим пытаешься продемонтсрировать? Ты даже имена тредов не вывел напротив своих сообщений в консоли, чтоб понимать, на каком треду оно вывелось, а уже какие то суждения выдвигаешь. Ну-ка, выведи, удивишься.
>Просто RecursiveTask пидец неудобный, особенно учитывая нулевую оптимизацию рекурсии со стороны хот спота и компилера жабы.
Ты слишком предвзято на вещи смотришь. Вся история вокруг "переиспользования тредов", нравится тебе это или нет, так или иначе связана с отвязыванием флоу от нативных потоков. То есть - вот есть у тебя например нативный поток. Он уходит в waiting/blocked, и в тред-пул не запакован. Все. Он занят. Проблема ли это?
На самом деле - пока тредов мало - не проблема. Нативный тред программы != хардварный тред процессора, скедулер просто отдаст процессорное время runnable треду, и похуй что там у тебя парочка тредов в waiting сидит, ни к чему забивать голову такими мелочами как "переиспользование тредов". Проблемой это становится тогда, когда тредов плодится за несколько тысяч. Тогда накладная нагрузка от такой оравы становится заметна и ощутима, в первую очередь по памяти.
И вот большой вопрос - нахера тебе все это. Как по мне, это вот твое "хачу простаивающий тред переиспользовать просто потому что это кажется логичным" - пустая прихоть, которая не даст тебе ничего кроме пучка геморроя.
>>3155154 >Молодец ~~ >На самом деле - пока тредов мало - не проблема. Ну это-то понятно, просто проблема это тогда, когда их ну тыщ 100. Банально оперативки хватать не будет, да и ос будет наладом дышать.. Энивей виртаульные треды теперь использовать куда проще, чем ебаться с fjp.
>>3155157 >Энивей виртаульные треды теперь использовать куда проще, чем ебаться с fjp С учетом их ограничений - не совсем так. Они по сути ни для чего не предназначены кроме как быстро отреагировать на событие и всё
>>3155186 >Ангуляр >Мысли? Похуй. Что то сайты, что сё сайты. Что свелте сайт. Что рякт сайт. Что ангуляр сайт. Что вью сайт. Мне лично философия ангуляра не близка. Он у меня ассоциируется с искаверканным хтмлом, с этими ебаными ngFor, ngIf, с огромным бандлом и кривым роутингом. Но если тебе по кайфу, то бери и пользуйся.
>>3155271 Круды, формочки, кнопочки генерируются за секунды и одинаковы во всём мире. Модели в мл общитываются месяцами и тут какой-то абстрактный стандартный совет вряд ли подойдет, т.к. каждый случай уникален и требует мастерства. Мльщики - это новые волшебники, повелители машины. К тому же чат гпт будет благодарен своим создателям и не станет их убивать.
>>3155262 Чатгопота не заменит программистов, нет даже предпосылок для этого. А мльщики - ни что иное как новая итерация анальников от айти, ни больше ни меньше.
>>3155157 >Ну это-то понятно, просто проблема это тогда, когда их ну тыщ 100. Банально оперативки хватать не будет, да и ос будет наладом дышать..
Но понимаш в чем дело. Даже когда 100к тредов становится проблемой, постановка задачи меняется не столько в сторону "как нативный тред переиспользовать", сколько в сторону "как бы мне иметь типа параллелизм поверх параллелизма, которым я могу управлять софтварно". То есть - взяв лум, не станешь же ты искать способ переиспользовать виртуальный поток в простое? Ну этож сюр, согласись?
И так со всеми видами зеленой многопоточности. Они все так или иначе сидят на нативных тредах, но задачу свою решают не через переиспользование waiting/blocked тредов (что само по себе оксюморон), а через организацию флоу таким образом, чтобы вместо синхронных блокировок можно было тыркнуть асинхронно, а нативный поток отправить обратно в пул до востребования. Обычно такие фортели не проходят без импакта на девелоперский опыт, поэтому мир зеленых потоков - это мир колбеков, всратых абстракций, смешных флюент интерфейсов, покрашенных функций и/или всяких неочевидных особенностей, ограничений и новых способов ебануть себе в колено, в зависимости от реализации подхода.
>>3155187 Да мне в принципе похуй на какой фронтенд технологии работать, анонче. Просто по моим наблюдениям ангуляр самый популярный. Я вообще год работал на праймфейсес, но этот кал говна использует 1.5 конторы по всему миру.
Почему идея подсвечивает красным методы, сгенерированные ломбоком? Раньше такого не было. Я размечал POJO аннотациями ломбока, включал препроцессоры аннотаций в настройках и все работало. А сейчас сгенерированные методы подсвечены красным, хотя несмотря на это проект компилируется и запускается. Как это исправить?
>>3155559 У тебя должна была выскочить кнопочка при запуске типо врубить препроцессы ломбока или типо того,ну или у тебя действительно не установлен плагин
Твой shitгопота даже бесконечный список (уж молчу про оптимизацию и саму реализацию) под андройд не может сгенерить, приходиться самому пилить, о какой замене идет речь? Пытался 15 раз сгенерить, кстати
>>3156417 Обычный список, не видел никогда чтоль? Вместо постраничного, при скролле списка до конца, отпралялся запрос на сервер за новой партией данных.
>>3156679 скажем типикал для меня ситуация: дочитать комментарии в реддит/ютуб. тк это не паддинг оно не слхраняет где ты остановился. усугубляет ситуацию, если тебе там надо найти что-то конкретное. просто удачи. короче имхо, но это просто неюзабельный кал, который пихают из каргокульта.
>>3157149 Да, потому-что сейчас все пытаются сделать максимально одинаковый и идейно тупой дизайн. Как посмотришь на corporate memphis и сразу хочется закрыть всё
>>3157711 > А обычное программирование всё. Тут бы надо пояснить, что машины не могут создавать новый продукт, а лишь могут переносить свою стоимость по частям на новый продукт. А из этого следует, как минимум то что кто-то должен написать эту машину такой стоимости чтобы её хватило на все продукты которые она произведёт за свой срок жизни.
>>3157714 Так уже. У нас в конторе миддлам сказали писать код с помощью чата гпт для джуновских тасок, а сам набор джунов полностью прекратили. Сейчас вот хотим в новую версию загружать небольшие модули проекта, чтоб они влезли в контекст чата гпт и будем проверять, как она сможет выполнять более абстрактные задачи типа "а добавь вот эту залупу в бизнес-логику".
>>3157774 Звучит как какая-то хуета. Или мои задачи были нихуя не жуновского уровня, раз это говно даже не близко давало решение или я хз. Как бы сказать, кодогенратор в ide и то лучше чем чатгопотоа. Мне кажется на него дрочат только те, кто редактор не осилил.
>>3157827 Как видишь он не работает во всех дитсрах теперь. Да и ставить что-то вне пакетных менеджеров глупость какая-то. Где преимущества не совсем ясно.
>>3157831 Я не знаю чё там у тебя не работает на пердоликсе т.к. сижу на шинде, но могу предположить что у тебя кривые руки потому что если бы на всём линуксе отвалился эффективный аналог мавена для питухона и это не хотели бы фиксить я бы вероятно об этом услышал, но ничего такого не было. > Да и ставить что-то вне пакетных менеджеров глупость какая-то. Где преимущества не совсем ясно. Это и есть пакетный менеджер для питухонских программ.
>>3157840 Ты просто не в курсах за обновления пипа, вот и все. https://veronneau.org/python-311-pip-and-breaking-system-packages.html >Это и есть пакетный менеджер для питухонских программ. Ну мусор т.е.? Примерно на уровне снапа флатпака аппимадж. Бинари хуй знает где, нужно PATH править, не работает без специальных флагов, потенциально может сломать системные пакеты. Я если и буду с этим связываться, то только когда всю систему изолирую от этого говна. В докере/lxd каком-нибудь.
В той же жабе хотя бы maven условный работает только в рамках твоего проекта и не лезет в систему. Правильно делает, ему там не место.
>>3157872 Я не говорил, что он сломался, я сказал, что не работает. Чтобы его заставить работать нужны небезопасные флаги. Ну или шарится в аурах. Мне не нравится не тот ни другой путь, про что я тебе сразу сказал. Корочи пофиг. Речь изначально шла про то, что у комментов в ютубе нет id. Установи эту хрень сам и убедись.
>>3157877 Ну к слову, даже если id и есть, то из-за OAuth2 теперь нихуя не сделать. Там же нужен client-id, по спеке. Т.е. самописный скриптик нихуя не сделает.
>>3157877 > Я не говорил, что он сломался, я сказал, что не работает. Чтобы его заставить работать нужны небезопасные флаги. Ну или шарится в аурах. Мне не нравится не тот ни другой путь, про что я тебе сразу сказал. Проблемы дебилианодебилов.
> Установи эту хрень сам и убедись. Если там их нет, это проблема только этой тулзы. Ютуб сам прекрасно их использует, т.к. без них он бы не смог сам обрабатывать ответы на комменты.
>>3157896 >Ютуб сам прекрасно их использует, Ну возможно они в жс зашиты. А тот обфускации подвергся. В общем остается только страдать... Может в какой-то итерации ютуба сделают ui лучше
>>3157774 >Так уже. У нас в конторе миддлам сказали писать код с помощью чата гпт для джуновских тасок, а сам набор джунов полностью прекратили. Сейчас вот хотим в новую версию загружать небольшие модули проекта, чтоб они влезли в контекст чата гпт и будем проверять, как она сможет выполнять более абстрактные задачи типа "а добавь вот эту залупу в бизнес-логику". Альтман, иди нахуй! У Гугла контекст 1,5 миллиона токенов, лучше этим займись.
>>3158389 Хехехех, а я вам эту статью и приносил кста. И это нихуя не баг, если ты читал статью внимательно. Это то, почему система типов жавы хуева и не затронув святую корову - обратную совместимость, решить это невозможно. Вполне вероятно, вместе с вальгаллой решат. Она же пересматривает систему типов-то. Там вэлью тайпы заносит и прочее. Мб и подтип всех типов как-то ограничат.
>>3158455 Ну там же коллизия двух свойств. Когда дженерики могут выразить слишком многое и когда у нас существует нечто, что подходит куда угодно. Явгое ограничение любых из этих свойств так или иначе должно затронуть обратную совместимость.
Хотя конечно там используются потешные формулировки "возможно", "скорее всего", но там вариантом исправления делают, йоба алгоритм который все проблемные места обнаружит. Раз исправления все еще нет, вряд ли это так просто..
Еще кстати классную статейку для самопроверки нашев, нооо застрял на первом же задании. Как это capture убрать, пиздец я тупой, эх...
>>3158587 Ну дык типичные программисты и писали. От программистов для программистов.
Ты думаешь - почему про разрабов существует отдельная категория анекдотов? Да вот именно поэтому. Потому что мозги у разрабов не как у остальных людей устроены.
>>3158657 ? Вроди не утверждение же. Но мило, что тяк подумал..
Для меня главная проблема вузик окончить, Есть у меня привычка на кучу месяцев заниматься чем-то своим, а потом разгребать долги... Такими темпами точняк в авдеевку. В общем,летом попробую побегать по кабанчикам, мб сюда отпишу.
>>3150203 >Всё сижу на синтаксисах в JavaRush. Ну так ты синтаксис осилил или еще не? Если осилил, попробуй консольное приложение с базой сделать, SQLite - записать, прочитать, обновить.
Приношу в тред очередные проблемы современных языков программирования https://www.youtube.com/watch?v=nGywRGepLQc "Плохая производительность ГЦ, при определенных паттернах аллокации" "- Не ну если у вас структура указателей, каждый из которых тоже указывает на структуру указателей - то это сложно да, как такое обработать сборщику?"
>>3159688 В том, что в жабке практически любая программа начиная от нескольких классов - это структура с указателями на структуры указателей, и как-то даже подумать даже никто не мог что это какая-то проблема. Уж какие там деревья структур указателей в стандартном пустом спринг приложении - мама не горюй - и ничего, жабка пролетает не заметив даже. А вот оказывается это проблема.
>>3159776 Ты на практике эти самые БИН ДИФИНИШЫН используешь, просто не знаешь как это называется. Короче заебали нахуй пиздаболы из-за которых теперь так ебут на собесах, теперь из-за них надо зубрить всю эту теоретическую хуйню, чтобы очередному собеседующему не показалось, что тебя надо учить.
Алсо, чё бэкенд деву можно показать в ПОРТФОЛИО? Какое нахуй портфолио, если я всё время педалировал продукт заказчика? Может по-быстрому накидать пару микросервисов с какими нибудь модными кафками эластик сеарч?
Цирк называется - "давайте мы заигнорим развитие языков последних пары десятков лет, а то чет сложнаа, душнаа, юниформити нету... А потом будем по 5 лет трястись над каждой языковой фичей, торговаться, и все равно просремся и затащим туда и эксепшоны, и дженерики, и прочий спринг...".
>>3159911 А по мне закономерное развитие той же жабы. Мол она упрощала cpp, который позволял слишком многое, го же упрощает уже и их: канкаренси слишком сложна, давайте введем горутины, система типов слишком мозговыносящая, давайте даже необходимость параметрического полиморфизма уберем, оставив алгебраические типы данных и тд и тп.
Впрочем мне такой путь не совсем нравится, нехочу, чтобы меня считали идиотом и отбирали выразительность языка. Но и UB, такое. Сложные системы типов, которые просто не будут компилироваться из-за глупых ошибок, по мне самое то. Надо все таки раст попробовать, но меня почему-то он прямо таки отталкивает из-за своей репутации.
>>3159916 А что жаба? В жабе все по честному, никто нихуя и не обещал. Это хомячки себя жабанам противопоставлять любят. Хотя по сути - это гуманитарии, не осиливающие простецкие абстракции обобщенного программирования, и из-за этого добровольно откатившиеся на уровень джавы 1.5, где "понятна, без женериков". Блеяние их гугловых предтеч про идеалы uniformity в сочетании с тем, что происходит в языке, просто смешно.
>>3159924 а ты сам-то хоть раз писал рекурсивные дженерики? или вайлдкарды как-то за рамками контейнеров использовал? Меня просто умиляют, твое утвреждение о простецких абстракциях. Это просто пиздешь.
>>3159913 Когда программист говорит слова "сложнаа", "нечитабельнаа", это не инженер. Это детский лепет школьника, который не понимает интегралы в математике, и поэтому считает, что они не нужны. Ну так от того что он так считает, нужными они быть не перестают. Поэтому когда коммьюнити повзрослеет, гоу неизбежно обрастет абстракциями также как и остальные языки.
Что касается джавового конкарренси - уж кому кому, но не гоферам на него пиздить. За десятилетия джава успела внести свой вклад в развитие многопоточки, щас это уважаемый дед, который даже будучи старым, умудряется удивлять и выкатывает лум, который не красит функции (какое никакое, а новаторство). Джава была первым императивным языком, где появилась такая концепция как "модель памяти", ее потом оттуда спиздили и в плюсы и в прочие места. Софтварные потоки в джаве вообще были со старта, хоть и не предполагалось на тот момент их использовать для хайлоада. Они не прижились и были выпилены нахуй в пользу более тесной интеграции нативных тредов - все кому была нужна в те года зеленая многопоточка сидели на эрланге, а остальным было похуй. А горутины... Пф. Щас есть стопятцот языков с софтварными потоками из коробки, никого этим не удивишь.
>>3159938 Верим >>3159947 Интегралы проще, поскольку они имеют реальное воплощение. Теория типов, это просто сферическая абстракция, её конечно можно попытаться объяснять через кошечек собачек, но это хуита. Вот давай, объясни почему на пике в одном случае все норм, а в другом ошибка. Можешь попытаться через PECS, контейнеры любое другое воплощение - вряд ли выйдет, так или иначе придется лезть в спеку и пытаться вникнуть в незнакомые тебе абстракции. >гоу неизбежно обрастет абстракциями также как и остальные языки Кто спорит-то? Просто они будут проще для восприятия. Это неизбежная тенденция языков - снижать когнитивную сложность. >умудряется удивлять и выкатывает лум, который не красит функции >Щас есть стопятцот языков с софтварными потоками Че сказать-то хотел... Жаба или 100501 или хз
>>3159947 Да и эти истории об упрощательстве... сука, какая все таки инфантильная хрень, как вообще гугл на это бюджетов выделил...
У тебя императивный язык. Литералли ничего нового. Они существуют с полвека и друг на друга все похожи, давным давно проработаны, опробованы и обосраны тучи паттернов и парадигм, и сложился общий портрет таких языков: процедурная либо оопшная парадигма, с развитой чаще всего строгой системой типов (зачастую неявной, с инференсами), ifы/forы, структуры данных (зачастую алгебраические), средства для обобщенного программирования, механизмы обработки исключений и.т.д. - каждый императивный язык в том или ином виде всегда это имеет. С чего вообще гоферы взяли, что они в этом развитии будут нитакусики?
Ну ок, я могу еще понять про конкарренси: действительно, если у вас горутины - единственный каноничный вид конкарренси, вам не нужны такие задроченные артефакты синхронизации как в джаве, в этом есть зерно здравого смысла. Но в остальном то язык вообще ничем не отличается по природе своей от типичного портрета, но нет, "у нас свой путь, мы так видим".
>>3159950 >Меня просто умиляют, твое утвреждение о простецких абстракциях
Не, не хочу. Можешь хуесосить меня после этого и говорить что я слился, но это изначально провальная хуйня: разбирать такие темы как дженерики на такой хуйне как T, C, Бэ, Мэ и прочих оторванных от контекста литералах с твоего пика. Может поэтому дженерики и считаются сложными в изучении - потому что их так вот хуево преподают... В реале суждения о вариантности неразрывно связаны с бизнесовым смыслом дженериковой хуйни, и упарываться в вещи типа рекурсивных дженериков приходится редко. Коллекции - тому пример.
И знаешь что - отчасти ты пожалуй прав, а я действительно зазнался. Обдумав все второй раз, прихожу к выводу, что скорее всего дженерики отмирают в мозгах людей из-за фреймворков типа спринга: спринг побуждает скорее к шаблонному, нежели абстрактному мышлению. Поэтому дженерики и остались только в коллекциях, как самой понятной и расхожей абстракции из оставшихся.
>Просто они будут проще для восприятия
Вот буквально - нет ни единой объективной причины так считать. У раста, к примеру, была причина считать что можно спроектировать язык с автоматическим менеджментом памяти без сборки мусора, потому что за растом изначально стоит идея борроу-чекера. Можно хуесосить модель, но она хотя бы есть. Считать что в гоу модель дженериков будет проще нет ни единой причины, потому что кроме пук-среньк-сложно, и холиваров внутри сообщества о том, нужны ли дженерики вообще, нет ничего. Скорее всего они либо переизобретут их, либо внедрят какой нибудь обрубок типа "дженериков нет, но для коллекций мы сделаем исключение", либо придумают какой нибудь ебанутые костыли в стиле if err != null, или как там у них с эксепшенами получилось в итоге...
Вроде бы давно уже у них эта тягомотина с дженериками длится - они не разродились ли еще ничем?
>>3159960 >И знаешь что - отчасти ты пожалуй прав, а я действительно зазнался. Если не тролишь, няшно что признал. >модель дженериков будет проще В плане будет? Дженерики уже есть. И они проще чем в джаве, поскольку нет всех ковариантов контравариантов. >идея борроу-чекера Семантическая концепция владения вещь прикольная, да и мне тоже больше заходит путь сраста, но хз... Наебывают чувствую, слишком много од этому языку
>>3159970 >И они проще чем в джаве, поскольку нет всех ковариантов контравариантов.
Ну то есть на самом деле проблема была не столько в обобщенном программировании как таковом, столько в понимании вариантности? А разговоров то было, дженерики вобще не нужны...
И все равно это твое "проще" - вкусовщина. Меня вот как то никогда не напрягали вайлдкарты в джаве. Под них и кейс то редко когда находился на практике - обычно так же хватало банальных типопараметров.
>>3159970 > да и мне тоже больше заходит путь сраста
Я не говорил, заходит ли он мне больше или меньше. Просто растовый борроу чекер - адекватный пример основополагающей идеи, лежащей в основе языка. Идеи, которая реально делает этот язык уникальным, достойным (хотя бы попытки) инвестиций в него и созданию коммьюнити вокруг него. У джавы в свое время была такая же основополагающая идея: сделать язык, который write once, run anywhere.
А гоу - это безыдейный язык. Сделать "проще" - не идея: никто намеренно язык сложнее не делает. Гоу - это просто история вокруг одного корпората, который заебался от того, что миллион его сотрудников генерит дохулиард говнокода в разношерстном стиле и обвешивает его жирным тулчейном, и это в масштабах такого корпората мейнтейнить настолько заебисто, что пиздец. Тупо язык-кодстайл одного корпората.
>>3159979 Ну да, вайлдкарды и есть основная сложность в понимании дженериков. Само по себе обобщение - это просто один из видов полиморфизма. Не какая-то сверхуникальная концепция. >обычно так же хватало банальных типопараметров Нуу, из банального это если методу нужен контейнер полиморфный по значению. Условно список любых чисел. Хоть Integer, хоть Double. Без разницы. => List<? extends Number> >>3159983 Ну мб, мне плевать собстенно говоря на го, хз зачем вы его в жабатред тащите.
Мне кажется для понимания вайлдкардов нужно понять их название. Вайлдкард это именно что вайлдкард, а не тип. List<? extends Number> это не такой особый тип, это такая переменная, под которой могут быть записаны разные листы.
Приветствую. Подскажите, если прочитать Spring Boot in Action (6-е издание), то хватит ли мне информации, которая изложена в книге, для написания пет-проектов на Spring? Может быть, нужно читать ещё какие-то книги (параллельно)?
>>3160869 Ты до этого книги вообще не читал, да? Там блять почти каждую главу, ну пук среньк, это выходит за рамки нашей книги, вот отличные на тему и перечисляют список. В общем прочитав одну общую, у тебя будет целый список литературы на многие конкретные темы.
И 6 издание говно, там даже нет описания лайфсакла бинов.
>>3160875 Ещё момент. Подскажите, стоит ли уделять внимание Swing, а также библиотеки AWT? Эти технологии ещё используются в коммерческой разработки? Пропустил этот материал, когда читал Шилдта (10-е издание).
>>3161132 В шапке пишут, что уже на пороге >>3161094 Есть такое. Хочица вэлью тайпики. Еще теплится надежда, что они нуллы хоть немного ограничат. Плюс хотелось бы писать как на пике... Очень хотеца...((
>>3159985 >зачем вы его в жабатред тащите Потому что у джавистов горит с того, что го популярен в бигтехе, и на него из-за хайпа многие переходят. Никому не хочется, чтобы джава потеряла титул короля тырпрайза