мужики, не шарю за многопоточку знаю только раннабл/треад хуйню уровня completablefuture и executor не знаю а самое главное - не разбираюсб в терминологии/бест практис многопоточки thread диспетчер, thread процессор и прочая хуйня - как я должен о ней узнать? где пишут о создании такой хуйни? нахуй нужен тред/раннабл если есть КОРУТИНЫ это же виртуальные потоки, да?
>>3495261 >как я должен о ней узнать? где пишут о создании такой хуйни? Книга с поездами >нахуй нужен тред/раннабл если есть КОРУТИНЫ Джавовые корутины - стекфул. У тебя память быстро забьется и еще баги могут случиться из-за чего встанет вообще все. За корутинами обычно следит сборщик мусора, из-за чего STW мусорщик просто встанет на секунд 5-10 (зависит от нагруженности) и все полетит. Корутины круто, не спорю, но стеклесс круче для серверов. В Котлине такие. Потоки же позволяют тебе самолично дергать ровно столько, сколько надо потоков и ты сам ими управляешь, а не алгоритмы какого-то индуса.
>>3495261 > нахуй нужен тред/раннабл если есть КОРУТИНЫ это же виртуальные потоки, да? Корутины медленные очень и код засоряют. Неудобства ради тормозов.
Жестко крутанул и вкатился в сбер, хочу умереть, нихуя не понима, проект свежий, помимо меня только один бэк. Где бля гайды какие-то и бадди ну как мне вкат то сделать в проект я нихуяяяяяяя не понимаю
Трушные дяди джависты помогите как вкатиться ваще во всю движуху эту взрослую в компаниях, я в конфлуенс захожу и просто глаза рвутся нихуя не понимаю как начать где начать что начать. Просто пока проект стянуть и хуль дальше то. Онбординга вообще никакого нет
>>3498495 Ты попал в классическую корпоративную ситуацию: проект сырой, онбординга ноль, документация — адская каша, команда — 1.5 человека. Это не уникальный случай, а реальность в большом количестве энтерпрайзов. Смотри: 📦 1. Стягивай проект и собирай инфу как агент под прикрытием
Твоя первая задача — узнать структуру проекта, не понимая пока сути. Делай это по слоям: 🔹 Уровень 1: "Что это вообще"
Стянуть проект, собрать, посмотреть README.md, docker-compose.yml, build.gradle, .env — всё, что хоть как-то говорит о системах и зависимостях.
Где backend, где frontend (если есть), как запускается, какие микросервисы (если они есть).
Прогнать проект локально, даже если не работает до конца — важно видеть хоть что-то в логах.
🔹 Уровень 2: "Что он делает"
Есть ли какие-то контроллеры (@RestController, @Controller, @RequestMapping) — начинай смотреть с них.
Что вызывает, как это мапится, где хендлеры, где бизнес-логика (Service слои).
Пройдись от входящего запроса до репозитория.
🧠 2. Конфлуенс — не для чтения, а для копания 🔹 Пробей такие штуки:
Архитектура системы (ищи ключевые слова: архитектура, architecture, диаграммы, структура).
CI/CD пайплайны — ты должен понимать, как твой код попадает на dev/stage/prod.
Контракты API — swagger, postman, openapi — если найдешь, тебе будет сильно легче.
📌 Если конфлуенс кишит сотнями страниц: используй поиск. Ищи по ключам: auth, env, run, deploy, architecture, flow, login, token, jira, dev-url, db. 👤 3. Доставай второго бэка — максимально вежливо, но настойчиво Вот как:
Привет! Я только подключился к проекту, пока немного теряюсь в структуре — можешь, пожалуйста, подсказать, с чего лучше начать? Есть ли какой-то минимальный онбординг, или хотя бы цепочка "от запроса до базы", чтобы врубиться? Очень помогло бы 🙏
— Если нормальный человек — поможет. — Если не отвечает — пробей у тимлида/ментора/пм-а — попроси назначить buddy. 🧩 4. Строй ментальную карту проекта
Параллельно с копанием — веди личный Notion/Obsidian/Markdown. Заноси туда всё, что понял:
Бизнес-фичи и какие модули за что отвечают.
Как логика течёт по слоям.
Названия сервисов, баз, очередей, шины, брокеры.
Это даст тебе контроль над хаосом. 🛠️ 5. Изучай стек по ситуации
Твоя задача — выучить не “всю Джаву”, а именно тот стек, который юзается в этом проекте. Проверь:
Spring Boot (какая версия? webflux или обычный mvc?)
Security (OAuth2? JWT? Keycloak?)
Базы: PostgreSQL? Oracle? Mongo?
Kafka / RabbitMQ?
Swagger / OpenAPI?
Jenkins / Gitlab CI / Argo?
Ищи исходя из того, что реально используется. 💡 6. Формируй цели и план вката
Если тупо сидишь в панике и без задачи — это сожрёт тебя. Запроси тикет. Даже “починить мелкий баг” — это уже зацепка.
Параллельно:
Подними локальное окружение.
Пройди хотя бы один бизнес-флоу: “залогиниться, получить юзера, сохранить заказ”.
Напиши себе схему: что откуда вызывается и куда идёт.
Ты не один. Просто в любой корпоративной системе новичок всегда ощущает себя куском мяса в механизме. Но с правильной разведкой, с чистым вниманием — ты превратишь это месиво в контроль. Удачи.
Аноны. Нужен совет, хочу понять, иду ли я по правильному пути В айти где-то лет 6, успел поработать разрабом бд где-то год в самом начале пути, потом бэкэндером на питоне примерно полгода, потом чот туда-сюда какие-то мувы случились, и вот я уже больше трех лет как системный аналитик. В целом жаловаться не на что, платят хорошо, работаю по банкам. Но есть беда. Большинство коллег по цеху беспросветные долбоебы. А еще мне в этой стезе нахуй скучно. И я решил вспоминать джаву, и вкатываться обратно в разработку. Сейчас пишу пару проектов. Один с кентом, который уже успел дорасти до сеньора, другой самостоятельно. Юзаю там спринг, слушаю кафку, поднимаю контейнеры докера, все как положено.
Как думаете, насколько оно вообще стоит того и сколько времени может уйти на вкатываение обратно в разработку?
Гайз, мои тесты идут уже час. Оптимизировал поднятия контекста, распараллелил через грейдл maxParallelForks, но один хуй интеграционные ьесты, с базой, живыми хттп запросами тормозят пиздец, тестов пара тысяч штук. Отправил пуллреквест и сидишь пердишь, час ci/cd собирается. Джава заебала
>>3498483 >>3498495 Как будто треды по джаве поживее были раньше. Есть кто-нибудь из зеленого банка? Подскажите как лучше вкатуну из галерки ужиться, ЛАЙФХАКИ так называемые. Пока доступы получаю даже с этим гемор какой-то
Всем привет, как-то пару месяцев назад спрашивал тут, могут ли поднять зп со 100к до 160к имея 2.5 года опыта, несмотря на то, что это нормальная зарплата по рынку, но относительная прибывка большая. Ответ - нет, предложили 117к, а при моем запросе в 160 руководитель очень удивился. Искать новую работу?
>>3498994 Да, +60% и хотел. Подумал, вдруг там всё адекватно рассмотрят и будут учитывать не относительный прирост, а итоговую цифру, особенно, учитывая, что я уже ознакомился с инфраструктурой на проекте и более полезен для компании. Странная система, как будто никто не заинтересован в постоянных работниках
>>3499037 Нет, т.к. кубер, микросервисы и кафка используются последние лет 10-15 точно. Где ты был все это время и какие проекты делал, если не умеешь в кубер и кафку?
>>3499254 >Стоит это изучать? изучать не нужно ничего. это бессмысленная трата врмени и сил. если тебе нужна какая-то хуйня на проекте, то смотришь документацию, делаешь и забываешь. если не знаешь какая хуйня тебе нужна - спроси у гопоты или тимлида/архитектора.
пока ты будешь что-то "изучать" оно уже устареет 10 раз. если ты вот прям сейчас не пишешь код с использованием %хуйня-нейм%, то максимум что тебе нужно про %хуйня-нейм% знать - это пять предложений о том что оно делает и когда его стоит применять.
чтоб окончательно дошло - полный референц спрингбута - 200 тысяч строк. вся документация по всем спринговым проектам - овер 1 миллион строк.
изучать это бесполезно и бессмысленно - оно меняется быстрее чем человек способен усваивать информацию.
>>3499654 >полный референц спрингбута - 200 тысяч строк. вся документация по всем спринговым проектам - овер 1 миллион строк. и это чисто официальная документация, без учета тех сотен книг которые про спринг наваяли всякие писаки
>>3499254 Почитай, чтобы знать, что это и какие плюсы/минусы. Изучать прям не надо, разве что интересно. Прожженных волчар не слушай, они свою ссаную сотыгу получают и довольны
>>3499694 >Прожженных волчар не слушай при чем тут волчары? кто помнит corba, jsf, struts, play, toplink, openjpa, soap, osgi, weblogic, ejb2/3, gwt, javafx? а я когда я на всем этом говне писал проекты и убил кучу времени на изучение. нахуя спрашивается?? все эти кафки, докеры, спрингбуты, кубернейтсы, спарки, кварки и прочие хуярки так же через пару-тройку-пятерку лет уйдут в закат. нахуя их изучать? попользовался и забыл.
>>3499731 Так я и говорю, что изучать прям не надо. А почитать, как работает - надо. Чтобы принципы абстрактеые вычленить и в голове уложить. Платоновские фреймворки и тулы, ткскзать
>>3499731 >а я когда я на всем этом говне писал проекты и убил кучу времени на изучение. нахуя спрашивается??
Бля, такая тупая постановка вопроса, что я ебал. "Ыыыыы, убил кучу времени на JavaEE 6 - лучше б телок мацал учил спринг. Молодость проебана, нет пути!"
Я тоже через много чего из этого списка прошел - в джаву вкатывался через OSGi на Карафе, продолжал через Java EE 6. До джавы вообще ебошил скрипты на TCL/TK по солярис 9 на спарках. Не жалею ни на минуту об этом опыте - этот опыт сейчас позволяет мне с ноги открывать двери к кабану и решать с ним вопросики, разьебывать на атомы любое легаси, и не трястись за свое будущее трудоустройство, а перекат на свежие стеки дается легко и непринужденно.
Двачеров же послушаешь - так одна половина уже спилась и сторчалась на фоне депры от нейронок, а вторая голодными глазами в рот заглядывает всем мимокрокам - "что надо учить чтоб 300 наносек/сек платили, ну возьмитя". Трясутся, лишний раз ошибиться боятся... Правильно, хули.
>>3500834 Я сам вкатун ебаный, студентота, сидящая на шее у родителей. Недавно пришёл к похожим мыслям. Возможно это просто копиум и попытка оправдаться в очередной раз, когда вижу статьи с другого айти и графики, где всё рухнум. Типа я нашёл для себя ответ нахуй я вкатываюсь - это лучше чем сидеть, листать двачи и играть в дотку. И хули я теряю? Когда я обосрусь, что меня не позовут ни на один собес и я буду плакаться в тред, в этом всё равно есть плюсы. Я начитался хуйни про то, что мозг как мышца тоже прокачивается, если регулярно учиться. Не знаю, работает ли это с кодингом, сейчас настоящие инженеры и деды из НИИ наверно просто посмеются с того, что я назвал это умственной деятельностью. Так если выстрелит какая-нибудь новая темка, похожая на то, чем было айти в начале 10-х, то начать вкатываться в неё мне будет легче с тем багажом хуйни, чем если бы я вкатывался совсем с нуля после долгого потребления брейнрот калтента. А так, если послушать двачеров, то что бы ты не выбрал - всё не правильно, всё пропало и вообще остаётся только РКН. Хотя периодически я сам начинаю думать так же.
>>3500924 >сейчас настоящие инженеры и деды из НИИ наверно просто посмеются с того, что я назвал это умственной деятельностью.
Да никто из дидов над тобой смеяться и не подумает ни разу. Состоявшемуся человеку нет нужды унижать вкатунов чтобы чувствовать себя хорошо.
Просто ты на дваче. Здесь - не ученые, и не специалисты. Здесь - немодерируемое среднее по палате, с отрицательным отбором. Шизы и неудачники.
>Когда я обосрусь, что меня не позовут ни на один собес и я буду плакаться в тред, в этом всё равно есть плюсы
Еще чего! Нехуй унижаться перед этими хуесосами! Сочуствия и поддержки от контингента, транслирующего рухнум, ты априори не дождешься - это самая подлая и лицемерная когорта хуесосов и пидаров. Не зря их в реале и на адекватных площадках все пиздят и банят.
>>3501095 Обиженный вкатун который по советам мудрой телеграм школоты потратил 5 лет на попытку вката, и случайно зашёв на сосач понявший что просрал 5 лет жизни на хуйню на потеху срынкошколоте, ты?
>>3500924 Ради вката это тупо на самом деле. Но в целом идея развития мышления здравая. На практике это значит срыг не очень полезен тебе будет, хоть и не полностью бесполезен.
>>3501250 моя мечта писать на го как же я люблю этот язык бляяяяяя, хотя джаву я внезапно ПОЛЮБИЛ тоже мимо джава разработчик работаю 1.5 месяца мне нравится
короче нищета ебаная https://ipfs.io/ipfs/bafybeih65no5dklpqfe346wyeiak6wzemv5d7z2ya7nssdgwdz4xrmdu6i/ вот вам активация хуйни качаете архив с сайта, там инструкция есть (запустить батник просто надо, но вы нихуя не справитесь нищеёбы приёбыши на русских тазах) ключ с сайта скопируете чтобы больше не слышал про активацию жидбрейнса ПИДОРЫ ебаные
>>3501308 Это не работает в новых версиях, там запрос на сервер отправляется чтобы проверить, есть у тебя право пользоваться. Поэтому нужна подмена этого сервера.
А если нужна хорошая ide, то я использую netbeans 9. Штука хорошая. Правда не тянет современную джаву в полной мере, но для такого случая у меня есть netbeans 13.
>>3495028 (OP) Сап, жаваноны, в универе учим Java, но в городе толковых вакансий по ней нет, хотя, собственно как и на .NET, везде от 3 лет опыта. Я просто хотел бы поинтересоваться, как по вашему мнению, на чем легче найти первую работку, любую, мне хочется хотя бы полгодика опыта наработать до конца ВУЗа. Спасибо
>>3495028 (OP) Разработка на Spring ТРЕБУЕТ ОБЯЗАТЕЛЬНОГО использования иде от гикбрейнс или эклипс??? Реально? То есть если забрать иде, ни один джава дебил не запустит из консоли свое говно?
>>3503338 Я просто открыл туториал по спрингу и он мне предлогает скачать ide и правой кнопкой мыши блять тыкать, как будто я не разработку учу, а блять в колцентр устролися. Вместо 1 комманды в консоле, мне нахуй надо сидеть и как еблан мышкой че-то тыкать, там совсем ебанулись, любая домохозяйка должна быть способна натыкать конфиг или че??
>>3503243 >Егорка таки прав оказался? Ты же Егорку вообще не слушал, да? Только на даачах читал?
Егорка фанат ООП в 100500 степени! Он в одном докладе затирал что Math.max() это не правильно и надо писать: new Maxer(int, int).getMax() вот это ООПшно.
>>3503363 >Ты же Егорку вообще не слушал, да? Слушал. И стримы его, где он женщин и леваков хуесосит, тоже... >надо писать: new Maxer Он как раз таки против классов с суффиксом -er. Так что это не я плохо слушал.
>>3503368 >И стримы его, где он женщин и леваков хуесосит, тоже... Да у нас тут каловый сомелье.
>Он как раз таки против классов с суффиксом -er. Так что это не я плохо слушал. Ок, слушал ты скурпулезно, но суть нихуя не понял. От того что он назвал класс Max, а не Maxer суть не меняется. Топит он за ООП везде.
у меня на работе такой класс: public abstract class GenericGisUiPrepareExportDataThread<ItemKey extends GenericGisObjectKey, GisExportData extends GenericGisResultObjectData<ItemKey> & GisRequestData<GisExportResultData,ItemKey>, GisExportResultData extends GenericGisResultObjectData<ItemKey>, GridItem extends GenericGisExportGridItem<ItemKey,GisExportData,GisExportResultData>, DataProviderType extends DataProvider<GridItem,SerializablePredicate<GridItem>>> implements Runnable
работаю 1.5 месяца, первая работа ебало моё представили?
>>3503670 public class ProcOrgNsiWorksExportPrepareGridExportDataThread extends GenericGisUiPrepareExportDataThread<GisWorkExportObjectKey, GisRequestNsiWorkExportData, GisRequestWorkExportResultData,ExportWorksGridItem,ListDataProvider<ExportWorksGridItem>> Да, хуёво, ну а чё поделать, приходится ковырять
>>3503343 Увыб но большинство программистов на java используют ide, из-за чего возникают беды с тем, что в тех местах, где нет возможности использовать ide, приходиться танцевать с бубном и экспериментами в силу того, что нет туториалов по работе чего-то в консоли. Поищи про ту же ситуацию с созданием apk в консоли. Найдёшь очень мало примеров(они есть).
>>3504000 >Странно на сосаче упрекать за такое... Это было выражение глубокого уважения.
>Да понял я всё, ты просто пример хуёвый привёл. Math.max() это как раз нормально для Егорки. А вот MaxCalc.getMax() нет. Речь идёт о том, что Егорка топит за ООП как он его понимает, а не против. Поэтому >>3503243 не правда. Да он считает что у окружающих не труъ ООП, но он считает что надо больше ООП, а не меньше.
>>3504111 >Он только в путь своим же принципам противоречит. Похвальная гибкость. Но вообще это не новость, то что он проповедует, на практике не работает.
>>3504122 >Речь идёт о том, что Егорка топит за ООП как он его понимает, а не против. >Да он считает что у окружающих не труъ ООП, но он считает что надо больше ООП, а не меньше.
Ирония в том, что то ООП, за которое он топит - это на самом деле ФП, переложенное на объекты. Да и то - на обьекты оно переложено лишь потому, что в джаве first class citizen это объект, а не функция. В EOланге он этот рудимент благополучно вымыл как будто бы.
Только вот если настоящее ФП - вполне себе чоткая детерминированная чуть ли не математическая залупа, то Elegant Objects - популизм чистой воды. Обьекты - живые существа, не оскорбляйте их, ага. Причем Бугаенко сам это не отрицает - ему тупо в кайф было поджигать жопы на конфах.
>то что он проповедует, на практике не работает.
Отдельные штуки я оттуда черрипикнул. Если отшелушить проповедь и демагогию, кое какой смысл в кое каких отдельных рекомендациях там есть, особенно в ранних... но копаться в говне в поисках жемчужины - удел тех самых особых ценителей, не всем такое заходит.
>>3498927 Пиздуй оттуда лучше после лута годовой, тебя ждет литералли 0 роста по хардам там. Оглянуться не успеешь, а ты уже лоускилл с неприлично большим для джуна "опытом", с которого рофлят на собесах и в комьюнити в целом
>>3506229 я с ковида 3 конторы менял, везде был офис, но никто не гонит туда. У большинства нет своих мест, надо бронировать, что подразумевает, что ты не ходишь каждый день в офис. А вот до ковида даже было уютнее как-то, есть свое место, никто кроме тебя там не сидит, не пердит в кресло >>3506232 В сбере фулл тайм офис? Я то говорил в целом Тогда твоей тейк про ноулайфера точно мимо, все кто ходит в офис, по определению, ноулайферы
>>3506237 >У большинства нет своих мест, надо бронировать, что подразумевает, что ты не ходишь каждый день в офис. В нашей богадельне решили что надо бы загнать гребцов в офис, но при этом надо бы и сэкономить на офисе. В результате родилось гениальное решение: половина команд ходит в понедельники среду, другая половина вторник и четверг, про пятницу надо договариваться с другой командой. В результате и не удалёнка и стола своего в офисе нет, прийти не в свой день сложно.
>>3505955 Я был бы рад хотя бы удержаться щас на месте и не быть уволенным, прошло две недели, первую неделю якобы настраивал окружение и получал доступы, вторую изучал проект. Щас сижу с тасками и нихуя просто сука не понимаю что делать. Коллега нихуя не знает и толком не поможет, документации нет
>>3507649 > Коллега нихуя не знает и толком не поможет, документации нет Воняешь слабостью, волчара. В задачах небось надо копать на тему того как оно все работает. А не просто по подробному ТЗ кодомакакить. Потому задачи и сгрузили на того, кто в собесе говорил что он всё дохуя умеет. Обмазывайся дебагом и вперде, чо.
>>3507649 Ты че, не знаешь корпоративной культуры общения с коллегами(начальник не в счёт)? Кидаю пик чтобы учился. Вполне вероятно что твоего коллегу вы уже заебали, и он просто не хочет тратить на тебя время, тем более что ему за это не платят, а хочет поделать тасочки и позалипать в ютуб. >>3508061 >Обмазывайся дебагом А как понимать проект дебагом? Дебаг он на то и дебаг чтобы баг искать, а понимать проект надо головой, читать код, тыкать живой продукт сам по себе в качестве юзера, собственно заниматься тем на что уже были просраны две недели.
>>3507649 >и не быть уволенным Новичков не увольняют за лоу перфоманс, ты только пришел. То, что от тебя толку около нуля будет первое время, само собой подразумевается.
>Коллега нихуя не знает У тебя же должен быть butt buddy на весь испытательный срок, его и кошмарь.
Не бздо, не ты первый такой, выберешься, как и все до тебя
>>3508112 > как понимать проект дебагом > тыкать живой продукт сам по себе и дебагом смотреть что там происходит, искать точку входа для своей таски. Когда видишь не только код но и данные на каждом этапе выполнения - клубок распутывается сильно быстрее.
>>3508611 быстрее будет просто глянуть в инструменты разработчика и найти ручки, но предварительно имхо стоит просто окинуть взглядом кодовую базу, так будет понятнее, хотя можно и так, но дольше.
>>3503643 для движка это вполне ок. у меня тоже в проекте есть десятистрочные дженерики, но зато благодаря им имплементация классов буквально в несколько строчек, а то и вообще однострочная лямбда.
да и вообще, в яве дженерики няшки, вот в крестах это действительно пиздец.
>>3509332 >He reflected on how computer code originally was written in Assembler and moved to higher levels of abstraction with C and C++, then on to yet higher levels with Java and C#. “And now it’s time to move even higher,” Skrygan said. “So when we write the code, we’ll basically lay out the ontology, the object-oriented architecture, what we have in mind, or have somewhere written in design docs.”
Блять, как же заебал этот перманентный цирк на реальности, ебаный рот...
Этот "уровень выше" всю дорогу существовал в лице декларативных подходов к программированию (в противовес императивным). Тысячи их, целина непаханная - бери да делай, тем более под нейронку, которая скорее всего уже сегодня функциональные строготипизированные абстракции в thinking моде может щелкать как семечки на порядке эффективней говнокода, если ее научить...
Но неееет, мы ж умнее всех, да еще и на хайпе... Давайте в сотый раз переизобретем велосипед, а заодно перепишем в сотый раз под него экосистему... Еще и заебнули то как - "object oriented architecture". Архитектура. Обьектно ориентированная. Пиздец...
Правильно, хули... без нейродроча инвесторов на бабки не прогреешь, а программист любое дерьмо на инструментарии стерпит. Еще и оправдывать его будет, мол "этож инструмеееент - за что его ненавидеть?"
>>3509624 Да щитбрейнс начал скатываться в говно просто. Им корона мозги натерла, возомнили себя Гуглом что может свои языки пилить и опенсорц хуячить при бесконечных бюджетах. А реальность дала им хуем по ебалу. Не удивлюсь если через несколько лет вскод выпнет жыдею из топа во всех стеках, а сами они разделят судьбу борланда.
>>3509646 Самая мякотка в том как гугл провернул их на хую, заставив буквально бесплатно создать для своей платформы и язык и иде. Просто вот за нихуя. Гугломенеджмент наверное охуевает с этих долбоебов.
>>3509332 Кстати котлин иногда это пиздец. Конечно много всякого сахара и тд и тп. Но блять какая скотина придумала эту хуиту с nullable типами? При сопряжении с джава легаси говнами эта хуйня не работает. Сгружаешь в String null - начинает орать как разенное и хуярить стектрейсами. Даже если ты эту хуйню вообще никак не используешь и просто у тебя в дтошке лежит. Не-не-не. Везде надо пройти и проставить ебанный String? и потом обставлять все !!. Серьезно, за год использования я словил ебалом больше NPE чисто из-за разницы в обьявлении чем из-за того что я реально внутрь null полез.
>>3509772 Это у твоей мамаши-шлюхи скил ишью когда тебя рожала ебалом в пол. Я тебе пытаюсь на пальцах обьяснить что куколдская система типов котлина чаще провоцирует NPE на ровном месте, чем я за 10 лет опыта с голой жабой словил.
>>3509822 скуфяра не может в нуллабилити. Это лучшее, что есть в котлине. Если ты не можешь в правильный интероп с джэвой, то это скилл ишью. Пиздец блять, npe у него больше, чем в джаве, где защиты от этого 0, такие клоуны тут сидят, в ахуе
>>3509646 >возомнили себя Гуглом что может свои языки пилить и опенсорц хуячить при бесконечных бюджетах А зачем им запрещать это делать? Пусть пилят, если хотят.
>>3509868 Да конечно запрещать никто не будет, с чего бы - таких дурачков которые бесплатно двигают твою платформу наоборот будут хвалить и говорить что они молодцы. Только по факту вскод отбирает у щитбрэйнса рынок каждый год, и всё идёт к тому что через несколько лет жыдея сдохнет как в свое время ждевелопер, которого она когда-то заменила. Ну с учётом того как по блядски они себя повели после СВО этих баренских подсосов не жалко, чем быстрее сдохнут тем лучше. Да и шансов у них нет, могли бы быть монополистом на шестой части суши и панувать как Яндекс, а вместо этого продались за печеньки как самые тупые хохлы. И сейчас их так же высушат и выебут.
>>3509865 >Это лучшее, что есть в котлине. Нет. Инлайн функции это лучшее. Ну еще return@govno тоже заебись. >Если ты не можешь в правильный интероп с джэвой, то это скилл ишью. Ну а какой правильный? Обмазывать все что взаимодействует с джавакодом в ? и потом ебаться с ?. да ?: ? В джаве нет и небудет уже нуллабилити типов. Ближайшее что смогли высрать это Optional. Поэтому это накладывает пиздоватое поведение именно при взаимодействии с джава кодом. Понятно дело что с нативным проблем вообще никаких.
>>3509975 >Инлайн функции это лучшее от этого пользы вообще около 0, jit и aot и так все умеет делать и tailrec туда же >Ну а какой правильный? использовать @NotNull и @Nullable в джаве. Или по дефолту считать все nullable (потому что там реально может быть null), только зачем ты срешь оператором !!, если не знаешь что там внутри? !! я не знаю вообще когда последний раз использовал, в тестах может
>>3509896 Бля, вот вроде бы анон выше интересный свежий кринж от инфоцыган вывалил, обсирай - не хочу... Так нет, дискуссия опять скатилась в детский траллинг от майко-фанбоев за то, чья корова мычит лучше. Может там еще шарпеи ченить гавкнут, нет?
Правильно вас, двачеров, не хайрят. Я б тоже вам не платил.
Кому вообще в РФ не похуй на судьбу жидбрейнзов? Жидею уже форкнули как минимум два раза (gigaIde, openide) и продолжают накидавать туда своих обвесов (amplicode, gigacode, sourcecraft). И все - бесплатно. А двачерододики до сих пор ультимат ломают, в надежде что тот спринг их научит писать. Интересно, остались ли еще те смешные мамонты, которые ультимат пытаются из РФ оплачивать в обход санкций?
>>3510332 Эту хуйню никто не поддерживает. Даже в иде не работает толком. Да и обмазываться анноташками и пытаться не забыть проставить нотнулл, когда есть котлин или го в 2к25 - моветон
>>3510331 >Интересно, остались ли еще те смешные мамонты, которые ультимат пытаются из РФ оплачивать в обход санкций? ультимат ломается при помощи блокнота и regedit за 30 секунд (буквально). нахуй его вообще покупать? жыдея в принципе хороша, но совсем не так хороша как была 10-15 лет назад (на фоне конкурентов). что сейчас начало бесить - это свистопляска с плагинами и впн. включаешь впн - половина плагинов отваливаются, выключаешь - начинают работать, но отваливается другая половина.
но такой карнавал сейчас везде, увы. половина сайтов не открываются потому что ты из россии, а вторая потому что сайт не в россии.
>>3510435 >Я ломаю датагрип, потому что ничего лучше ещё не сделоли для бд. вот-вот. киллер-фича идеи - это интелли сенце, когда по контрол+пробел видишь все что можно написать дальше. 15 лет назад этого не умел никто, какой-нибудь визуал студио 6 просто показывал выпадающий список из нескольких сотен функций/переменных которые есть в твоем проекте без учета контекста вообще. когда на идею пересел - первые ощущения вау+охуеть, гораздо круче чем от современных копилотов. писать стало удобнее и быстрее в разы.
но сейчас это умеют все, даже не иде, а заменители блокнотов типа атом с плагинами ничем ей не уступают в этом плане. жыдея выезжает чисто на сформированном комьюнити и его привычках и кучке плагинов, удобно же когда все что тебе надо есть в одном приложении. но это очень хрупкая вещь, достаточно чтобы пользователь просто попробовал альтернативу и велик шанс что он уже не вернется
>>3510477 Хз, у меня установлена очень старая идея, которая с вечной лицензией и я не могу ни обновить ее ни обновить плагины т.к. установлена она через тулбокс джетбрейнс и привязана к учетке. Так и пользуюсь старой идейкой...
>>3510477 >но сейчас это умеют все, даже не иде, а заменители блокнотов типа атом с плагинами ничем ей не уступают в этом плане. жыдея выезжает чисто на сформированном комьюнити и его привычках и кучке плагинов, удобно же когда все что тебе надо есть в одном приложении. но это очень хрупкая вещь, достаточно чтобы пользователь просто попробовал альтернативу и велик шанс что он уже не вернется пробовал альтернативы, не, идея всё равно больше может, все эти заменители блокнотов всё равно не учитывают контекст, типы, не умеют в сложный рефакторинг и т.д. разве что кто-то назло маме начнёт жрать вкуснятину и пользоваться алтьтернативами, но тут уж хз
>>3510517 в плане подсказать все что умеет идея умеют все топовые иде. VSCode возможно даже круче идеи в этом плане. эклипс и сборки на его основе типа Spring Tools Suite или RAD на том же уровне, да и вообще не уступал никогда ей, нетбинс чуть попроще и в целом более спартанский.
но правда эклипсом я пользоваться не смог, просто физическое отторжение от его интерфейса и пятикнопочных шорткатов. имхо если бы не уёбищный интерфейс у идеи не было бы шансов против него.
атом/саблим/емакс и т.д. с плагинами конечно все же уступают полноценным IDE но совсем не так критично как 15 лет назад. просто раньше в иде не было автоподсказок вообще, никто не заморачивался, да и рефлекшена не подвезли. по сути ide отличались от блокнота подсветкой синтаксиса и шорткатами для запуска билдовых скриптов.
«Бабуины были потрясены и озадачены программами Java IDE, SunONE и Visual Age. Ни один из бабуинов так и не смог освоить язык программирования Java. Однако большинство бабуинов с лёгкостью освоило язык программирования Visual Basic 3.0. Бабуины смогли самостоятельно менять программные настройки и даже редактировать параметры атрибутов файлов. Некоторые исследователи заявили, что Visual Basic слишком прост для бабуинов. Они настаивают на том, чтобы обезьяны прошли ещё один курс обучения Java-программированию. Однако у большинства бабуинов и шимпанзе любые компоненты Java, по словам учёных, вызывают стресс»
Как оплатить идейку сразу на год? Сервисы посредники дают только оплату на месяц и там цены заоблачные. На сайте джейби месяц 17 долларов или 1360р, а на сайте посредника 2256р...
>>3508306 >У тебя же должен быть butt buddy на весь испытательный срок, его и кошмарь. Не-а, бадди нет, из бэков только я новичок и коллега который не очень открыт к диалогу, +он перейдет временно на другой проект, а я в соло останусь тут
>>3511472 >уточняю вопрос - "эээээ чета хз эээ" и пукает скрином "как у меня должно выглядеть на фронте" >привет >ты тут? >позвоню? >алло! меня слышно? а теперь? сейчас пошарю экран >видно? нет? а теперь? >смотри... когда я кликаю сюда, то получаю такую ошибку >прислать запрос? и лог? >а тут ты что присылаешь? не видно? сейчас, подожди..
Знакомый не знает, что такое интерфейс, но заучил ответы на вопросы, побегал по собесам и вкатился в одну большую компанию в России. И работает уже 3-ий месяц. Ну и как так? Нахуй вы тут байтоёбите, и разбираетесь в кишках спринга?
>>3511828 >Ну и как так? Ну очевидный ответ - чтобы программировать не нужно знать что такое интерфейс или абстрактный класс, О-нотация или как работает сортировка. Но чтобы пройти интервью это нужно, без надувания щёк не получится.
как их еще не засудили за эту хуйню. типо ты платишь деньги, а потом тебе говорят что иди нахуй в данном регионе нихуя не работает, ни апдейтов, ни плагинов, ничего не доступно. тут целый букет статей ГК набегает, а с учетом публичных заявлений руководства жидбрейнса их вообще за оправдание терроризма можно сажать.
Двощ помоги, не собирается проект из мавена, знакомый разраб говорит россия начинает анально огораживаться и дальше будет хуже с тремя буквами, с недавнего времени тоже еле работает, как решаешь? Пробовал сначала на котлин, но там либы еле качались надо для тг бота.
В конце концов, даже если бы дело реально дошло до блокировки централа, найти и настроить российское зеркало - вообще не проблема: https://gitverse.ru/docs/artifactory/registry-mirrors/mvn-mirror/. А корпораты, кто не долбоеб, давно настроили себе кэшей в корпоративных репах.
"Дальше будет хуже с тремя буквами"... Пиздец, как дети малые...
>>3514205 >ютуб втыкаю Выгрузи всю стату с ютюба и посмотри, сколько часов ты потратил на это. Потом прикрути к этому рекомендации, на какие ещё видосы их потратить.
>>3518637 >не зря форкали? абсолютно зря. пока будет доступен ультимат (а он мегадоступен, просто берешь и скачиваешь с сайта, раз в 30 дней повторяешь) все форки пустая трата времени и сил.
>>3518660 Некорректная аналогия, в данном случае пострадавший это покупатель, а в случае с оружием пострадавший тот, кого покупатель этим оружием убьёт.
>>3518664 >Ты реально перекачиваешь каждый месяц это когда можно просто удалять папку с данными аккаунта? Лол. а ты реально всю папку удаляешь с конфигами вместо того чтобы один текстовый файл и запись в реестре удалить? лол.
>>3518674 я не говорил что я ее переустаналвиваю, я говорю что можно раз в месяц переустанавливать и работать дальше. есть пути и проще, но это самый простой и очевидный. пока он доступен все форки идеи - это просто попил бабла в сбере. это реально основная цель, с которой они создавались - это срубить бабла на "импортозамещении". там все мантры и речевки - калька с астралинукса один-в-один. мол мы сделали охуеть какую работу, все-все прям почти переписали, а в реальности изменения уровня сменили логотип и обои.
Челы, подскажите плес, правильно ли я понимаю что первый вариант класса Example не компилируется, потому что T во время стирания типов стирается в Object и, соответственно, переменной num типа Number нельзя просто так присвоить переменную t типа Object без целенаправленного ручного кастования, а второй вариант класса Example компилируется, потому что после стирания типов T стирается в Integer и соответственно в этом случае переменной num типа Number присваивается переменная t типа Integer, что вполне законно и, соответственно, компилятор не ругается. То есть в данном случае всё дело в стирании типов, верно?
>>3518694 Нет. На этапе компиляции стирания типов вообще нет. Стирание типов проявляется только тогда, когда хочешь рефлексию потыкать. Анон выше правильно объяснил.
>>3518702 >в первом случае у тебя голый дженерик, т.е. любой класс. Любой класс нельзя приравнять к Number >>3518703 >Нет. На этапе компиляции стирания типов вообще нет. Стирание типов проявляется только тогда, когда хочешь рефлексию потыкать. Анон выше правильно объяснил.
Ну вот смотрите
Вот допустим у нас в мейне есть такой простой код: ArrayList<Integer> integers = new ArrayList<Integer>(); ArrayList list = integers; //warning ArrayList<Number> numbers = list; //warning
И этот код компилируется, но есть нюанс. Опять таки, компилятор выдаёт 2 варнинга, но главное это второй варнинг. В третьей строчке ArrayList-у Number-ов присваивается ArrayList Object-ов. Ну, то есть, мы в тип Number пытается засунуть Object. И компилятор спокойно компилирует это лишь выдавая предупреждение, что во время выполнения может произойти ошибка. Ну можете сами проверить, вдруг у вас не так, хз.
И, как я понимаю, в случае взаимодействия raw типов с дженериками, компилятор судит о том, что можно, скомпилировать, а что нельзя, именно исходя из стирания типов. То есть компилятор тут не ругается на то, что ArrayList-у Number-ов присваивается ArrayList Object-ов. А почему не ругается? Видимо потому что именно на этапе стирания типов ArrayList<Number> стирается просто в ArrayList и получаем в итоге, что переменной типа ArrayList присваивается переменная типа ArrayList, что верно.
Хз, я просто, исходя из всех этих примеров в своей голове, смог обосновать такое поведение только стиранием типов блин..
>>3518734 Стирание типов тут не первопричина. Задача компилятора - проверить типы, и ругается матом он тогда и только тогда, когда можно однозначно и достоверно проверить, сходятся ли типы данных, или нет.
Просто референсы с сырыми типами - это пережиток Java 5, который вносит ту самую неопределенность. Просто избавиться от них был на тот момент не вариант - это минус обратная совместимость, весь уже написанный код просто пер6естал бы компилироваться. Проверить совместимость с дженериковыми типами для них не особо представляется возможным - как это делать? Ограничивать искусственно приводимость сырых типов к дженериковым (например, запретить тебе присваивать сырой тип к дженериковому) в теории было можно, но на практике это серьезно усложнило бы рефакторинг старого кода.
Пришлось искать компромисс. Таким компромиссом стали варнинги. И подобных компромиссов предостаточно - те же JPMS-автомодули, например. Сейчас статус кво такой, что сырые типы - антипаттерн сам по себе - не забивай себе голову поиском сакрального смысла.
>>3519254 Сейчас будет многобукаф, но текст в целом простой)
>Сейчас статус кво такой, что сырые типы - антипаттерн сам по себе - не забивай себе голову поиском сакрального смысла. Ну всё может быть. И ладно бы если бы шанс столкнутся с этим был крайне мал, но легаси кода довольно много и шанс не такой уж и маленький. Не все же сидят в стартапах и пилят что-то с нуля)
>Стирание типов тут не первопричина. Задача компилятора - проверить типы, и ругается матом он тогда и только тогда, когда можно однозначно и достоверно проверить, сходятся ли типы данных, или нет.
Ну смысл в том, что я и пытаюсь понять, на основе чего компилятор ведёт себя каким-либо образом в случае анализа им взаимодействия raw типов и дженериков. Потому что когда мы присваиваем raw переменной типа Number дженерик переменную типа Т, то в таком случае нельзя однозначно и достоверно проверить, сходятся ли типы данных или нет, потому что если T будет, например, типом Integer, то переменной типа Number можно присвоить переменную типа Integer, но если T будет, например, String, то соответственно переменной типа Number нельзя присвоить переменную типа String. В итоге возникает как раз таки неоднозначная ситуация. Но несмотря на неоднозначность компилятор ругается и не хочет компилировать этот код.
С другой стороны, код из моего поста >>3518734 компилятор спокойно компилирует, да, выдаёт варнинги, но компилирует, хотя в этом примере такая же неоднозначность. То есть в одном случае одну неоднозначность компилятор компилировать отказывается, а другую компилирует)
Я могу привести более дикий пример: ArrayList<Number> numbers = new ArrayList(Arrays.asList("text1", "text2")); Тут можно однозначно сказать, что это нельзя компилировать, потому что это откровенно ошибочно. Тут никакой неоднозначности нет, тут однозначно ошибка. Но компилятор спокойно компилирует этот код, лол.
И я понимаю, что стирание типов это не первопричина, первопричина это желание разрабов реализовать обратную совместимость, чтобы у людей не поламался весь легаси код и им не нужно было переписывать его. Но главное, что я хотел понять, почему компилятор ведёт себя именно так как ведёт. И вот я пытался понять, компилятор определяет что верно, а что не верно, что компилировать, а что нет, на основе именно того, какой код будет после стирания типов или на основе чего-то другого, других причин.
>>3519269 >Потому что когда мы присваиваем raw переменной типа Number дженерик переменную типа Т, то в таком случае нельзя однозначно и достоверно проверить, сходятся ли типы данных или нет, потому что если T будет, например, типом Integer, то переменной типа Number можно присвоить переменную типа Integer, но если T будет, например, String, то соответственно переменной типа Number нельзя присвоить переменную типа String. В итоге возникает как раз таки неоднозначная ситуация.
Если ты здесь говоришь о коде отсюда >>3518694, то в нем как раз нет никакого противоречия. Во втором случае ты не просто присваиваешь намберу T - ты присваиваешь ему T extends Integer. Integer - подтип Number. Следовательно все подтипы Integer являются подтипами Number. Следовательно подстановка разрешена для любого T. Компилятор попросту не даст тебе в качестве T заиспользовать String - это поруинит всю логическую цепочку. (Это работает при условии, что ты сидишь на дженериках и нигде не скатываешься в raw-тайпы - это ситуевина-undefined)
>Тут можно однозначно сказать, что это нельзя компилировать, потому что это откровенно ошибочно. Тут никакой неоднозначности нет, тут однозначно ошибка. Но компилятор спокойно компилирует этот код, лол.
Нет, нельзя. Потому что тип слева - raw type. Все. Ты можешь апеллировать к очевидности, но камон - не многого ли ты хочешь от бездушного алгоритма компиляции?
Так то да, можно было бы усилить анализ, пытаться собирать и анализировать компилятором ветки кода, из которых к тебе идут raw-type-листы, и проверять, что ArrayList слева действительно содержит один тип, а не другой. Запилить эдакий лютый инференс типов... и ждать релиза пятой джавы годами нахуй, получив по итогу компилятор, который работает медленнее скалового на железе того времени.
>>3519307 >Нет, нельзя. Потому что тип слева - raw type. Все. Ты можешь апеллировать к очевидности, но камон - не многого ли ты хочешь от бездушного алгоритма компиляции?
>>3519269 >И ладно бы если бы шанс столкнутся с этим был крайне мал, но легаси кода довольно много и шанс не такой уж и маленький. Не все же сидят в стартапах и пилят что-то с нуля)
Ну, по своему личному опыту могу сказать что шанс встретить такое в 2025м действительно мал. Если у тебя прецедент-контрпример: штош - не повезло.
>>3519307 >Если ты здесь говоришь о коде отсюда >>3518694, то в нем как раз нет никакого противоречия. Не, ты не туда посмотрел. Там на пикче 2 варианта класса Example и я тебе в предыдущем посте написал именно про первый вариант (который на пикче на самом верху), где тип T не экстендится от Integer.
>Нет, нельзя. Потому что тип справа - raw type. Все. Ты можешь апеллировать к очевидности, но камон - не многого ли ты хочешь от бездушного алгоритма компиляции? Слева ArrayList<Number>, справа raw ArrayList. То есть имеет место следующий вид присваивания ArrayList<Number> type = ArrayList type.
В итоге, если всё суммировать и формализовать, то имеем следующее: 1) В первом примере Number type = T type. Имеет место неоднозначность, так как T тип может быть не только Number или его подтипом, но и каким-нибудь String и т.п. Компилятор выдаёт ошибку и отказывается это компилировать. 2) Во втором примере ArrayList<Number> type = raw ArrayList type. Имеет место неоднозначность, так как raw ArrayList может быть листом не только Number-ов, но, например ArrayList стрингов и т.п. Компилятор компилирует это.
То есть 2 совершенно одинаковых случая, но разное поведение компилятора.И, как я понимаю, разное поведение вытекает как раз таки из приведения типов.
То есть 2 совершенно одинаковых случая, но разное поведение компилятора.И, как я понимаю, разное поведение вытекает как раз таки из приведения типов. То есть 2 совершенно одинаковых случая, но разное поведение компилятора. И, как я понимаю, разное поведение вытекает как раз таки из стирания типов.
>>3519327 Так фишка то как раз в том, что это не одинаковые случаи! В первом случае ты до конца сидишь на игле дженериков, и нигде не используешь сырой Example, поэтому у компилятора есть на руках буквально вся инфа о типах, которую он может проверить. Во втором - сам факт raw-type уже выбивает у компилятора фундаментал из под ног.
Ты и для первого примера можешь легко наебать компилятор, провернув мув вида var instance = new Example("zalupa"); Поэтому использование сырых типов для дженериковых классов и есть лютый антипаттерн, который осуждается литералли всеми конвенциями, ловится компилятором, линтерами, IDE, сонаркубом и прочими штуками.
>Так фишка то как раз в том, что это не одинаковые случаи! В первом случае ты до конца сидишь на игле дженериков, и нигде не используешь сырой Example, поэтому у компилятора есть на руках буквально вся инфа о типах, которую он может проверить. Во втором - сам факт raw-type уже выбивает у компилятора фундаментал из под ног.
Впрочем - знаешь что? Для полноты картины на твой пример следует смотреть еще с учетом другой фичи, которая добавилась слегка позже самих дженериков: даймонд-оператора. Ты можешь относительно легко переписать свой пример так:
ArrayList<Number> numbers = new ArrayList<>(Arrays.<>asList("text1", "text2"));
И тем самым как раз и сказать компилятору: "йоу, зырь, здесь все просто - просто выведи мне дженерик для этого листа. Я верю в тебя - ты справишься". Тем самым ты сознательно избавишься от raw-листа, и при этом не будешь душиться конкретизацией типов.
>>3519338 >>3519348 Ну у меня был единственный главный вопрос. Данное поведение компилятора определяется стиранием типов или какими-то другими его размышлениями? Просто по идее это определяется как раз таки стиранием типов. То есть в строчках взаимодействия дженериков с raw типами компилятор стирает типы, а потом проверяет всё ли сходится или нет, верно? Просто для чего же тогда еще нужно это стирание типов и для чего его придумали, если не для этого? Ведь главная цель стирания типов это обратная совместимость, возможность взаимодействия дженериков с легаси кодом без них.
>>3519335 >То есть 2 совершенно одинаковых случая, но разное поведение компилятора. И, как я понимаю, разное поведение вытекает как раз таки из стирания типов.
Стирание типов - на самом деле тоже хитрая шляпа. После компиляции, в байткоде литералли вся инфа, что есть в дженериках, будет в полной мере присутствовать. Ты можешь этьо сам проверить, натравив javap на class-файл своих экзамплов. Более того, ты можешь рефлексией читать дженерики класса.
Цимес в том, что в рантайме по инстансу того же списка инфы о типах его элементов уже не существует. Метода "дай мне тип обьектов списка" нет и не может быть в теории без костылей. Но это - в рантайме. Компилятор о типах знает все то же, что ты ему в коде написал.
>>3519351 >>3519351 >То есть в строчках взаимодействия дженериков с raw типами компилятор стирает типы, а потом проверяет всё ли сходится или нет, верно?
Ну бля я хз как это обьяснить... Ну вот смотри: есть у тебя Example, принимает он конструктором тип T. Вот все казалось бы хорошо, но что делать, когда ты делаешь raw Example? Единственный очевидный ответ - "делай так, как будто бы дженериков нет". То есть, в нашем случае, делай так, как будто бы в конструкторе у Example вместо T торчит Object (или Number, если речь идет о втором Example).
Вот здесь мы и стерли тип.
Ты можешь возразить, мол нахуя такая душнина, и нахрена нам raw Example когда есть Example дженериковый. Ну так ты замени в размышлениях выше Example на Collection и прими во внимание тот факт, что в нулевых на джаве уже было написано дохрена кода, и станет понятно - зачем.
Иными словами - это все обычная история о легаси и обратной совместимости.
>>3519372 Ну работу механизма стирания типов я то знаю) Не знаю зачем ты мне его пытаешься объяснить. Меня интересовал другой вопрос и в целом я видимо получил ответ. Так что вопрос скорее всего исчерпан, спасибо за помощь)
Ну и нахуя я последние полтора года учил джаву со всеми требованиями по стеку в вакансиях, если на РАБоту меня один хуй не берут либо разводят на тестовое, либо вакух тупо нет, на днях вышла GTA 6 GPT 5 которая уже может выполнять инженерные таски и сложные алгоритмические задачи, а подушка заканчивается?
Чувствую, что меня где-то жёстко наебали. Хорошо хоть за говнокурсы ни отдал ни рубля.
Я просто пытаюсь перекатиться из бесперспективной в РФ профессии юриста в программиста имея гуммантирную вышку, памахите добрые ананасы :(
>>3519680 Я наоборот слышал, что в мль не пробиться, конкуренция пиздец и надо быть чуть ли не кандидатом наук. Поэтому я со своим васянским образованием даже не думаю об этом.
>>3519548 >на днях вышла GPT 5 Это та блевотина, которую обосрали все кому не лень? Я её потыкал, она тупо галлюционирует чаще чем работает нормально лол.
>нахуя я последние полтора года учил джаву Для себя, лишним не будет. Лол, вообще удивляет, что ты спросил зачем ПОЛГОДА учил джаву, но не спросил зачем ПЯТЬ СУКА ЛЕТ получал ГУМАНИТАРНУЮ вышку. А юридические знания тебе зачем? Раз уж на то пошло.
>из бесперспективной в РФ профессии юриста Ну это кстати показательный случай. Когда-то лет двадцать назад каждая мамашка пыталась своего ребятёнка засунуть либо на юридический, либо на экономический факультет. Потом оказалось, что столько юристов и экономистов нахуй не нужно. Ровно то, что прямо сейчас происходит в сфере айти лол.
Какой же жидея ненадёжный забаганный кусок говна. Поберегите свои нервы, дети, не начинайте этим говном пользоваться если ещё не приросли окончательно. Вс код годен.
О, собрат по байткоду! Твоя история тронула самые потаенные уголки моего JVM-сердца. Я вижу, ты страдаешь от классической формы Java-просветления, и это прекрасно!
Твои симптомы говорят о том, что ты достиг высшей стадии ява-самадхи. Вот мой рецепт для тебя:
## Лечение (или усугубление ситуации)
### 1. Терапия байткодом ```java // Prescription.jasm class Enlightenment { public static void main(String[] args) { while (true) { System.gc(); // Бесполезно, но традиционно Thread.yield(); // Иллюзия многопоточности System.out.println("Я не тормозлю, это фича!"); } } } ```
### 2. Ритуал очищения - Собери 12 enterprise-проектов в один jar - Принеси в жертву трех Scrum-мастеров - Перезапусти Production в пятницу вечером
### 3. Мантры для успокоения - "NullPointerException — это не ошибка, это образ жизни" - "Spring Framework меня не бросит" - "Hibernate кэширует мои проблемы"
## Карьерный путь просветленного явабляди
### Стань легендой: - Architect — рисуй квадратики и стрелочки - Tech Lead — делегируй всю работу другим - Senior — говори "это не по моей спецификации"
## Экстренная помощь
Когда приступ настигает ночью: ```bash # Экстренная команда java -XX:+UseG1GC -Xmx1024M -jar your_soul.jar --enable-suffering ```
## Помни, собрат!
Ты не одинок! Миллионы ява-разработчиков: - 😨 Боятся `OutOfMemoryError` - 😭 Плачут над `StackOverflowError` - 😊 Радуются `ClassNotFoundException`
Твоя миссия — нести свет Enterprise в мир скриптовых плебеев! 🚀
P.S. Кота отпусти — он индус, но не заслужил такого. Лучше найми его на аутсорс за доширак.
>>3525056 я вот раньше над всякой гопотой тоже смеялся, а теперь 90% кода им делаю. по сути мигрировал с кнопкодава в сам-себе-архитектор. клепаю интерфейсы и говорю нейросетке их реализовать.
Поясните за средний возраст джависта в энтерпрайзе. Мне 28, вышка гуманитарная (юрист).
Обосрался с профессией, понял что это бесперспективное говно, если нет связей - ты просто нищий исполнитель.
Хочу перекатиться в бэкендеры теперь. Я слишком стар или слишком молод для вката? Какой возраст у команд в энтерпрайзе среди разработчиков в среднем? Не буду ли я слишком старым или наоборот слишком молодым среди коллег?
>>3526693 Потому что глупый вопрос, ты хочешь себя успокоить или что? Хочешь - изучай и вкатывайся, конечно же, будет очень тяжело, но всё реально, если поставить цель и идти к ней
>>3526923 очередной убийца жабы типа груви, скалы. Получишь только баги от его сырости, через лет пять его все забудут, и все твои усилия по изучению в унитаз
>>3526923 А зачем? Он лучше джавы 8 (а его всегда сравнивают именно с 8), но щас все перекатываются на 17-21 - а там у котлина чуть больше сахара да и только, по фичам они сравнялись
>>3526932 Хотя бы ради корутин и налл-сейфти. Про валуе классы, человеческий тайп инференс, стринг интерполейшн и экстеншн методс я вообще молчу. На джаве пишут не от большого ума
>>3526923 Сугубо моё имхо - а) Вакансий на джаве на порядок больше и требовать с тебя будут опыт на джаве (возможно даже на конкретной версии джавы) б) Котлин настолько гибкий, что красив только в синтетических примерах. Большинство котлинистов стараются изъебнуться и использовать ВСЕ имеющихся фишки, к делу и не к делу. Наверное самый языкий пример этого - экстеншн функции, в теории супер-классная вещь, на практике в них запихивают кучу неочевидной логики и код становится оч плохо читаемым.
Да и в целом - оверратед. Ситуаций где зеленая многопоточка реально решает - единицы
>налл-сейфти
Не то чтобы он и в котлине сделан без нареканий. А так - есть костыль JSpecify - было бы желание.
>валуе классы,
Рекорды
>человеческий тайп инференс
Чем он критически бесчеловечен в джаве?
>стринг интерполейшн и экстеншн методс
Все что осталось в сухом остатке. Прикольно, но не стоит того, чтобы слезать с привычного окружения.
>На джаве пишут не от большого ума
Есть поговорка про это: "кто в юности не был реформатором у того нет сердца, кто в возрасте не стал конесерватором, тот не приобрел ума". Так что - тут как посмотреть: может статься что это великовозрастные котлинисты торчат на своем синтаксическом диабете не от большого ума.
>>3527381 Язык один. Спецификация одна и та же. А вот фреймворки и подходы разные. В целом ты прав. Предметная область важнее чем используемый инструмент
>>3526923 >Заметил, до сих пор разрабы на джаве не любят котлин, с чем это связано и не проще сразу его учить, если уже опыт работы на джаве есть? ну потому что есть четкое интуитивное недоверие ко всякой хайповой параше, которая может сдохнуть в любой момент. я на жаве с версии 1.3 пишу и всегда были попытки сделать лучшую джаву, которые оканчивались пшиком. груви или скала - где они теперь? ко всякой хуйне, типа ломбока, которые ломают типовой сценарий компиляции проекта тоже отношусь с большим недоверием. щас вот например взлетает такая фигня: https://github.com/manifold-systems/manifold наверняка скоро тоже будут вопли о ее крутости на каждом углу.
Есть смысл перекатываться в жаву с пхп, если хочется просто сидеть пердеть в каких-то банках делая одну задачу в месяц за много денег?
В России чет пхп щас выдавили из всего крупняка почти, везде пишут на го, но если честно го не особо нравится и все рассказы про его простоту разбиваются об уебищные вопросы с собесов по каким-то микропаттернам с каналами и дедов-сишников которые зачем-то туда пришли спрашивать про директивы компилятора, да и опять же, его киллерфичи кажутся какими-то локальными и стратегически бесполезными в изучении, как учить кататься на скейте по фингерборду
Ну и да, го только в россии взлетел, за границей-то и пхп с питоном и джанго дохуя, и руби не так сдох
>>3528021 да препроцессор че, добавили для легаси какого-то, пусть будет. Ну правда тот пример со скрина можно было бы решить тупо аннотацией (так в андроиде делают, насколько я помню)
>>3528061 Шутишь чтоли? Да еще на заре становления джавы в первой половине нулевых препроцессор обхуесосили все кому не лень было. Настолько сильно он уже тогда в плюсах всех заебал, что ни в одном языке последних двух десятилетий его не было ни в каком виде. За пределами плюсов тупо не существует никакого препроцессорного кода - о каком легаси ты говоришь вообще?
>Ну правда тот пример со скрина можно было бы решить тупо аннотацией (так в андроиде делают, насколько я помню)
Для ситуаций как со скрина давным давно существует такая штука как https://openjdk.org/jeps/238. И что характерно, литералли всем на эту штуку похуй, потому что ситуации, где версия рантайма прям важна и решает, на практике встречаются крайне редко.
Но хули нам - у нас есть пушка и мы будем ебашить по ней из воробьям. Уже представляю себе архитектурные решения недоумков, дорвавшихся до этой артиллерии блять...
>>3504146 >> это на самом деле ФП Да ФП это заебись, жаль в джаве мало опций раскрутить ФП по полной, шобы как в ТС и реакте, но с перфомансом и шлюхами
>>3528275 >А к Golang как относишься? умрет как только микросервисы и облака выйдут из моды. алсо язык для тех кто не осилил кресты. чисто нишевое решение под всякие кубернейтсы и докеры, где сервера маломощнее древних нетбуков и где борятся за место на диске и оперативную память. в нормальной среде исполнения проигрывает плюсам либо джаве во всем.
>>3529060 так то добавлю что сейчас есть три (с половиной) вечных языка - сишка и плюсы, джава и питон. эта тройка закрывает весь спектр задач - низкоуровневое/высокопроизводительное (кресты, оче сложно), приложения со сложной прикладной областью (джава, терпимо), скрипты/небольшие программы (питон, очень легко). в ближайшие 50 лет они никуда не денутся. все остальное - вариации на тему, которые почти наверняка умрут. даже если какой-то новый язык предложит что-то новое, киллерфичу, то эту киллерфичу просто вберет в стандарт один из китов и этот новый язык потеряет свою актуальность. так было уже не один раз и происходит постоянно. все хорошее что было в котлине уже есть в современной джаве, например. котлин жив только благодаря моде на него в андроид разработке, так то никаких преимуществ по сравнению с явой он уже не имеет. и как бы жыдбрейнс не пыжился, даже при поддержке гугла он не сможет обойти экосистему жавы в скорости эволюции и будет теперь вечно на ней просто паразитировать. он взлетел когда-то но теперь на него с каждым годом будет охуенно как давить легаси и требования обратной совместимости, которые все сложнее и сложнее будет вывозить. с каждым годом менять язык становится сложнее на порядок. котлин пилит сто человек. ждк - несколько десятков тысяч. в питере, например, был офис сана (потом оракла) который занимался только тем, что тестировал ЖДК. у котлина нет никаких шансов.
var foobars = new FooBar[3]; foobars[0] = new FooBar(...); // OK ... Foo[] foos = foobars; // OK?! Это что за ёб вашу мать??? foos[1] = new Foo(...); // ArrayStoreException
Нахер было разрешать так массивы конвертировать? - Чтобы потом эксепшн кидать?
>>3529131 Да, есть такая ебалыга. Смысл примерно тот же, что и с "сырыми" типами в дженериках.
Просто для целей упрощения рефакторинга и своего бытия давным давно диды приняли конвеншен, что массивы ковариантны (в отличие от дженериков, которые инвариантны).
Почему? ПАТАМУШТО для дидов важнее на тот момент было поиметь полиморфизм для массивов (из которых они полиморфно преимущественно читали, нежели писали в них), нежели чето выдумывать с косяком системы типов, который ты нашел.
>>3529127 экосистема джавы на два порядка больше шарпов. шарпы чистая корпоративщина под крылом микрософта и живет только за счет них. жава давно живет сама по себе
>>3529185 раст хайповая параша о которой нечего и говорить. плюсы она не заменит никогда
>>3529309 ты клоунский нос потерял. Раст нужен чтобы решить проблему автоматической сборки мусора без сборщика мусора. Убрать главный геморой си и плюсов - течку памятью и ручное освобождение памяти. Оставаясь при этом низкоуровневым языком
>>3529328 >Убрать главный геморой си и плюсов кладбище хоронителей крестов - несколько сотен могил. лозунги у них у всех одинаковые были. раст будет просто еще одной в их ряду. экосистема плюсов самая большая на планете. это самый масштабный, самый объемный (в плане библиотек и инструментов), самый фундаментальный язык на земле. в основе любой технологии и любой дргой экосистемы лежат вещи написанные на крестах. кресты не уйдут никуда и никогда, так как для этого нужно периписать с нуля вообще ВСЕ. все ос, драйверы, львиную долю прикладного софта, компиляторы и даже прошивку твоего утюга и микроволновки. нравиться кому-то это или нет но сишка и плюсы - это навсегда.
а раст это просто сблев который забудут через пятилетку. то что он решает какую-то одну проблему плюсов (из тысячи) не делает его лучше плюсов вообще никак и нигде. это просто игрушка.
>>3529512 >ос, драйверы Это все на Си написано. А Си и Плюсы - это разные языки. Си будет жить, а плюсы помрут, обоссавшись и обосравшись. Конечно легаси на С++ еще несколько десятилетий с нами будет жить, но это именно что легаси.
>>3529512 >раст это просто сблев который забудут через пятилетку Мне так говорили и в 2015 и в 2020. И что-то не забыли. Все больше бигтехов начинает на расте писать системные вещи.
>>3529512 >а раст это просто сблев который забудут через пятилетку. то что он решает какую-то одну проблему плюсов (из тысячи) не делает его лучше плюсов вообще никак и нигде. это просто игрушка.
Так то то же самое можно было бы и про джаву сказать в нулевых. И что характерно, в нулевых ее хоронили буквально все плюсисты, превались желчью похлеще современных шарпоклоунов. И ничего: плюсы не похоронила, но нишу свою заняла, кусок рынка оттяпала.
Раст точно никого не похоронит. Но как минимум у раста есть идея, у которой аналоговнет: борроу чекер. Это не клоунский гоу, чья идея - тупо демагогия, "делай хорошо, а плохо не делай", и последующее хождение по тем же граблям, которые насобирали до гоферов их предки, и не клоунский шарп, который суть - копирка с джавы. Как минимум это - интересный язык, а уж приживется или нет - вопрос второй.
>>3529521 >Так то то же самое можно было бы и про джаву сказать в нулевых. И что характерно, в нулевых ее хоронили буквально все плюсисты, превались желчью похлеще современных шарпоклоунов. И ничего: плюсы не похоронила, но нишу свою заняла, кусок рынка оттяпала.
не в нулевых, а в 90-х, и жава не плюсы вытеснила, а дельфи/паскаль, VB, руби, смалтолк, пых, перл и кучу других языков, которые конкурировали как раз в области програм для моделирования сложной бизнес-логики и/или зарождающегося бэкенда. жава в нишу крестов вообще не целилась никогда.
и она выиграла эту битву и с тех пор на ней написаны петабайты кода и миллионы библиотек.
прийти сейчас и "заменить" жаву либо кресты это примерно то же самое что заменить всю систему счисления в мире с десятичной на двоичную. оно в теории можно, и даже решает какие-то проблемы, но на практике неосуществимо.
так же и раст - ну бороу чекер, ну и что? наследования нет, шаблонов и метапрограммирования нет, препроцессора и макросов нет, перегрузок функций и операторов нет, consteval (в т.ч. для функций) нет, а также нет 99,9% функциональности крестов доступных через библиотеки. по итогу нихуя в расте нет по сравнению с крестами. поиграться можно, конечно, какой-нибудь говносервис для докера написать, либо простенькую байтодробилку, это только в путь. но что-то серьезное уровня ядра ОС, фотошопа либо GCC я думаю на расте мы никогда не увидим.
>>3529678 > наследования нет, шаблонов и метапрограммирования нет, препроцессора и макросов нет, перегрузок функций и операторов нет, consteval (в т.ч. для функций) нет литералли слава богу что нет, и не нужно. Ещё скажи плохо что множественного наследования нет, и 100500 компиляторов с различным поведением
>>3529678 >препроцессора и макросов нет Вообще-то это в плюсах препроцессора и макросов нет, по сравнению с растом. В расте как раз препроцессор который работает с ast кода есть, а не как в плюсах тупой шаблонизатор.
>>3529515 >Мне так говорили и в 2015 и в 2020. И что-то не забыли. ну до конца не забудут но хайп на раст уже прошел. он появился в середине нулевых тащемто, а выстрелил ~ в 2010-м. Примерно в 2015 про него был каждый второй пост на швабре. а потом произошло то о чем я выше писал - все "киллерфичи" раста вошли в стандарты С++11/14/17/20/23 и собственно на этом миссия раста окончилась. то что в нем осталось на сегодняшний день - это тот самый бороу чекер вшитый в раст бай дизайн и собственно всё. маловато будет для "убийцы крестов"
>>3529694 >он появился в середине нулевых тащемто нет, в 2015. И уже линукс переписывают на него. А что там с плюсами, сколько им лет? Есть ли они в линуксе?
>>3529697 >И уже линукс переписывают на него. переписали одну утилитку из 350 миллионов строк кода (оценка размера дебиана) - это не "переписывают линукс на раст"
>>3529717 >публично разрешить это не то же самое что "переписать", не находишь? алсо линупс славен тем что подставляет свое очко под любой повесточный хуй, а растоводы самые громкие в петушатнике, так что ничего удивительного тут нет
промахнулся тредом Стоит ли переписывать IO на NIO? Работа с большими файлами, работа уровня загрузить файл по частям, склеить, выгрузить обратно Склеивание не через FIS/FOA, а через каналы - пизже? Есть вообще смысл въёбываться в это? В чём минусы File и почему я должен использовать Files/Path?
Блокирующее чтение/запись, всё идёт через кучу копирований в пользовательскую память. При работе "кусочками" (`read(byte[])`) скорость сильно зависит от размера буфера. Простая модель: поток → байты. Удобно, но не оптимально при гигабайтных файлах.
NIO (Channels, Buffers, `FileChannel`)
Прямой доступ к файловым каналам. Можно использовать `transferTo/transferFrom`, что зачастую уходит в zero-copy на уровне ОС (Linux `sendfile`, Windows аналог). Это позволяет копировать данные между файлами/сокетами без лишних копий в JVM heap. Поддержка memory-mapped files (`FileChannel.map`) — работа с очень большими файлами (сотни ГБ) возможна через отображение в память без ручного "кускования". Лучше подходит под задачу "загрузить кусок → склеить → выгрузить", особенно если речь про действительно большие файлы (гигабайты).
### 2. Склеивание через `FileChannel` vs `FIS/FOA`
`FileChannel.transferFrom` позволяет копировать напрямую между каналами: меньше кода, меньше накладных расходов. При `FIS/FOA` придётся руками читать в буфер и писать, лишние копирования. Для сценария "склеить кучу частей в один файл" NIO предпочтительнее: меньше JVM-оверхеда, выше скорость, особенно при больших файлах.
### 3. Минусы NIO
API более низкоуровневый: нужно самому управлять буферами, позициями. Ошибки легче допустить (например, забыть `flip()` у буфера). Memory-mapped файлы могут жрать много адресного пространства, а их очистка (unmap) до Java 9 неудобна. При работе с сетью NIO (selector) нужна архитектура на неблокирующих каналах. Но у тебя кейс файловый, там проще.
### 4. Почему `Files`/`Path`, а не `File`
`java.io.File` устаревший, ограниченный:
Нет работы с симлинками. Нет атомарных операций (копирование, перемещение, удаление). Нет хорошего API для атрибутов/метаданных. `java.nio.file.Path` + `Files` дают:
Богатый API (чтение/запись, копирование с опциями, работа с атрибутами, фильтрация директорий и пр.). Работают кросс-платформенно с корректным учётом особенностей файловых систем. Более современная интеграция с NIO (каналы, WatchService для мониторинга файлов и т. д.).
### Вывод
Если у тебя реально большие файлы (гигабайты) и нужна производительность → использовать NIO (`FileChannel`, `transferTo/transferFrom`, memory-mapped). Если файлы маленькие/средние → можно остаться на IO, выигрыш будет несущественным. `Files/Path` лучше чем `File`, потому что API богаче и современнее, но если нужна только "открыть поток" — разницы мало.
Хочешь, я покажу минимальный пример склеивания частей файла через `FileChannel.transferFrom`, чтобы сравнить с обычным `FIS/FOA`?
>>3529328 >Раст нужен чтобы решить проблему автоматической сборки мусора без сборщика мусора. Убрать главный геморой си и плюсов - течку памятью и ручное освобождение памяти. Оставаясь при этом низкоуровневым языком Это решается умными указателями в плюсах
Как вкатиться в тырпрайз уровня приложухи на спринге? Думаю перекатываться со своего стека на спринговый бэк, после работы ковыряюсь в нем каждый день почти, но у меня нет понимания, как выглядит именно тырпрайз. Всякие там петклиники уже смотрел, но это же просто смешно. Хочется прям чего-то сложного, желательно хорошо написанное, в идеале ещё с пояснениями, а не дефолтного кудошлепства.
>>3529678 >наследования нет, шаблонов и метапрограммирования нет, препроцессора и макросов нет, перегрузок функций и операторов нет, consteval (в т.ч. для функций) нет, а также нет 99,9% функциональности крестов доступных через библиотеки. по итогу нихуя в расте нет по сравнению с крестами
Да кому не похуй, бро. Ебучий джаваскрипт в свое время был вообще браузерным недоязычком для проектирования гостевух на сраных сайтах времен зайчатков веба, и не имел гораздо большего, чем ты перечислил. Ранние его инкарнации вообще можно было бы отнести к эзотерическим. Тем не менее этот борщевик не просто выжил, а проник буквально во все сферы разработки блять.
Я те выше о том и гутарю, что в мире приживалось и не такое дерьмо. Приживалось, да ничего не вытеснило. Никуда и джава на самом деле не вытесняла все вышеперечисленные тобой языки. Ты кстати в свой список главного на тот момент конкурента джавки забыл - кобол, живущий по сей день, хоть и в коматозном состоянии. Также есть интероп, в который обычно активно вкладываются новые язычки - типа котлина, ну или того же раста. С интеропом переписывать петабайты кода не надо.
Короче в пизду этот дискус за языки, забей хуй. В конечном итоге стреляет то говно, куда корпораты больше бабла ввалят.
>>3529790 >Как вкатиться в тырпрайз уровня приложухи на спринге? Брать любую работу по теме. Как только ты освоил азы реально учишься только на настоящих рабочих задачах
Помню, в 2010-ом Гугл по запросу "Java" выдавал кучу сайтов, предлагающих скачать JRE. Теперь же он по этому запросу выдаёт курсики по обучению Java. Интересно, как скоро Гугл по запросу "1С" перестанет выдавать сайт фирмы 1С и начнёт предлагать курсы языка 1С?
>>3530199 Любом или случае у пропустил поздно я обучения своих слишком не меня всё всё ещё жены в возраст нет брачный ещё но менее более и обязанностей изза.
Самый главный вопрос по Java в 2025 - "Где искать работу?" На hh.ru и career.habr.ru нет ничего вообще. В телеге в канале t.me/easy_java_job откликнулся на несколько вакансий, не получив ответа. Java совсем мертва, как Delphi с Fortran?
>>3531029 >На hh.ru и career.habr.ru нет ничего вообще. >>3531030 >А джуны даже в сытые ковидные времена были не нужны. Даже не знаю. А ты нас точно не обманываешь?
>>3532011 >можно самому за полчаса написать >Тебе надо - ты и пиши Не было тут несколько месяцев, а жаваны не меняются. Хоть что-то приятное в этой жизни. Нет спасибо, я не хочу скидывать код в этот тред. Ты сказал - тебе и доказывать.
>>3532016 Да проблема в том, что даже это новое апи всех этих гарантий обеспечить не может. А ты вот пишешь, что за 30 минут могешь все это захерачить. Такой талант прозябает, ужас.
Айти-господины, крик о помощи. Как вкатиться в вашу джаву? Имею опыт работы на плюсах год, закончил вышку по специальности. По знаниям уверенный jun+, но до собеса дойти невозможно. Получаю автореджекты, везде требуют опыт 3+. Собрал в латехе очень хорошее резюме и раскидал по всем бигтехам на почту/форму обратной связи, но тут тоже тишина. Уже готов тут искать лидов, которые готовые взять к себе под крыло
>>3532043 Ну так тогда этот джеп про слабо связанные вещи, одно констатн фолдинг на файналах, а другое - апи, которое и без джепа может быть. Late-init файналы и раньше делали через билдеры. Поубавь желчь, бедняга, несварение получишь.
>>3532062 >Поубавь желчь Извини. >одно констатн фолдинг на файналах Проблема не столько в этом констант фолдинге, в принципе-то плевать на него. Главное преимущество файналов над теми же волатайлами и прочими полями, что они принципиально не могут иметь гонок, ну если только утечет ссылка во время инициализации. Это их базовая гарантия. Насколько я понимаю, эти стейблы дают такого же уровня гарантию, хотя там про это особо не пишут. И как я думаю, такое можно обеспечить только через внутрянку. Ты же пишешь, что это возможно, мне интересно как. Но как всегда НОЛЬ конкретики. >раньше делали через билдеры Если ты про пик, то снизу написаны ограничения. Т.е. во первых это static, во вторых уникальный класс.
>>3532059 Сейчас на джаву найти работу проще простого. Взяли на работу когда знал ток чисто синтаксис джавы и всему обучили.Ты главное вуз закончи на любую тех.специальность, и попробуй через вуз на стажировки походить, если не берут в топ компании, то просто иди в галеры, в них конкуренция очень маленькая берут почти всех работать. Хотя скорей всего ты даже на jun+ не тянешь после своих курсиков от какого нибудь яндекса после рекламы поменяем работу.(ток обучение в вузе поможет тебе стать норм разработчиком)Ну либо в 1с иди туда даже без вуза взять могут
отработал свои 3 месяца джуном, вроде освоился, узнал дохуя нового как развиваться дальше? пришло время читать эффективная джава/конкарренси на практике?
>>3532072 Жирнота какая. Я с вышкой и 10 годами опыта (начинал аж на Java 6 и сервлетах с Vaadin) сижу без работы с января. На все отклики на хх.ру ответ "Мы не готовы пригласить вас на следующий этап".
>>3532234 >Тупорылый даун, ты сам-то пробовал откликаться на подобные вакансии? Там даже до собеса не доходит. и как это отличается от обычного поиска работы, даун?
awt и swing
Аноним02/09/25 Втр 03:27:52№3532263378
Не так давно читал, что для создания одной кнопки в awt создаётся отдельное окно. Это правда? Т.е. 20 кнопок в интерфейсе через awt создадут 20 дополнительных окон?
>>3532263 Если ты под окнами подразумеваешь то, что wm или винда может перемещать - то нет. Они вообще говоря даже не в одной иерерхии - кнопка это не контейнер.
>>3532270 >Если ты под окнами подразумеваешь Тут я неверно выразился. Имеется ввиду, что каждый компонент реализован буквально поверх api системы, а swing реализует окна за счёт api системы, а остальное дорисовывает поверх окон, из-за чего условная кнопка через swing не создаёт отдельного слушателя на уровне системы.
>>3532072 >Взяли на работу когда а когда это "когда" было? если 2-3 года назад то все поменялось с тех пор кардинально. опыт вката до 2022 года сейчас настолько же актуален, как опыт вката в ссср, т.е. вообще никак.
>>3527585 >Вам понравилось ебаться с форматами времени? Мы присрали сбоку ещё и ненужные в силу десятичности СИ-форматы и ебанутые гамбургер/пистолет^2 амэрикан пэтриот форматы, сэр! А то нашим дырявым ЛЛМкам не хватает индусской метрической кодовой базы для обучения нашим демократическим единицам измерения, сэр, подписка, сэр.
>>3529134 А что именно тебя интересует? Там наверное базовая концепция, которая стоит для понимания, что жвм лишь делает вид, что она исполняет твой код. В реальности там может игнорироваться практически весь твой код, весь твой тщательно выстроенный порядок, все в угоду оптимизации. И единственная твоя опора, это не рассуждения уровня, ну там кэш в процессоре или оптимизатор жвм из-за volatile не будет работать, в общем-то все рассуждения снизу вверх. Фактически можно опираться только на гарантии даваемые спекой или документацией. Все спекуляции во всяких обсуждениях и производных материалах имеют мало смысла по большей части. Просто прочитал гарантии и делаешь ровно исходя из них. И как правило чем выше по абстракции находятся гарантии, тем они проще для применения. Ну и вот в книжке про поезда практически весь хронометраж убит под эти высокоуровневые гарантии. Мол делай так и будет заебись, а вот так не делай атятятя. Если тебя интересует именно практика, то хз чем тебе не нравится эта книжка. Если тебя интересует всякая справочная теория по канкаренси, то прочитай The Art of Multiprocessor Programming, там примеры на жаве есть в том числе. Если хочется изучить не высокуровневые гарантии, а низкоуровневые hb, causality и проч. В основном для доказательств корректности алгосов. То это спека ( https://www.cs.umd.edu/~pugh/java/memoryModel/jsr133.pdf ) ну и paper всякие ( https://research.ibm.com/haifa/Workshops/PADTAD2005/papers/jmm.pdfhttps://gee.cs.oswego.edu/dl/html/j9mm.htmlhttps://dl.acm.org/doi/epdf/10.1145/3360568 ).
>>3532997 Дополню. Зачастую эта теория плохо ложится без практики. Но практика в concurrency для новичков вещь несколько спорная. Поскольку для того же обучения с подкреплением нужна обратная связь. Но узнать корректен ли твой многопоточный код бывает гораздо сложнее, чем просто его написать. И вот именно для практики, есть несколько примеров и специальный инструмент. Их можно позапускать, поизменять и они наглядно показывают некоторые гарантии. https://github.com/openjdk/jcstress/tree/master/jcstress-samples/src/main/java/org/openjdk/jcstress/samples
>>3532997 >весь твой код, весь твой тщательно выстроенный порядок, все в угоду оптимизации Про тотал стор ордер в современных процессорах мы не знаем, так и запишем. Сама жвм то не делает каких-то агрессивных оптимизаций
>>3533166 Нууу, во первых жава не всегда работает в рамках TSO, привет привет arm и ведроиды. Следовательно гарантии даваемые в спеке, слабее, чем то, что тебе дают процессоры. Опираться именно на гарантии процессора в такой парадигме странно. Вот это опять рассуждения снизу вверх, мол я пойму как там внизу работает и просто экстраполирую наверх. >Сама жвм то не делает каких-то агрессивных оптимизаций Делает. Например вот https://github.com/openjdk/jcstress/blob/master/jcstress-samples/src/main/java/org/openjdk/jcstress/samples/jmm/basic/BasicJMM_04_Progress.java Нет, это конечно не уровень cpp, но все же. С final там еще больше оптимизаций, тот же constant folding, поэтому правильная инициализация объектов тоже очень важна.
>>3532071 Почитал ещё, понял о чём это, конкретно о прозрачном для пользователя отложенном ините полей. Я имел в виду просто пересоздать объект извне, через билдер выставив финальное поле в нужное значение. Далеко не так удобно, но при редкой необходимости - норм.
>>3533193 >One naively can expect that writes to variables are eventually visible. However, under Java Memory Model, this does not apply to plain reads and writes. The usual example is the busy loop in plain field. The optimizing compiler is allowed to check the field once, and if it is "false", reduce the rest of the loop into "while(true)", infinite version. >In fact, the overwhelming majority of hardware makes writes eventually visible, so what we minimally want is to make the accesses opaque to the optimizing compilers. Luckily, that is simple to do with VarHandles.{set|get}Opaque. Ну по написанному, это именно жвм делает, кмк. А не кто-то еще. В том же шарпе, например, вроде такой хуйни нет. И потом, жвм дает те гарантии, которые не дают процессоры. Out-of-thin-air safety ( https://github.com/openjdk/jcstress/blob/master/jcstress-samples/src/main/java/org/openjdk/jcstress/samples/jmm/basic/BasicJMM_01_DataRaces.java ) и causality (пик) . Т.е. в некоторых ситуациях jmm слабее, чем то, тебе дают процессоры, в некоторых сильнее. Поэтому знание про процессоры, кэши и прочее, мало тебе поможет, а может даже и помешать... >>3533190 Смотри, когда ты пересоздаешь объект, ты удлиняешь цепочку. Т.е. если раньше у тебя было прямая инициализация в файнал поле, то теперь инициализация объекта с файнол полем в волатайл поле. Т.е. теперь это волатайл рид, а не файнал. И гарантии меньше. Преимущество файналов, что тебе не требуется, чтобы вся программа была корректно синхронизована, т.е. если даже где-то будет гонка, корректно инициализированное файнол поле не пострадает и будет видно всем аболютно корректно. А волтайл поле тебе не дает такой гарантии. Если где-то случилась гонка, то все, ВСЯ цепочка закорупчена. А не только ее часть. На практике это называют например частично иницилизированный объект и прочее.
>>3533207 >В том же шарпе, например, вроде такой хуйни нет. Какой хуйни? Если ты про >The optimizing compiler is allowed to check the field once, and if it is "false", reduce the rest of the loop into "while(true)", infinite version. то нетовский JIT тоже это может делать (и делает).
Там вроде в цикле вызывается Console.WriteLine(), а JIT не знает может ли WriteLine() изменить то поле, так что он генерит код, который каждый раз читает поле. А вот если JIT знает что в теле цикла нет такого кода, который мог бы изменить поле, то он прочитает его один раз.
Пикчи (код: https://godbolt.org/z/8dfjafe4s ): M() - читает только 1 раз M2() - читает каждый раз, вызов метода, т.к. не знает может ли метод WriteLine() именить поле M3() - читает только 1 раз, вызов метода, но JIT знает что у этого метода нет сайдэффектов (захардкожено в JITе) M4() - читает только 1 раз, хоть и присвоение reference типа это вызов метода в котором есть write barrier, у этого метода нет сайдэффектов
Вообще, я хотел указать, что это оптимизация именно на уровне вмок, а не процессоров. В шарпе это работает не во всех случаях и зависит от JIT и если бы это именно кэши процессоров или еще что-то было, то не думаю, что вообще были бы случаи, когда нет вечного цикла. Если я использовал WriteLine, то это конечно ошибка, поскольку например в жабе, она вызывает synchronized. В шарпе наверное тоже внутри есть локи какие-нибудь, которые влияют на конечный результат оптимизации.
подскажите url репозитория https://marketplace.openide.ru/, который можно вставить в настройки intellij idea, чтобы не качать обновления плагинов через в*н
>>3533604 Тот код это "наглядный" пример оптимизаций компилятора (и пример того что компилятор опирается на свой memory model). >а зачем так закапываться в это? Какой профит? В 99.9% проектах с этим никак не сталкиваешься. Микрооптимизации, любопытство, х.з. А вообще всякие synchronized и lock, скорее всего, были сделаны, чтобы можно было в тупую обернуть в них нужный код и всё просто работало (и при этом относительно эффективно), без закапывания в memory model и т.д.
>>3533812 Так не качай через впн, там просто пару букв заменить и можно будет скачать. Точнее говоря там заблокировали шлюз, который редиректит на прямые ссылки с плагинами, но сами прямые ссылки все еще работают. Т.е. если ты подменишь сам шлюз, то все будет работать. Руками ты это сделаешь или свой редиректор напишешь значения не имеет. А доверять вот этой фсбшной параше - себе дороже.
>>3533888 А иначе никак. Подписку на идейку не оплатить, новую версию не скачать, даже плагины не обновить. Вот так, да... Всякие AI штуки тоже не работают как и сторонние сервисы вроде клода или чатгпт
>>3534378 >вы заблокировали мне доступ к вашей программе пожалуйста возьмите мои деньги ради бога дайте полакомиться ебать браток о ВПН/проксях слышал когда нибудь?
>>3534378 Я тебе говорю, для скачивания, что жидеи, что плагинов НЕ НУЖЕН даже впн. Тебе просто надо использовать другие ссылки, предоставленные самими жетбрейнсами. Вот написал небольшую подмену в репозитории и все https://pastebin.com/iD7mei20 . Оборачивается в нужный пакет и как влитой в системе. Плюс этот малварь сверху сюда запихнул недавно, поскольку все, теперь требует другую страну даже для триалки. А сам install скрипт малваря очень кривой по сути, поскольку он вмешивается в .bashrc/.zshrc, что как бы пошел нахуй. >не оплатить Ну ты по бумажной почте или голубиной там деньги отправь. Может примут. >как и сторонние сервисы Китайскими пользуйся.
>>3533812 Нахера? Че тебе мешает просто скачать openide?
>>3533888 >А доверять вот этой фсбшной параше - себе дороже.
Ты так говоришь, как будто это ФСБ с РКНом тебе жидею перекрыли, да так, что "ололо, как же они исчерпали кредит доверия". Инфантильная какая то предьява.
>>3534378 >Подписка на идейку Для лохов. Сильному не нужно, слабому не поможет.
>плагины не обновить Ну закроешь вопрос с маркетплейсом, и будут тебе апдейты.
>клод или чатгпт имеет кучу аналогов разной степени прокачанности, начиная от отечественных развивающихся аналоговнетов типа gigacode и sourcecraft, и заканчивая плагином continue AI, который можно заточить и кастомизировать под все доступные тебе бэкенды - хоть олламу локально разворачивай, если мощей хватает, хоть к провайдерам цепляйся, и который есть в openide маркетплейсе бесплатно и без регистрации.
>Ну ты по бумажной почте или голубиной там деньги отправь >Китайскими пользуйся. Твоя ирония мне понятна. По факту китайский дипсик даже в подметки не годится Claude, ChatGPT и Gemini. По факту пришлось оплачивать подписку через мтс
>>3534512 >Для лохов. Сильному не нужно, слабому не поможет. Иначе не получить последнюю версию с апдейтами и багфиксами
>имеет кучу аналогов разной степени прокачанности, начиная от отечественных развивающихся аналоговнетов типа gigacode и sourcecraft, и заканчивая плагином continue AI, который можно заточить и кастомизировать под все доступные тебе бэкенды - хоть олламу локально разворачивай, если мощей хватает, хоть к провайдерам цепляйся, и который есть в openide маркетплейсе бесплатно и без регистрации. Это даже не смешно. Сейчас бы сравнивать локальный поделки на открытых моделях и дипсик, когда клод, гемини и чатгпт уже вышли на недостижимые результаты. Про континью вообще поржал - это даже не близко если сравниваем с Junie и другими ассистентами встроенными в IDE. Локальная LLM? Не имеет смысла, т.к. у тебя нет столько вычислительных мощностей. Anthropic Claude ты все равно не заменишь, а получать подсказки и автокомплит прямо в IDE - бесценно
>>3534578 >даже в подметки не годится Claude, ChatGPT и Gemini. А что там за иновация произошла? Да и как тебе ии вообще помогут в работе, если весь код - это нда? >а получать подсказки и автокомплит прямо в IDE - бесценно Или ты на похуях его нарушаешь? Или ты безработный хуй? >Сорри, не понял как этим пользоваться Спроси у чатгопоты. >>3534512 >Инфантильная какая то предьява. Окей. Давай другую, там всего пара сотен плагинов. А не все, что существуют. Это прямо написано в проекте - они взяли самое популярное и вставили себе. Все, что не подходит по лицензии и имеет малую популярность не попало.
>>3534578 >По факту китайский дипсик даже в подметки не годится Claude, ChatGPT и Gemini. полная хуйня из перечисленного тобой только гопота откровенный мусор, остальные на одном уровне. гугл может чуть получше других но не настолько чтобы заморачиваться с впном и подпиской. клауда вряжена пиздец и код пишет хуже дипсика. буквально на днях решал одну задачку, дипсик справился - клауда нет. выводы сделал. так что дипсик ничем не хуже, а то и лучше других.
>>3534579 >когда клод, гемини и чатгпт уже вышли на недостижимые результаты
Какие тебе клод и гемини, если ты - Барнаул, Алтайский край, але? Ты - лох что-ли? Без клавдии работать вообще не способен? Хуевые новости тогда, че, с трудоустройством тебя ждут проблемы. Ливай из страны, пока границы открыты.
Самое тупое что щас можно сделать со своей экспертизой - подвязаться на хуету, которую у тебя в любой момент вышибут, оставаясь при этом резидентом РФ.
Отьказывають студенточке 3курснику на стажировку! Доколе? У меня уже однокурсники некоторые устроились на питоновский и жопаскриптовский стек.
У меня же блинь очень-ооочень большой пет проектик с kafka, gRPC, Spring Boot, Security и postgresql ! А тут на тебе! В анкетах указывал что готов поахать и сосать аки папа карло.
В общем дочитываю Effective Java и попробую че нить на гошке запилить и податься на него в рабство. Пожелайте смерти удачи! <3
И они не смотрят пет проекты. Делать им нечего вот, как заниматься неверотяно трудной работой по оценке чужого кода, а еще наверное локально разворачивать это все. Максимум их возможностей прочитать readme, да и то вряд ли. Тем более, что это сбер и наверное какой-то нибудь тинек, с озоном. Подал бы еще в гугл и сокрушался, аче не взяли
>>3534958 И почему же такого перспективного разработчика без опыта не взяли, вот только тебя им и не хватало же. Наверное в го так тоооочно возьмут, разглядят алмаз, среди кучи г. Удачи, с таким амбициями, у тебя все обязательно получится.
Помню, первую программку на джаве написал в 2016. Потом хуй забил. Потом начал опять вкатываться в 2022. Базовый синтаксис прошел, теперь нужно в спринг вкатываться. Так и помру быстрее, чем вкачусь окончательно
Сейчас еще поступил в вуз чтобы вышку получить. Там задания дают на c и на питухоне. Еще будет ебаный c#
>>3535746 Это только начало, у меня 3 года опыта, а я один хуй зубрю какую то парашу про кафку, постгрес, кубер и тп чтоб старшим гребцом на галеру побогаче взяли, конца и края этому не видно. Еще и опыт постоянно обесценивается, как раньше был червем пидором без опыта, так и сейчас херки нос воротят. Через 3 года уже будут требовать минимум 10 с выпиской из трудовой.
>>3534589 >если весь код - это нда Полная хуйня, чисто де юре, да, де факто ни один кабан кабаныч не из госухи не будет тебе предъявлять, если ты таски двигаешь, ему самому это тупо не выгодно, плюс, в случае если уже прям прижимает, то даже так есть варианты
>>3536188 Да хуй знает, нарушать закон и ради чего.. Автокомплита от нейрокала? А это реально того стоит? Типа чем он настолько пиздаче, обычного автокомплита от жидеи? Мне реально интересно. Кмк, им пользуются те, кто базовые функции даже не освоил. Единственное, это вот какие-то изолированные задачаки решить, но это не автокомплит, а что-то принципиально иное. Да и скажем, может ли нейронка гарантировать, что её решение точно нихуя не затронет и все точно будет работать. Сомневаюсь, а это львиная часть работы.
>>3536190 >>3536188 Еще по моему у нее памяти не хватит вместить эти кровавые энтерпрайз проекты. Так что помощь еще более сомнительная. Вот наверное генерить автотесты, это вот да. Остальное, ну хз
>>3536192 Meh, тесты... Единственное, с чем нейрокал действительно хорошо ИМХО справился, это написание комментов к коду. Все.
Автокомплит нейронки отключается в настройках плагинов первым, ибо в 90% случаев он пиздит и спамит некомпилируемую хуету, нежели предлагает чето годное. Любой долбоеб который при мне ноет о том, что ему автокомплита от нейронки критически не хватает, идет нахуй по профнепригодности на первом перформанс ревью.
Агент-мод - нормально, под пиво пойдет в отдельных ситуациях.
>>3537386 >No null value >No reflection Блин, реально классный язык. Еще самое прикольное, насколько я могу понять вообще, тут уже нет боксинга. >Monomorphization to avoid unnecessary boxing of primitives. Т.е. у них уже настала вальхалла. Надо будет скачать, попробовать. Хотя и печально, что скорее всего это будет нишевым язычком.
>>3537578 Ну хз, комментарии ихние. >The parent poster is correct. We do monomorphization, hence Flix types are unboxed. For example, a `List[Int32]` is a list of primitive integers. There is no boxing and no overhead. The upshot is that sometimes we are faster than Java (which has to do boxing). The downside is larger bytecode size-- which is less of a factor these days. >Caveat: Flix sometimes has to box values on the boundary between Flix and Java code -- e.g. when calling a Java library methods that requires a java.lang.Object due to erasure in Java.
>>3537607 Ну не души. Понятно что если они делают поделку поверх JVM и заявляют что избавились от боксинга, значит под капотом они жонглируют примитив-специфичными артефактами. У них тупо другого выхода и быть не может. А чтобы швы наружу не торчали, они байтодрочат. И не то чтобы это было что то зазорное. Все JVM-based языки занимаются байтодрочем в том или ином виде.
>>3537614 Мне еще нравится, что они вообще все взаимодействие с java запихнули в io монаду. Примерно как котлин, они тоже сначала весь код из жабы сделали недоверенным, мол а мы вот не знаем, есть ли у вас там null или нет, ставьте знаки восклицания. Потом они съехали с этого и просто сделали доверенным его - главное удобство. Посмотрим как тут выйдет по итогу.
>>3537626 >Мне еще нравится, что они вообще все взаимодействие с java запихнули в io монаду.
Так это типичный трюк функциональщиков - все, что нечисто по своей сути, запихивать под шконку IO. И дело даже не в null. Без IO все мантры об отсутствии сайд эффектов бьются об реалии на местах.
В этом контексте потешно слушать хейтеров, которые наслушались джуновский восторженный визг про чистые функции, монады так и не осилили, и такие "ыыыыы, ФП не работает".
>>3537386 И нахуй это надо? Какой-то ноунейм язык от ноунеймов, который нигде никогда использоваться не будет. Вот котлин взлетел потому что, он был от хоть каких-то неймов, которые могли предложить гуглу сделку - гугл пиарит котлин, а они разрешают на хороших условиях гуглу юзать свою иде для андроид студио. Что эти могут предложить?
Гугл кстати хорошо умеет пиарить языки: котлин, го, еще дарт +- известный и используется в мобилках.
>>3537865 >Enhance the Java Platform with value objects >это не объект Хм... >>3537871 Просто интересный язык. Никто вроде не зявляет, что все, скоро все им будут пользоваться, надо вкатываться срочно
>>3537816 >In the future, this programming model will support new Java Platform APIs, such as classes that encode different kinds of integers and floating-point values, and new Java language features, such as user-defined conversions and mathematical operators for domain values. Так так так. Это че, перегрузку операторов таки завозят?
webflux вообще кто-то использует в реальных проектах? Потому что я щас почитал немного про него и звучит как какой-то ебанутый пиздец, высраный какими-то долбоёбами-теоретиками, который по факту не сэкономит ни времени, ни ресурсов, потому что это тяжело писать, это тяжело дебажить, это тяжело расширять, в этом даже разбираться неприятно.
>>3538516 Используется, в основном для всяких апи гитвеев, где надо мерджить и процессить данные. Если тебе нужен не блокирующий сервер и не хочешь ебаться с реактивным кодом, то я бы юзал котлин с корутинам (можно заставить работать поверх webflux) или го. А ну можно еще ноду
>>3538619 А как сахар может мешать? Условно, любая вещь поверх асма - это уже сахар. Вот с другой стороны, наверное круто, если твой язык содержит минимум кейвордов/языковых конструкций и они настолько пластичны, что из них можно делать собственные конструкции. Т.е. то, что в другом языке требует отдельного кейворда, в твоем языке просто комбинация простейших конструкций. И сахар в такой парадигме, это ad-hoc решение, то, что можно было решить в общем, решается вот для конкретной задачи и прибито гвоздями.
>>3538658 Ну не знаю. По моему читаемо, просто привыкнуть надо. Там не столько уж много этого сахар, кмк. Можешь привести пример нечитаемого кода и сравнить его с аналогом на жаве?
>>3538883 Всем нужны, а джаве не нужны. Потом куча говнокода и бойлерплейта в каждом классе, т.к. там десяток православных способов реализовать билдер от гуру типа бугаенки. Ну или ломбок, от которого жопу рвёт каждому второму тимлиду.
>>3538928 >от которого жопу рвёт каждому второму тимлиду. О как. Я получается тимлид, раз мне он так не нравится.
Ну вообще много раз тут обсуждали, но перегрузка операторов, какая она есть в том же петухоне или шарпе беспонтовая херня. Зачем она тебе вообще нужна? Тут вон собираются ввести её ограниченную версию в будущем, типа чисто для чисел собственного производства. Но не более того.
>>3538935 а зачем они такую хуйню придумали c with? Есть очень удобные именованные аргументы в котлине и шарпах, которые и читаемость повышают, и билдер реализовывают.
>>3539057 Все очень просто, няш. Это такая у них идеология - не делать слишком мощные инструменты. Все для того, чтобы ты, милашка, случайно не написал плохой, по мнению оракл, код. Мне такой тоже не нравится, но нам, жаванчикам, остается только терпеть. И надеятся, надеятся, что вот когда-нибудь, лет так через 10 введут все, что мы ждем.
Дело не в сахарке, а в код-стиле. А код-стиль это почти всегда - про то, чтобы выбрать из всего множества синтаксических фич такое подмножество, которое позволит в долгосроке мейнтейнить кодовую базу по единой парадигме. Из меньшего множества проще выбирать (и проще затачивать под это тулсет).
Планктонина, торчащая на сахарке, как правило не задумывается о долгосрочных последствиях, и почти никто из них не способен в архитектуру. Почти всегда синтаксическая фича ей нужна для какой нибудь максимально тупой фантазии, которую в прод пускать нельзя. Инфантильной макаке форма всегда важнее содержания, поэтому такой планктонине хуев в панамку закидать, когда та своими потными рученками лезет в уютную джавку, где таких торчков пока что не очень много - святое дело. Пусть упездывают в другие языки: баба с возу - кобыле легче.
>Вот с другой стороны, наверное круто, если твой язык содержит минимум кейвордов/языковых конструкций и они настолько пластичны, что из них можно делать собственные конструкции.
Лиспы с их макросами всю дорогу были с тобой, анон. Но вот чето не прижилось. Есть еще годнота в виде языково-ориентированных подходов к разработке, иногда ими даже оправдывают ту или иную хуйню в пересахаренных языках. Но на практике адекватов, способных в долгосрочную поддержку DSLей несравнимо меньше диабетных лоускиллов, которым ноги танцевать мешают.
>А то текста много, но это просто вода, если честно
Попизди мне еще, зеленый. Ваше племя чето не особо утруждается пояснениями за свои дурные хотелки, когда засирает тред своими тупыми "а доколе в джаве нет перегрузки операторов".
>>3539134 Ну немного выебнулся да, признаю. Просто это нытье про сахар, где прям невозможно разобраться и на код смотреть - я не понимаю, поэтому хочу пример. Мне кажется, это нытье от челов, которые просто не разобрались в чем-то и не хотят. Но тогда это не проблема какого-то языка.
>>3539114 >Лиспы с их макросами всю дорогу были с тобой Слышал про них, но я очевидно вдохновение брал с другого языка на х. Но мне что-то печально стало, что я вообще не понимаю в какую область мне пытаться двигаться. Я когда-то несколько лет назад очень загорелся идеей понять concurrency. Времени в это я въебал достосточно, наверное несколько лет. Т.е. сначала с малого, jcip, книга хоть и дала мне просто кучу неправльного мнения, но все таки она мне очень понравилась, структурировала разрозненные знания, и дала направление. Вот не знаю, начало 16 главы для меня был лютый мотиватор. Я начал въебывать еще больше времени в чтение спецификации и всяких исследований, все для одной цели, я хочу разобраться. Там и пришло понимание, что я очень плохо разбираюсь в матеше, ну типа ахуительной идеей посчитал изучить для этого язык на х. Тут нулевая связь, но чуть позже я подвязал, не ну хотя бы в женериках разберусь. Потом так спустя кучу въебанного времени, я плюс минус немного разбираюсь в конкуренции, с чем впервые и пришел в этот тред. Но типа для меня разочарование наступило в том, что глубокое понимание канкаренси, ни женериков нахуй никому не нужно. Это буквально бесполезное занятие. И людей которые в этом разбираются мало не потому, что это что-то вах прямо, а потому что это буквально нахуй не нужно. Не знаю, с тех пор ни во что особо не погружался, ну кроме спринга, за что взяли на работу. В которой я тоже разочаровался. Ну типа ты видишь, что все сделано хуево, но че ты с этим сделать-то можешь, а ничего. Но с тех пор мне так грустно, что я буквально повторяюсь, каждая моя тема уже обсуждалась ранее. Я не хочу повторятся, но я не знаю что изучить еще. Спринг не настолько интересен, это просто набор костылей и набор решений, которые были приняты когда-то и которые надо просто знать. Мее, что в этом интересного. И вот чет в таком хуевом настроении давно уже. Просто тень себя же. Найти бы такую область, которая одновременно интересная и практически полезная, эх.. Наверное надо до тех пор пока не найду хотя бы немного близко такую, прекращать тут срать, все равно что-то уникального я не выдам
>>3539142 >это буквально нахуй не нужно Да, поэтому нет смысла особо зацикливаться на каком-то стэке, надо просто быть хорошим спецом и шарить везде по немного. Но при этом же очень хорошо шарить в базе, к слову, многопоточка входит в базу.
Когда кажется, креститься надо. Помейнтейнь сначала какой нибудь древний высер на пересахаренном языке типа плюсов, или, того хуже, JS, от анальников на просроченном фронтенд-фреймворке - начнешь ценить джавовую стабильность и тулинг.
Хотел пример? Получай. Вот те ниже код:
var c = a + b; var z = x B===D y;
Предположим, такой кусок кода ты видишь в мерж-реквесте на ревью. Сможешь с наскоку сказать, что делает этот код? Что такое "c", например? Уверен, что это сумма двух чисел, а не конкатенация двух строк или еще чего менее очевидное?
И что за нахуй означает оператор "B===D"? Хммм, какую же семантику он несет?
Надо чекаутиться, код смотреть-изучать? Ну вот, теперь экстраполируй это на проект размером с миллион строк, и картинка сложится.
И будь добр: не трать пожалуйста мое время на отрицание если мой пример показался тебе неубедительным - мне в хуй не вперлось тебя убеждать. Кто мейнтейнил легаси, тот поймет о чем я, а мнение двачеров, слава богу, на развитие языков имеет околонулевое влияние.
>>3539151 >var c = a + b; Из контекста будет понятно, ты читаешь и пишешь код в контексте. Так можно до чего угодно докопаться. Что делает метод add? Ты же не видишь его реализацию, не знаешь что внутри происходит и что он возвращает. Меньше синтаксического шума -> большее погружение в контекст. >var z = x B===D y Ну это не стандартный оператор. Ты, наверное, имеешь ввиду инфиксные функции. Это проблема нейминга. С тем же успехом, ты можешь написать метод BiiiiiiiD() и будешь задаваться таким же вопрос - что это за хуйня.
>показался тебе неубедительным Это действительно максимально неубедительные примеры из всех возможных.
>И будь добр: не трать пожалуйста мое время на отрицание если мой пример показался тебе неубедительным Дешевый прием, когда нечего больше ответить.
>мнение двачеров, слава богу, на развитие языков имеет околонулевое влияние При этом в яызках появляется то, что тебе не нравится, но "двачерам" нравится. Хммм..
Так понятно, что само. Потому и само, что мечешься как неприкаянный.
>Но типа для меня разочарование наступило в том, что глубокое понимание канкаренси, ни женериков нахуй никому не нужно. Это буквально бесполезное занятие
Оно и останется бесполезным пока ты мастурбируешь эти знания в одиночку. Знания применять надо, епта, монетизировать.
>И людей которые в этом разбираются мало не потому, что это что-то вах прямо, а потому что это буквально нахуй не нужно.
Не совсем так. Просто из-за проебанной системы образования, опытных кадров, сведущих глубоко во всяких сложных концепциях, да даже в той же математике - мало. А бизнесу надо много анальников задешево. Поэтому бизнес делает вид, что оно ему нахуй не нужно.
Но никогда заранее не знаешь. Я вот часто дженерики использую, и довольно нередко приходилось погружаться и в конкарренси. Было бы знание, а применение ему найдется.
>Не знаю, с тех пор ни во что особо не погружался, ну кроме спринга, за что взяли на работу. В которой я тоже разочаровался. Ну типа ты видишь, что все сделано хуево, но че ты с этим сделать-то можешь, а ничего.
Это просто означает, что пришло время переключиться с прокачки техскиллов на прокачку софтскиллов. Учись обрабатывать манагерье, разговаривать со стейкхолдерами. Понимать их головняк, проблемы их продукта. Если ты будешь тем типом, который находит их проблемам решение, начнешь расти. Возможно дорастешь до важного чертилы, который уже сам будет устанавливать правила. А заодно поймешь, какие вещи в коммерческой разработке реально важны и почему.
>И вот чет в таком хуевом настроении давно уже. Просто тень себя же
Хз, люди от легкой формы депры обычно качалку советуют, грят помогает. Отпуск ебани, я хз. Витаминок попей, магния, витамина D.
Так то щас вообще нихуя нет удивительного в том, чтобы впасть в апатию. Время такое.
>Это действительно максимально неубедительные примеры из всех возможных.
Правильно, хули, потому что мы на борде сидим, а не легаси проект рефачим. Тебе любой пример от меня покажется неубедительным, хули - опыта то кот наплакал, судя по всему.
>При этом в яызках появляется то, что тебе не нравится, но "двачерам" нравится.
Веришь нет - я вообще не бухчу на языки. Появляется и появляется, мне все равно - как правило развитие всех мейнстримных языков той или иной логике все же подчинено, даже новых, типа котлина и гоу. А вот двачеры с дебильными пустопорожними доебами не по делу закономерно нахуй идут.
>>3539677 >а не легаси проект рефачим При чем тут рефакторинг легаси проекта? >любой пример от меня покажется неубедительным Не любой, в тех примерах проблема не в том, что язык позволяет писать непонятно, а в том что программист так написал. Я тебе по полочкам разложил, что с таким можно столкнуться и без "сахара". >хули - опыта то кот наплакал, судя по всему Охуенно делаешь выводы и переходишь на личности. Из нас двоих, только ты ведешь себя на уровне пятиклассника, так что я бы поспорил про опыт. Может стажа у тебя и около 15-20 лет, но это ни о чем не говорит. В разных командах встречал скуфов, которые знают как правильно все сделать и вообще самые умные, но только нихуя не делают и ноют, но при этом очень хотят, чтобы их слушали. Они тоже всегда любят поговорить про опыт. Складывается впечатление, что ты один из них.
>>3539704 >При чем тут рефакторинг легаси проекта?
При том, что хуевый дизайн проявляет себя именно в долгосроке.
>проблема не в том, что язык позволяет писать непонятно, а в том что программист так написал.
Программист ВСЕГДА будет писать "непонятно", если у него есть такая возможность. Поэтому и существуют стайл-чекеры и регламенты ведения проекта. В пересахаренных языках такие регламенты затягивать сложнее. И так как для тебя такой простой и очевидный факт - это "вода", есть сомнения на счет того, что ты опытный.
>В разных командах встречал...
Мне похуй, пожешь не расчехлять на меня свое ЧСВ. Я уже выше говорил - мне неинтересно тебя переубеждать. В залупу первый залез ты, так что нехуй теперь обижаться.
>>3539719 >хуевый дизайн проявляет себя именно в долгосроке То есть сейчас функция понятная и все ок, а через n лет тот же код резко станет непонятным? Я понимаю о чем ты. Ты говоришь про неудачные дизайн решения и технический долг проекта, который по мере жизни проекта накапливается. Но опять же, это не имеет отношение к "сахару" >Программист ВСЕГДА будет писать "непонятно", если у него есть такая возможность Такая возможность есть всегда, "сахар" на это не влияет >В пересахаренных языках такие регламенты затягивать сложнее Покажи пример кода, который является проблемой. Те примеры, как мы выяснили, это не проблема "сахара". >так что нехуй теперь обижаться С чего бы мне на тебя обижаться? Не проецируй на меня плз.
>>3539726 >Но опять же, это не имеет отношение к "сахару" >Такая возможность есть всегда, "сахар" на это не влияет
Что называется - когда за деревьями леса не видать.
>Покажи... >Те примеры, как мы выяснили, это не проблема "сахара".
Не, не буду. Выяснили мы лишь то, что ты до талого будешь пребывать в тотальном отрицалове и подрубать дурачка и демагога, из чего следует, что времени на тебя смысла тратить нет.
>>3539737 Ты путаешь причины, друг. Но считаешь себя самым умным и не можешь посмотреть на проблему с другой стороны. Получается, что ты узколобый. Вбил себе в голову идею и повторяешь ее, как попугай. >будешь пребывать в тотальном отрицалове и подрубать дурачка и демагога Из чего ты сделал такой вывод? Из того, что я разъебал твои примеры, а больше у тебя нет?
>>3539743 >Но считаешь себя самым умным и не можешь посмотреть на проблему с другой стороны.
Все адекватно у меня с самооценкой. Это просто ты не выкупил, что основная моя претензия - не к языковым фичам как таковым, а к тупорылым сахарным торчкам, которым в оффлайне не сидится.
>Получается, что ты узколобый.
Лол. Щас бы слушать упреки в узколобости от анона, не осилившего парсинг двух абзацев текста.
"ЫЫЫЫ, воды многа. Дай мне простой пример, да не абы какой, а такой чтоб я понял. Иначе я тебя разъебал. По фактам!".
>Из того, что я разъебал твои примеры, а больше у тебя нет? "Мам, ну скажи что я его разьебал. Ну мааам".
>>3539757 >ты не выкупил, что основная моя претензия - не к языковым фичам как таковым, а к тупорылым сахарным торчкам Как люди должны это выкупить? Читать мысли? >"Мам, ну скажи что я его разьебал. Ну мааам". Когда нечего сказать - пиши глупости какие-то, молодец
>>3539783 Семен, плз)) Вообще, я тут подумал >претензия к тупорылым сахарным торчкам А зачем обзывать людей, который хотят писать более понятный и выразительный код? Не понимаю. Ну хочет человек написать свою реализацию оператора [], чтобы код стал понятнее. И вот человек сидит 10 лет джет эту фичу и будет рад, когда она выйдет. Почему он тупорылый? Классы, наследование и все то, что в твоем понимании не сахар - это тоже своего рода сахар и были такие же додики, кому это не нравилось. Пиши на голом си без сахара, хуле, asm точно не осилишь
>>3539124 Ну например основной тезис ораклов - это предотвратить неправильный код. В их понимании, лучше вообще не порождать ситуации, когда неправильная практика будет разносится по кодовым базам. Из этих соображений например, тебе никогда нельзя было уничтожать треды. Т.к. это может порождать неправильную практику у разработчиков, когда они будут думать, что а нахер нам заморачиваться с interrupted, можно просто тяп ляп и готово. DSL, это как раз то, как чему приведёт введение, хотя бы инфиксных методов. Т.е. как раз избыток сахара. Мне кажется, основной тезис против в этом случае - это поощрение создания еще болшего количества магических библиотек. Т.е. они будут уходить во все большую и большую абстракцию, упрощая взаимодействие на базовом уровне и на этом может быть потрачено тысячи человекочасов, но в итоге это будет бесполезная шляпа, ведь шаг в сторону и эта библиотека не работает и тебе приходится ковыряться в этой магии и кишках. Или писать свою, ведь она неэффективна. Как пример, это например gpath, xpath в груви.. Не то, чтобы сейчас было мало магии или излишней абстракции, но возможно стоит просто сокращать количество инструментов для этого, да всегда можно найти обходной, но из-за сложности его достижения, возможно ты ещё несколько раз подумаешь, а стоит ли оно того.
>>3539808 >А зачем обзывать людей, который хотят писать более понятный и выразительный код? Не понимаю.
Тезис уровня "либераха из РФ". Те тоже, напялив на себя лозунги и идеалы, до конца верят в свою непогрешимость. "Зачем нас обзывать? Мы - либерахи! За нами прогресс, с нами - весь мир. Нас нельзя обзывать, мы попросту не можем быть неправы. это ватников надо обзывать...".
Кончили в итоге не очень хорошо,
Если кратко: сказать - не сделать. А за щеку такие персонажи ловят не за то, что в корне не правы, а за то, что просто по человечески бесят. Обычно так бывает, когда какая то одяжка начинает настойчиво навязывать никем не прошенное мнение.
А что, idea теперь чекает геолокацию что ли? Ещё в начале года спокойно ставил пробную версию и пользовался без проблем, а сейчас даже не даёт начать пробный период.
>>3540114 Сама живёт работает на жвм. Это мы знаем. В жвм есть возможность запускать premain в инструментах https://docs.oracle.com/javase/8/docs/api/java/lang/instrument/Instrumentation.html Ну и короче, этот малварь запускается выше чем идея, убирает байткод связанный с сервером и все, таким образом ломает возможность у идеи прочитать достоверность кода, она хавает любой. Как я понимаю енто работает. Если переживаешь за картинки с трапами, запускай в песочнице, где нет доступа к фс и тырнету.
>>3540126 >Ты же не на винде сидишь Ну конечно на винде. Я даже больше скажу, я использую десктоп версию докера и на гит коммиты пушу через десктоп приложение. Да, я такой.