Вкатываемся в новый язык на превосходно отточенной jvm с богатейшим набором библиотек от java.
>Что имеем: У нас есть синтаксический сахар поверх джавы, немного ФП (удобные лямбды), корутины с асинхронщинной, DSL и многое другое. В синтаксисе можно встретить много WTF-решений (как же без них), но в целом, плюсы перевешивают минусы. Так-то, во всех языках есть что-то что раздражает. Параллельно jvm платформы пилятся kotlin-js (котлин для javascript) и kotlin-native (компилируемый в нативный код котлин), а возможность языка в DSL позволяет писать на HTML и CSS (типобезопасно), если кому-то это надо. Котлин имеет полный интероп с джавой, от чего его не совсем корректно сравнивать его со scala.
>Хайп: Язык был подкреплен гуглом в связки мобильной разработки, а с недавних пор рекомендован как основной язык для андроида, из-за чего начался рост популярности языка. Также для языка был создан фонд, чтобы в случае покупки создателей не повторилась судьба с джавой. Вероятно условия гугла. В связи с этим, котлин очень популярен в мобильной разработке, порой даже раздражает, что весь свежий контент пишут именно о телефонах. Но нужно помнить, котлин это та же джава и сейчас мы видим, многие фреймворки предлагают решения сразу на двух языках (как минимум пишут примеры, но в целом котлин имеет хороший интероп и так).
>Производительность. Не забываем, что java (с JIT) одна из самых производительных платформ. Она делит топ 10 наравне с многими другими производительными платформами. Также у джавы хорошо оптимизированный драйвер базы данных, что видно по тестам. https://www.techempower.com/benchmarks/#section=data-r18&hw=ph&test=query Нередко именно база-данных является узким местом в веб-приложениях.
>Q: ...кококо, котлин уничтожит джаву! A: Нет. Котлин сильно завязан на джаву и не заменяет её, а скорее дополняет (как typescript дополняет javascript). Джаву никто и ничто не заменит в ближайшие 10-15 лет, у этого языка чрезвычайно огромный капитал написанного кода, поэтому переживать за неё не стоит. В любом случае конкуренция это хорошо, джава стала развиваться (попутно завозя годноту в байткод).
>Q: Стоит ли сразу вкатиться в котлин минуя джаву? A: Нет. Не стоит. Есть точка зрения, что котлин позиционируется как "удобная/лучшая джава", подразумевая то, что ты хочешь писать на джаве, но более современно и практично. Да и глупо игнорировать джавоский мир, который является в топе по числу библиотек и решений, где тебе все равно придется погрузиться когда-то в его синтаксис.
>Q: Но если меня интересует только разработка под андроид, стоит ли вкатываться в джаву? A: Стоит. Доки старого API на джаве, кодогенерация, байткод близкий к джаве. Ну и легаси, оно тоже на джаве.
>IDE - среда разработки. Бесплатная community edition - обычно более чем достаточно (и работает шустро), но можете попробовать триал-версию. https://www.jetbrains.com/idea/download/
>Telegram В телеге есть чаты по котлину. Это полу-белорусское комьюнити, которое клонирует пачками чаты (раньше про джаву - JavaBy и KotlinBy в Gitter). Крайне не рекомендую посещать это рассадник из ЧСВ макак. В чатах лобызаются одни и те же лица и если ты им не понравишься (а ты им не понравишься) будут постоянно тебя подстрекать пассивной агрессией или принуждать к анальным правилам, которые они вспоминают только тогда, когда пишешь ты. Конечно, ты можешь терпеть и сидеть в этой помойке, но если не хочешь словить негатив и получить ложное представление о ру-комьюнити, не рекомендую посещать этих ребят. Лично видел как токсично слили пчела за расспрос про api java. Если можешь в ангельский, лучше сразу нырнуть в слаку. https://kotlinlang.org/community/#kotlin-online-resources Но лично я рекомендую не заниматься херней в чатиках, а спрашивать сразу на StackOverflow, тем самым ты сразу поможешь тысячи другим пользователям (и себе в будущем, если забудешь): https://stackoverflow.com/questions/tagged/kotlin Там можно спрашивать даже банальные вещи (кроме неопределенных), они потом хорошо гугляться и превращаются в простой справочник. Серьезно, анон, прекращайте спрашивать на древних форумах, бестолковых чатах, и даже двачах. Если уж совсем плохо с английским и не можешь в переводчик, то там есть ру-язычная версия сайта, но это так себе идея
>>1817318 Кстати, еще один момент, в установке питона есть. Во время установки пункт добавления себя в PATH не активен. Юзер может по твоей просьбе поставить по принципу "далее... далее... далее..." и ничего работать не будет.
В общем, питон он только в маня фантазиях удобен, в реале даже поднасрать в установке может.
>>1817385 Я уже сам в него не верю. Тут даже раст не выстрелил, а в нем усилий на порядок больше вложено. Ну еще мне думается, они переоценили свои усилия. Слишком все медленно идет, лучше бы все усилия сосредоточили на jvm и удобных батарейках.
Не пытаюсь тут ныть, но мне, субъективно, стало казаться, что котлин забуксовал в развитие и росте популярности.
>>1817389 Да, вроде, у них как-то все неплохо. Тоже думал что это загон по типу свифта, но потом полазил и мнение немного поменял. Если бы мне сейчас представился выбор между Net Core и JVM, я бы выбрал нет кор или я просто от жабы выгорел, хз
>>1817311 (OP) > Крайне не рекомендую посещать это рассадник из ЧСВ макак. В чатах лобызаются одни и те же лица и если ты им не понравишься (а ты им не понравишься) будут постоянно тебя подстрекать пассивной агрессией или принуждать к анальным правилам, которые они вспоминают только тогда, когда пишешь ты. Конечно, ты можешь терпеть и сидеть в этой помойке, но если не хочешь словить негатив и получить ложное представление о ру-комьюнити, не рекомендую посещать этих ребят Лол, в телеграм-чатиках по Скале та же фигня. Какие-то раки хуже чем в /b/. Видимо такой способ общения чем-то привлекает этот специфический контингент
>>1817868 Вполне вероятно, что часть тех же токсичных лиц может сидеть и там.
Вообще, не редко возникает эта проблема в ру-чатах, было даже еще в эпоху irc. Ру говорящее айти (и не важно белорус, украинец, русский итд...) чрезмерно, почему-то, высокомерно и одновременно не очень культурно образовано (быдло), и почти всегда возникает местная тусовка и чисто инстинктивно пытается доминировать (потому как уровень культуры на уровне стада), а как доминировать, когда нужно показательно вести себя культурно (поддерживать эту иллюзию)? Только пассивной агрессией, задевая всех кто "не свой".
Есть ли Best Practice по конструированию объекта data-класса? Поясню, я собираю из одной xml другую. Есть RequestA, состоит из кучи всего другого, например есть поле CardInfo, в котором есть уже pan и т.д. Все это я беру, и сую эту вложенность в RequestB. И т.к я в котлине недавно, получается здоровая такая партянка похожая на джавовый код, хочу избавиться от этого.
>>1819773 Например в классе CardInfo запилить метод build(), который даже хз что будет делать, принимать объект и извлекать из него нужную инфу, возможно. И так со всеми классами
>>1817311 (OP) Разраб на Ноде, думал перекатиться на бэкенде в ЯП со статической типизацией, Котлин вроде выглядит неплохо. Зашел посмотреть вакансии, почти во всех где нужен бэкенд разраб Котлин идет в паре с Жавой или С#, че захрень?
>>1825490 Котлин всплыл совсем недавно и в первую очередь для андроида. А старые джава-проекты никуда не делись. Вот и юзается котлин не в чистом виде, а в связке с джавой. Ещё есть Go. раз перекатываешься с ноды, он может тебе зайти, но те, кто пишет на статике, от го блюют. Ну и ещё есть скала, со своими заморочками.
>>1825490 >Котлин идет в паре с Жавой или С# Странное сочетание сишарпа и котлина.
Но вообще, если по честному, нет нормального статического типизированного языка. Джава, кусок древнего говна, котлин, это свежее попытки, но поверх древнего говна и не все так гладко в синтаксисе. Шарп, не уверен что будут все нужные либы кросс, в общем, неожиданный вендор лок, я думаю, ожидаем. Го, мог ворваться в этот рынок победителем, но нельзя бегать и какать на ходу. Поэтому грызи либо ts. Либо оставайся в динамике, всякие jsdoc вполне выполняют ту роль, которая требуется от статики сейчас, все зависит от твоей организованности, но нода это кусок говна.
>>1827706 Чёт все языки по-своему хуёвые, что статические, что динамические. Ни один не вызывает у меня восторга.
> Го Засилье interface{} никак не тянет на нормальную статику. Да и наверняка в результате получится та же жаба. Гоферы говорят о простоте, но и жаба - один из простейших языков, и всё сложность в тоннах легаси, просто на го это не так незаметно, пока легаси мало.
> ts Те, кто его тыкал, говорят, что там ненастоящая статика, то ли из-за any, то ли там можно вызвать несуществующий метод, хуй знает.
>>1828240 Возможно, но это не отменяет ненужность таких языков в наши дни. Тем более на свифте, как слышал, часто кладут на обратную совместимость, что вообще делает язык не пригодным в промышленном программирование.
>>1828913 да конечно! жизненный цикл этой хуйни приходит к концу.
эту еболу прокатили жиды, получили профиты, больше она нахуй не нужна им. ща новую будут пилить, чтоб вам её скормить. типа "смузи-новейшая-секси-технология"
вон hr уже в вакансиях пишут не "у нас хорошие зп и бонусы", а "наша вакансия - отличная возможность перейти на ТЕХНОЛОГИЯ-НЕЙМ"
>>1829072 Понятно что ты залетный школьник. Но мне просто интересно, какие могут быть причины, резко взять и переписать на 8 жабу? После котлина, жабу вообще противно трогать.
>>1829296 Я в этот участок проекта не лез, просто слышал, что там были какие-то проблемы с версиями зависимостей. Один разраб впилил, другой выпилил. > После котлина, жабу вообще противно трогать. Это твоё личное мнение. Не все считают, что котлин - это лучший язык всех времён и народов.
Погуглите кто создал язык котлин Какие профиты? Чем учить чужую хуйню и зависеть от её создателей/корпораций, круче придумать свою и подсадить всех на неё. Типично жидовская тема, кстати.
>>1829307 >Не все считают, что котлин - это лучший язык всех времён и народов Никто так не считает, после любого языка убирающего бойлерплейт, будет противно на жабу. Мне в свое время говорили учи шарп, потом если надо легко на джаву переедешь. А я потом оплювался жабу трогать. Если бы мягкие не были в свое время такими муднями, сейчас бы вообще вопроса не стояло, какой ЯП на тяжелый бэкенд брать.
Судя по сленгу и причине в которой котлин никаким местом не причастен, ты мимозалетный фантазер.
>>1830488 > А я потом оплювался жабу трогать. Надуманно. Я спокойно слез с питона и js на жабу.
> Судя по сленгу и причине в которой котлин никаким местом не причастен, ты мимозалетный фантазер. Сука, ты читать умеешь? > Я в этот участок проекта не лез, просто слышал За что купил - за то и продаю. Я о котлине и его мирке вообще ничего за исключением того, что он подключается через плагин мавена и компилится в классы. И о том, какие там могут быть проблемы с зависимостями, знаю ещё меньше тебя. Но факт остаётся фактом - выпилили под предлогом проблем с зависимостями, действительно это так или нет.
>>1830505 >подключается через плагин мавена Неожиданно, жаба там тоже подключается. Так как изначально задумывали как универсальные сборщики независящие от языка классический задержавшийся юношеский максимализм, у взрослых дядей
Ты это байду про версии в этом треде и вычитал, где чел говорил что не мог два подпроекта объединить (довольно редкая и решаемая другим путем задача). Так что иди самоутверждайся в другом месте.
>>1830756 > Ты это байду про версии в этом треде и вычитал, Заявляя, что я фантазёр, ты превзошёл самого себя и начал фантазировать сам.
> где чел говорил что не мог два подпроекта объединить (довольно редкая и решаемая другим путем задача). Я в это не сильно вчитывался, но если под проектами понимаются модули мавена, то я даже придумать не могу, откуда там проблемам взяться.
Вот какого хера, енум не может заимплеменитить интерфейс в котором есть метод String name()? Почему в яве это отлично работает, а тут ошибка компиляции?
привет двач, мне дали делать новый проект на спринге с нуля и я хотел предложить котлин, но мне отказали и я вот пишу на джаве( вот такая табличка готовится чтобы показать работодателю, хочу на котлине писать, добавьте чего-нибудь в обе стороны, что вам нравится в обоих языках спасибо котлин тред вы у меня самые лучшие!
>>1836338 мне не приходилось этого делать а пока не приходится - нахуй надо знать=) это проблема точно не моя, а языка. функциональные интерфейсы - худшая попытка спиздить функциональщину переделав под ооп... в общем вместо того чтобы гадости писать предложили бы чего интересного.... =(
>>1835964 >modern syntax Что в нем модернового, если они полностью слямзили вдохновились у других языков? Что вообще является современным синтаксисом, какой критерий?
>>1836607 все то, что есть в котлине, но нет в джаве все то, что есть в шарпе, но нет в джаве чел ты доебался до ничего, ты очень глупый >>1836470 мне без разницы как они реализованы до того момента, пока я могу описать тип лямбды через ахуеннейший синтаксис котлина, благодарен великим русским разработчикам за то, что мне не приходится трогать уебищные функциональные интерфейсы джавы
жесть блин вы меня расстроили, попросил пунктиков накинуть а вы мне гадостей написали, хуй с вами короче, отдам как есть
>>1838724 Я как-то тыкал скалу и увидел, что в котлине многое взято именно из неё. Так что часть претензий насчёт упоротого дизайна можно обратить к создателям самой скалы.
>>1839689 так они могли не брать этот хуевый дизайн я мимокрок, сам очень люблю абсолютно все что есть в котлине, ни одна фича не кажется убогой (пока что)
>>1839689 Котлин заявляет более лучший (по сравнению со Скалой) интероп с джавой, однако в Скале val m: java.util.Map[String, Any] = java.util.HashMap[String, Any]() работает как и ожидается, а вот соотвествующий аналог в Котлине val m: java.util.Map<String, Any> = java.util.HashMap<String, Any>() не скомпилится.
Раз они упоролись в нейтив, они могли вообще не брать за основу jvm, а взять llvm сразу.
В итоге мы имеешь, -хер пойми какое объявление конструкторов (считаю это эпик проёб) -просрана короткая запись для списков [] и мап {} -избыточный загон по мутабельности и не мутабельности в языке -изуродован static в виде компаньюнов каких-то. -непродуманные дата-классы с мелкими подводными, в том числе отсутствие наследования -не такой уж и прям честный 100% интероп. -dsl, который, для меня, не так и гибок как хотелось бы. -беднейшая стандартная библиотека. -избыточные непонятные экстеншены в стандартной библиотеки (взять ту же строку, херова туча непонятной херни) -зачем они сделали отсебячину с корутинами, хотя уже их критиковали за это. -100500 зарезервированных ключевых слов -Вводить дополнительные подтипы для null, имхо, не лучше дизайн. Теперь null типы проблемны и неудобны. Не так много проблема NPE приносил, как привносить проблемы нуллабл типы. То есть, от null вообще надо отказываться (делая какие-то спец исключения или еще что-то), а не в типы его засовывать.
Или вот пример с пропертями и приватными сеттерами и публичными геттерам. Помню говорили мол, нет кейса использования, а значит это вам не надо мы же блядь умнее вас, хули вы хотите. Но оказалось настоящие программисты стали приводить кейсы, когда это может быть надо (например сделать поле length в какой-нибудь коллекции из которого можно читать, но писать мог бы только сам класс).
>>1839770 > не брать за основу jvm, а взять llvm сразу То есть высрать очередной язык без инфраструктуры, в котором нет ничего, кроме сахарочка и громоздких жаба-подобных идентификаторов? Какой-нибудь Go хотя бы поддерживается гуглом, а котлин бы родился уже мёртвым.
>>1839781 Котлин как раз и создавался с целью пофиксить жабу, а не создать очередной инновационный язык, которых и так десятки тысяч. В определённых кругах он всё же востребован, на андроиде это основной язык, а в бэке уже на уровне скалы почти нулевом.
>>1839783 Логично фиксить джаву должна сама джава. Зачем тащить говно и потом побеждать его, когда говна можно просто не брать. Ну ладно, хер с ним, так то понятно зачем им ЯП на джаве. Нужно известное имя чтобы продвигать продукт. Но зачем они в нейтив полезли и тем более в js? Почему не делать котлин еще лучше? Там уже жаба догоняет их.
>>1839783 >В определённых кругах он всё же востребован У нас по началу дали команде поиграться, всем зашло, но остальные отказались, мол хера писать тоже самое только еще синтаксис учить и новые подводные камни осваивать, в итоге снова java, здравствуйте.
>>1839795 Но вот для своих проектов я бы новый яп взял, но не на базе jvm (и точно не го, раст для бизнес логики сложен, динамика сосёт, шарп вроде кажется продуманей, но хз).
>>1839794 > Логично фиксить джаву должна сама джава Джава, как видишь, добавляет фишечки очень неохотно. Но даже если и добавит, все по-прежнему из-за легаси будут сидеть на древних джавах, где этих фишечек нет. А котлин позволяет хоть прям сейчас юзать сахарочек, ничего при этом не ломая. > Нужно известное имя чтобы продвигать продукт. Вот только груви, цейлон и кложура что-то не особо продвигаются, хотя имя вроде бы известное. > Но зачем они в нейтив полезли и тем более в js? Могут - вот и полезли. JVM всё равно остаётся в приоритете.
>>1839801 >Джава, как видишь, добавляет фишечки очень неохотно Есть такой эффект в программирование, хз как называется, пускай будет эффект Семёна. Дело в том, что чаще популярные яп тащат в свои языки идеи, а новый инноватор тухнет на обочине. Яркий пример руби и рельсов, или фп фич.
>не особо продвигаются Глупенький, наоборот, котлин нужен чтобы популизировать продукты жопбрейнс. Собственно это и объясняет желание засунуть его везде. Чтобы сиял повсюду.
>Могут - вот и полезли И увязли.
>JVM всё равно остаётся в приоритете. Ничего нового толком и не пилится, стандартная библиотека выглядит как обертка копипаст, ни пакетного менджера, ни веб плюшек (полноценных фреймворков удобных, раз уж даже в js полезли), вообще отсутствие флагманских проектов. Даже у дарта там тормозной флаттер есть.
>>1839810 > популярные яп тащат в свои языки идеи, а новый инноватор тухнет на обочине Джава, скорее всего, и будет развиваться с оглядкой на котлин, который выкинут, когда он перестанет быть особенным. В этом ничего плохого нет. > котлин нужен чтобы популизировать продукты жопбрейнс Это с точки зрения жетбрейнса. Но они создали сравнительно удобную технологию, и странно отказываться от её использования только потому, что жетбрейнсу от этого может быть профит. Вон Go тоже создавали для внутренних нужд гугла, но теперь его пихают куда не лень. > И увязли. Их проблемы. В JS-мирке хорошо не бывает, а проблемы с нейтивом не могут решить даже те, кто целенаправленно создаёт языки для него. > обертка копипаст Лучше сложно что-то придумать. > ни пакетного менджера Мавен, градл, ант. Или ты предлагаешь и здесь всё с нуля делать вместо использования готового? Это уже на NIH похоже. > ни веб плюшек Ktor, Spring, EE, и прочее из джава-мирка.
Складывается ощущение, будто ты веришь, что котлин - это самостоятельный язык, а не на подсосе у жабы.
>>1839825 > 2 + 2 = 4 > Какое шаблонное мышление, конспект из начальной школы! > Ладно, давайте выскажем свои мысли. Может, это 5? Хотя нет, была такая гипотеза, и она опровергнута. Хорошо, посчитаем на пальцах. Всё-таки 4. Такой анализ хочешь?
>>1839821 >Мавен, градл, ант, Spring, EE Так зачем мне тогда твой котлин?
>странно отказываться от её использования только потому, что жетбрейнсу от этого может быть профит. Кто это сказал? Зачем ты подстраиваешь мой ответ под свои мысли? Тут речь о том, что у их конкретный профит не связан с профитом среднестатистического разработчика. А раз у нас вектор разный, рано или поздно мы разойдемся в интересах.
>Лучше сложно что-то придумать. Там ничего нет, хватит подменять понятия.
>будто ты веришь, что котлин - это самостоятельный язык Тогда зачем мне учить новый синтаксис и иметь в поддержке сразу два языка?
>>1839833 > Так зачем мне тогда твой котлин? Сахар. Если он тебе не нужен, то и котлин не нужен. > Кто это сказал? Зачем ты подстраиваешь мой ответ под свои мысли? Потому что ты не умеешь их формулировать, и непонятно, что хотел сказать. > конкретный профит не связан с профитом среднестатистического разработчика. А раз у нас вектор разный, рано или поздно мы разойдемся в интересах. Тогда все вернутся обратно на жабу. > Там ничего нет, хватит подменять понятия. И не должно быть. > Тогда зачем мне учить новый синтаксис и иметь в поддержке сразу два языка? Не хочешь - не учи, тебя никто не заставляет. Продолжай писать на джаве, всё равно котлин через время исчерпает смысл своего существования.
>>1839838 >Зачем ты подстраиваешь мой ответ под свои мысли? >Потому что ты не умеешь их формулировать "Ты говоришь не под мое шаблонное мышление, поэтому я скорректировал чтобы оно совпадало с ним". Так будет правильнее.
>Сахар. Если он тебе не нужен, то и котлин не нужен За какой-то сахар, я должен тратить время на переучивание? Странная цена.
Остальные ответы уровня пятиклассника - не нравится, не делай. Интеллектуальный дисскус это не твоя стезя, лучше больше не влезай в него.
>>1839843 > Так будет правильнее. Нешаблонное мышление - это отрицание очевидных фактов? Я тебя понял. > За какой-то сахар, я должен тратить время на переучивание? Странная цена. Да там и учить нечего, не кресты. > Интеллектуальный дисскус это не твоя стезя, лучше больше не влезай в него. Ты придумал себе манямирок из-за непонятой сути котлина и ещё хочешь каких-то "дисскусов". М-да.
>>1839779 людская лень. один из челов, которые тут наспорили, говорил >Тогда зачем мне учить новый синтаксис и иметь в поддержке сразу два языка? ты недооцениваешь эту ебанутую лень, которая не позволяет перстроиться с говна на конфеты
>>1841376 > костыли поверх древнего синтаксиса > джаваскрипт То есть ты не пользуешься бабелем и полифиллами, чтобы транслировать новейший EcmaScript в старые стандарты, поддерживающиеся у большинства, а сразу хуяришь на прод, чтобы открывалось только в самых свежих браузерах?
>>1841390 Хром обновляется по кд, а кто сидит еще на XP или каком-нибудь IE, они не платежеспособны и не интересны бизнесу в котором я работаю.
Собственно именно поэтому стал ненужен ts. Js впитал уже все лучшее, а типизации хватило на уровне jsDoc. на самом деле, по нашему внутреннему исследованию, типизация нужна лишь для автокомплита в IDE, подсветки ошибок там же и рефакторингу. Если всех заставить писать jsDoc, то динамико-пораша становится удобной и главное шустрой. Пока ты компилишь свой код, js код скорее всего уже исполнился.
Но это другая ветвь развития, тут даже не старайся понять или дискутировать, ибо действительно жаба и шарп это отдельным мир. И вот, возвращаясь к сказанному, если выбирать между жабой, прокси языком по типу ts - котлином и шарпом, я выбрал бы шарп, просто потому, чтобы не нужно скакать по костылям синтаксиса джавы и её поверхностными фиксами, в виде котлина с новыми костылями и подводномы.
>>1841124 У котлина нет стдлибы, у него сахарок поверх стдлибы явы. Но местами он карамелизовался и перекрыл доступ к стдлибе явы. Не то, чтобы прям проблема-проблема, но неприятно. Косяки интеропа с явой - это реальная проблема для миграции существующих проектов.
>>1841954 ну так это же вполне можно назвать стдлибой а про миграцию печально да, но косяки правятся, все предусмотреть невозможно, учитывая что они многие вещи сделали по-своему, так что либо терпим и переносим на котлин, либо терпим еще больше но на жабе
>>1842963 Это не inner, это nested. Отличие в том, что inner имеет доступ к экземпляру содержащего класса. Иными словами Nested - это аналог static класса в джаве.
>>1817311 (OP) Всем привет, неофит в треде Есть один цикл Есть массив из нескольких элементов Мне нужно по определенному принципу часть элементов отсеять и перенести в другой массив Выглядит это примерно следующим образом https://pastebin.com/rN7457Re Для каждого type будет несколько элементов i, которые нужно выкинуть И всё работает Но что, если для какого-то type будет 100 элементов. Запись и так выглядит громоздко. Как можно авторитетно и по красоте написать?
В идеале это всё в функцию засунуть, и потом просто вызывать эту функцию, да? Как это лучше сделать? В другом файле и импортировать функцию?
>>1843084 >>1843094 type никак не связан, это сторонняя переменная, которая приходит из другой части кода. Если будет удобнее, это сигнал от свитч-кнопки. По замыслу творца выключение свитч-кнопки должно убрать из общего пула (речь про массив) несколько значений, которые имеют определенный индекс в массиве (как раз несколько значений i)
>>1843147 Я бы объявил val filters = mapOf<Type, Set<Int>>() Где Type это енум с типами кнопок, который можно нажимать. А Set<Int> это значения которые связаны с конкретным типом.
>>1843153 Извините, я неофит А можно какой-то пример с картиночкой? Желательно к этому же самому примеру Просто mapOf - это же пара ключ-значение, много пар, вернее. >дубликаты ключей не допускаются, значения могут быть одинаковыми Из документации, а у меня на 1 ключ (у тебя в примере type стоит как раз на месте ключа) будет прямо много значений Хотя, если подумать, можно как ключ использовать i, а значение - значение type. Звучит вроде бы даже логично, только не очень понятно, как теперь жить с этим.
>>1843176 Извините за тупость, но я нихуя не понял enum class Type { TYPE1, TYPE2 } Но ведь у каждого type (в моем примере) два значения 0 или 1, в зависимости от которых и выполяется / не выполняется условие
>fun filter Я слишком слаб, но я не понял ничего после этого Но там нет if, и нет while Получается, что это только функция, для дальнейшего использования её в цикле?
>>1843278 Глобально: есть ли какие-то способы (желательно простые, как показывает практика) сделать вот это >>1843019 Продублирую ещё раз пастебин https://pastebin.com/rN7457Re как относительно лаконично записать это, если количество i будет не 3, как в примере, а 100?
По сути нужно писать подобное + еще пару переменных для каждого игрока. Есть ли способ как-то сократить это? Например, foi i 1..x name$i -=.. Но такую запись не принимает. Как модно молодежно сделать?
Пока писал, посетила мысль забить всё в массив и доставать по номеру игрока. Норм тема?
>>1846691 Даже если бы такая возможность была - нахуя? Как потом такой код читать, чтобы в нем разобраться? Какие-то переменные, которые хуй пойми откуда взялись. Пиши нормально, как у тебя сейчас в посте.
>>1846691 тут вопрос к дизайну твоего приложения, че это за хуйня а вообще есть прикол с декомпозицией, но он опять же работает только с нормальным дизайном val a, b, c = objectThatGetsDecomposed
блин блять можно я сюда про гредл спрошу? я заебался.
как можно поменять проджект-нейм без помощи гредл.сеттингс?
как может получатся разный artifactId когда я вызываю publish и publishToMavenLocal ? всю репу засрал уже.
конкретно: мне нужно в артифакт-ид указать версию некой либы, ее я храню в buildSrc, поэтому в gradle.settings не могу просто прописать rootProject.name = "myname-${Vers.liba}" (т.к. сеттингс подгружаются раньше билдсрц) Ну окей, я в MavenPublication указываю artifactId какой мне надо, на локали публикуется все как надо, а при деплое в удаленную репу (gradle publsih) используется имя из гредл-сеттингс
Народ, а нет ли какой хорошей книжки по котлину, где бы с (не совсем тупыми) примерами и задачами рассказывалось про все фишки и внутренние особенности котлина от простого к сложному?
Можно в object инициализировать val в методе, наподобие как конструктор/статический инициализатор в яве?
Пример https://pastebin.com/wmg8wZar хотелось бы избавиться от matchGroup потому что посл создания регекспов она уже не нужна. Можно конечно через let сконвертировать в регулярки, но получается нечитаемая ебанина в реальном коде, логики больше.
>>1847255 Насколько я понимаю, сейчас есть две книги которые есть смысл читать. 1 - Kotlin in action (норм) 2 - Kotlin. Программирование для профессионалов (такое себе)
https://habr.com/ru/company/funcorp/blog/528778/ > корутины с synchronized работают через жопу > интероп с джавой через жопу (см. MutableMap) > говнище в синтаксисе вида companion object > ахах ваша скала мертвая)) в котлине лучше интероп с жавой)) Каково это, пользоваться поделием шизика в медицинском смысле Бреслава?
>>1860110 > корутины с synchronized работают через жопу Ну так они работают, потому что разработчики Котлина ленивые жопы. А так-то препятствий нет, можно даже на этапе компиляции заменять @Synchronized на synchronized() {}.
На самом деле, что не может сделать Котлин так это блокируюший IO заменить на неблокирующий. А вот Project Loom - может. Но Котлин тут и уже работает, а Loom там далеко и неизвестно когда будет.
>>1860110 Блин, они эту жопу 5 лет писали. При том что новых идей то и не было.
Мимо слился с котлина, когда увидел какую жопу они с асинк авей придумали и понял, что они намеренно будут делать всегда по другому, по своему и максимум под IDE.
мимо ОП Появилась вкусная возможность перекатиться на шарп что я и сделал. И решил полностью выкинуть экосистему джавы из своей жизни. Поэтому перекатывайте этот котлин сами.
Фулл-перекат получился не по причине фанатизма к новой платформе, а просто потому, что выгорел и в какой-то момент осознал, что вокруг жабы создан переоцененный пузырь восхваления, не соответствующий действительности.
>>1862656 >и в какой-то момент осознал, что вокруг жабы создан переоцененный пузырь восхваления, не соответствующий действительности. Даже интересно стало, через сколько лет ты в .Net разочаруешься. Думаю 2-х лет хватит, чтобы понять что это то же самое говно, только обильно посыпанное сахаром.
>>1863792 >Жидбрейнс пишут на расте. Сейчас бы в 2020 до сих пор не знать о способе пиара на модных и молодежных языках, чтобы твою компанию где-то чаще упоминали.
>>1863792 >...то же самое говно, только обильно посыпанное сахаром Тут речь не про синтаксис и сахар, а то что технология сидит на легаси в тырпрайзе и востребована только по инерции ну еще андроид палкой теребит. В итоге получаем 100500 кривозадейзаненных с оверхед кодом библиотек с мантрой о том что память дешевле разработчика.
>.Net разочаруешься По крайней мере мягким не пофиг на свое детище, сам шарп активно развивается.
>>1863899 Предатель. Сначала в джава-треде котлин пропагандировал, теперь в собственном треде за дотнет топит. Дальше будешь пайтон форсить, а потом жс. Перебежчик!
>>1863878 Кому пиариться? Такого аутиста, который пишет на Яве/Котлине и не знает жидбрейнс еще поискать надо. Плюс не ты ли заявлял >Раст уже так загубили. ?
>>1863899 >Тут речь не про синтаксис и сахар, а то что технология сидит на легаси в тырпрайзе и востребована только по инерции ну еще андроид палкой теребит. >В итоге получаем 100500 кривозадейзаненных с оверхед кодом библиотек с мантрой о том что память дешевле разработчика. Так при чем тут язык, это на любом проекте так может быть. Смотри на компанию, проекты, отношение к коду. Или ты такой наивный, что веришь что язык волшебным образом решает проблемы с разработкой?
>По крайней мере мягким не пофиг на свое детище, сам шарп активно развивается. Что принципиально нового появилось в последней версии? Сахар не в счет.
>>1864573 >Так при чем тут язык Язык как всегда не причем, это программисты плохие. К сожалению джава действительно не плохой язык, но отделить его уже от текущего стека, почти не реально. только на андроиде какие-то свои велосипеды сделали
>Сахар не в счет. Синтаксис, наверно тоже не в чет, лол? А вообще, объединение всех веток .NET под общий опенсорс.
>>1865117 Тред посетил гуру маркетинга, вы получаете +15 к харизме. Чел ты по одному скриншоту делаешь выводы, что на самом деле раст не используется, а упомянут просто для пиара. Извини конечно - но ты полный мудак.
>>1865118 >Язык как всегда не причем, это программисты плохие. Не программисты, а отношение к разработке - проджект менелжмент и все такое.
>К сожалению джава действительно не плохой язык, но отделить его уже от текущего стека, почти не реально. Так стек это как раз вин - у тебя есть фреймворки и библиотеки на все случаи жизни. Например сравни билд тулы в яве и дотнете, дотнет так и сидит на копии Анта.
>Синтаксис, наверно тоже не в чет, лол? У тебя десяток способов отфильтровать список и каждый использует что ему нравиться а еще там есть всякие подводные камни по части перфоманса. В результате в коде разброд и шатание.
>А вообще, объединение всех веток .NET под общий опенсорс. Ну это как переезд явы на гитхаб - круто конечно, но простому разрабу до лампочки.
>>1865291 >Тред посетил... Ппц ты тупой и никто не говорил что они не используют. В предыдущей компании, несколько лет назад писали какой-то йоба-микро-сервис на го, чисто чтобы потом чел поехал на конференцию в мухажопинс и посветил там компанией.
Звездец, какие нынче программисты тупые и далекие от реальности, ты наверно еще и пони трахаешь? Ты из этих, одаренных? Да?
>>1865868 Если совсем тупой, поясню. Смысл в том, что у новых языков тесное сообщество и потом мимохер может сказать что, эта йоба-компания использует го. Как минимум они эту хрень хорошо запоминают, это что-то вроде внутренней победы, когда новый язык кто-то еще берет в свои ряды.
>>1862484 Сжв-левака с шизой на сжв-левака ты хотел сказать? Или ты пропустил бреславовские выступления на тему "зачем нам нужны квоты по писечке в ойти"?
>>1862557 Сказал так, будто его пидоры загубили а не оптимизация зп сео расходов в мозиле.
>>1865868 >В предыдущей компании, несколько лет назад писали какой-то йоба-микро-сервис на го, чисто чтобы потом чел поехал на конференцию в мухажопинс и посветил там компанией. Пчел, ты хоть открой хх прежде чем писать такую хуйню. Го — это новый пхп, количество вакансий на нём прирастает чуть ли не по 20% каждый год. Хотя в реалиях какой нибудь челябы где самая новая технология это дельфи 7, наверно это вообще эзотерика.
>>1865869 Ну, не все в курсе реалий твоего мухожопинска, держи в курсе, очень интересно.
ЖБ — явно та компания, которая нуждается в такой хуйне. Там же не работает куча народу, и какая нибудь команда не захотела просто пощекотать себе анус, ведь им манагер запретил бы как тебе в твоей галере на 7 человек, ты наверно вот так мыслишь?
>>1865291 >Ну это как переезд явы на гитхаб - круто конечно, но простому разрабу до лампочки. Пока он не захочет поковыряться в исходниках, с тем, как они показывали исходники раньше, можно было разве что анус себе поковырять. Хотя у тебя программирование наверно заканчивается на крудах.
>>1865868 >В предыдущей компании, несколько лет назад писали какой-то йоба-микро-сервис на го, чисто чтобы потом чел поехал на конференцию в мухажопинс и посветил там компанией. Пиздец маняпроекции - где-то, когда-то использовало язык потому что модно, и теперь из этого следует что все так делают.
>>1865990 >Пока он не захочет поковыряться в исходниках, с тем, как они показывали исходники раньше, можно было разве что анус себе поковырять. Не ослил склонировать проект из меркуриала, но всем пиздит что правит баги в JDK.
>>1865990 > в реалиях какой нибудь челябы Не гони на челябу, у нас тут даже на Скале одна контора пишет например правда руководство там пидарасы, кидающие при увольнении на деньги
>>1866189 >но всем пиздит что правит баги в JDK. Я написал "почитать", а не "контрибьютить". Ты возможно язык плохо знаешь, но залезти на гитхаб и поскролить файлики и вдрачиваться в проект для работы — это дохуяразные вещи.
>>1866185 Да не использовали там из-за этого, просто кто-то взял и затащил. Если бы реально хотели пиарится — сразу бы на гитхаб выложили и пошли по конференциям, а не выжидали бы несколько лет, лол.
>>1866254 >у нас тут даже на Скале одна контора пишет например А в дс 300 таких вакансий, перегнали, чего сказать. >правда руководство там пидарасы, кидающие при увольнении на деньги Вот это кстати звучит как план — заманиваешь хипстерскими технологиями и не платишь бабулес.
>>1866322 >Я написал "почитать", а не "контрибьютить". Ты возможно язык плохо знаешь, но залезти на гитхаб и поскролить файлики и вдрачиваться в проект для работы — это дохуяразные вещи. Это прям какой-то феерический уровень аутизма, быть достаточно тупым чтобы не суметь сделать hg clone, но при этом поскролить файлики на гитхабе где нет даже go to declaration нет и что-то там понять.
>>1865968 >Сказал так, будто его пидоры загубили а не оптимизация зп сео расходов в мозиле. Тут какой-то анон ванговал в раст тредах (года 4 назад), что скоро вышвырнут всю эту хипстер компашку, которая проедает бюджет. Так, собственно и вышло, только не так сразу.
>>1866633 Ну раз уж ты скозал. >где нет даже go to declaration нет Вот это я понимаю жавадауна прорвало. >и что-то там понять Скажу тебе больше — я половину времени вообще в виме работаю, кек.
>>1866692 Анон в треде просто пердел, подобные вещи угадать невозможно тащемта. Можно с тем же успехом так срать про все новые технологии и потом сказать "а я знал!1" когда 1 из 100 осталась без финансирования.
Алсо, судя по регулярным обновлениям https://github.com/rust-lang/rust/blob/master/RELEASES.md спонсоров хватает и всё у них в порядке. master в main так и не переименовали в основном репозитории)0 или зеленоволосых лгбт-борцунов выгнали нахуй уйдя из мозиллы?
>>1866729 -Хипсторы постоянно гробят чужой бизнес, просерая все полимеры. -Мозила набирает толпу хипстеров для нового проекта. -Последствия предугадать невозможно, это ультра сложная логика, анон просто угадал.
>>1866741 Я как-то смотрел конфу, там хистероды рассказывали как взяли на нагруженный проект питон. И блин, неожиданно, спустя мясацы и тонны денег заказчика, оказалось, все тормозит и жрет ресурсы аки монстр. Но хистеров было не остановить, они там что-то подкрутили, что-то заменили и таки смогли на последнем пуке заставить пистон работать, о чем собственно и конфа.
Самое забавное, они даже не поняли где их ошибка в ДНК и зачем они вообще сову на глобус натянули.
>>1866729>>и что-то там понять >Скажу тебе больше — я половину времени вообще в виме работаю, кек. Я ему говорю, что через веб морду репозитория нихуя толком не посмотришь, он мне рассказывает что сидит в виме, в котором и go to definition и прочие функции по работе с кодом есть. Ну не мудак ли, а? Ладно иди в хуй аутист, не буду дальше с тобой спорить.
>go to definition и прочие функции по работе с кодом есть Без изъёбств по превращению его в иде там go to definition уровня браузера с ctrl-f, что ты несёшь-то, уебан?
>Ладно иди в хуй аутист, не буду дальше с тобой спорить. Сказал так, будто можешь спорить а не серить себе штаны.
>>1872900 С приходом вебассембли и полной замены html на этот вебассембли, ты эти перделки и не вспомнишь.
Но суть не в этом, а в том, что современную вебу они не нужны. Как бы это не было странным, но современный html и жопоскрипт самодостаточен и не требуется каких-то фреймворков которые как-то по своему тупо хранят состояния и реализуют jsx, который один в один как html.
>>1872934 > С приходом вебассембли и полной замены html на этот вебассембли, ты эти перделки и не вспомнишь. Ещё лучше.
> Но суть не в этом, а в том, что современную вебу они не нужны. Как бы это не было странным, но современный html и жопоскрипт самодостаточен и не требуется каких-то фреймворков которые как-то по своему тупо хранят состояния и реализуют jsx, который один в один как html. Суть хуякта в том, чтобы делать любые действия на странице, вообще её не перезагружая. Отсюда вытекает любимый жопаскриптерами "компонентный подход", который лишь следствие того, чтобы обозначить, что именно переренеривать на странице при обновлении, причём таким образом, чтобы не получилась неподдерживаемая лапша. Ну а jsx - это просто сахар, чтобы вместо document.createElement() писать </>. Конечно, всего можно добиться без хуякта, но через время выяснится, что в проекте он просто изобретается с нуля.
>>1872954 >Суть хуякта в том, чтобы делать любые действия на странице, вообще её не перезагружая Некуясе, а парни то не знали это, перезагружали раньше страницы без ректала. Как такое может быть?
>компонентный подход Тебе уже дали более менее нормальный ООП в жс.
>>1872954 >но через время выяснится, что в проекте он просто изобретается с нуля Макертинговый буллшит. Ладно этим деньги платят, вы то зачем бесплатно это разносите.
>>1874056 Пишу из 2023. После того как майкрософт стал спонсором фонда и основным контрибьютером раста, все пишут только на нем. С++ вымирает. Дизайн веба происходит только на вебассембле, HTML DOM даже не вспоминают. И кстати нормально портировать JVM на новую мобильную платформу так и не получилось.
>>1874708 Это пиздит. Я из 2025, и ещё года три назад с растом все закончилось тем, что из него в кресты притащили опциональный боров-чекер, и на этом моменте раст перестал быть нужен
>>1875085 ты хоть на скрины бы посмотрел, дурной. тут видно что джава-код работает без проблем. а при абсолютно таком же кейсе котлин заглатывает + не компилируется.
>>1874805 Загнется html DOM, загнется и js, утянет и typescript. Будет, конечно, попытка с продвинуть с .Net, но будет как всегда поздно.
Конечно, работа то еще будет по старому html и прочему, но кому это надо, когда у тебя интерактивный сайт или почти полноценная сетевая игрушка в браузере.
>>1875073 С++ по инерции долетает последние десятилетие. Скоро станет ясно, что раст или ему подобные языки делают разработку большого ПО надежнее, а значит дешевле.
>>1875449 Нет, не станет :) Просто вы, бесплатные долбоёбы, как всегда сделаете за серьёзных дядек всю грязную работу по написанию библиотек, чтобы они потом пришли на всё готовое. А потом эти дядьки вместо вас, капризных, наймут за объедки с айтишного стола вьетнамских макакенов, которые наводнят ваши репозитории таким отборным говном, что у вас попчанские сожмут водород в гелий и вы из своих растов разбежитесь в слезах.
Фронтендир не человек пытается вкатиться в серверную разработку почти с нуля. Изначально выбор пал на ноду, но чем больше с ней работаю, тем меньше нравится. Одно дело какие-то фронтендо-тулзы, другое кодать сервера на ней. Короч сейчас думаю попробовать запилить небольшой проект в учебных целях. Веб сокеты, полсотни юзеров, база данных и круд уровня списка товарных позиций. В моём случае проблема ещё в том, что хотелось бы чтобы это всё крутилось на недорогом VPS в докере. Собственно вопрос хватит ли Котлину 2Gb оперативки под обозначенную выше задачу или JVM не об этом?
Или лучше не тратить время и оставаться нододебилом?
>>1877332 >Собственно вопрос хватит ли Котлину 2Gb оперативки под обозначенную выше задачу или JVM не об этом? На какой нибудь условный петшоп - хватит.
>>1878629 Мне было лень читать, но как я понял, проблема была в том, что ты перепутал нуллабл тип с не нуллабл? Причем тут котлин, когда главная ошибка это ты?
>>1880934 Любой язык - калл, ибо невозможно сделать такой, который будет нравиться всем. Но местных вкатывальщиков нужно дизморалить целенаправленно, потому что они не понимают назначение котлина и за каким-то хуем вкатываются в него первым языком.
>>1881933 Ну вот ts, как бы на пару моментов лучше js, но в реале в js многое пофиксили и типизации через доку хватает. То есть вроде и лучше и вроде и нахер не нужен. Прокси языки обречены.
>>1884660 Рыночная доля андроида... легион готовых специалистов на текущей платформы... тоны кода и приложений... тьма хардварных и софтверных компаний заточенную под андроид. -А, давайте, все помножим на ноль и поставим фуксию?
Нет, бро, так это не работает. Fuchsia - реально тестовый полигон. Иначе ваш андроид еще и форкнут. поэтому туда всякую экзотику и тянут типа дарта и раста
>>1884545 >Elixir вытеснил Erland Да нихуя он не вытеснил, просто новые проекты пишут на элексире охотнее.
>Swift - Objective-C Та же ^ ситуация, но если проект писался 3-5 лет назад, есть жёсткие требования по размеру приложения (или это SDK, у которого они есть по умолчанию) или необходимость бриджить плюсовый код — то и новые проекты даже в 2к20 пишут на obj-c, лол.
>>1884655 >Лол, там на чем скажут, на том и будешь писать. Сейм шит с Андроидом, скажут что ART деприкейтед и через 5 версий дропнем - будешь писать на чем скажут.
>>1884657 >Осталось немного потерпеть. Подумаешь, прокси язык делали 5 лет, через 15 и на нейтиве попишем! Ты юзаешь какой-то сайт или приложуху, но ты же не знаешь что там за код. Котлин JVM уже достаточно широко распространен в бекенде, что бы ты каждый день юзал что-то написанное на котлине.
>Тут раст не могут натянуть на плюсовиков, а вы еще криво-фиксо-синтаксическую джаву им хотите дать. Ага. Успехов. Наверное потому что они и не ставили перед Растом цели занять нишу С++ за 3 года.
>>1885463 >Да нихуя он не вытеснил, просто новые проекты пишут на элексире охотнее. Ну так это и означает что вытеснил, понятно что легаси говно мигрировать на Эликсир никто не будет.
>>1885625 Тот момент когда вроде пытался ответить, но поговорил сам собой.
1) В мире непопулярного экзотического говна, может происходит все что угодно. Нормальный же пример популярного прокси языка, который смог потеснить, но не вытеснить это С и С++. И то, это было в эпоху бедности самих нормальных языков и доступных инструментов.
2) То что у эпла там свой мир разработки, это факт. Ты просто привел неуместную аналогию, вместо контр аргумента.
>Ты юзаешь какой-то сайт или приложуху, но ты же не знаешь что там за код Как это вообще пересекается с темой котлин нейтива? Какая-то шиза.
>Котлин JVM уже достаточно широко распространен в бекенде Я видел данные что распространен в бэкенде php и asp. Джава же томиться в тырпрайзе, на уровне кобола со своим представлением бэкенда и со своими правилами большого бизнеса.
>Наверное потому что они и не ставили перед Растом цели занять нишу С++ Ну еще нам расскажи чего нового. Ты серьезно веришь что котлин нейтив сможет встать в противовес расту? Попытка котлина полезь в нейтив, вместо того чтобы делать свой бэкенд инструментарий, чтобы не тянуть легаси либы джавы. Это провал. Теперь котлин и не в бэкенде и не на нейтиве. А поезд хайпа уже ушел. Да и вообше кому нужен фиксо-синтаксис джавы людям из нейтива и не нужен. только если в противовес свифта поставить
>>1828236 >Как говорят мои товарищи, языки не имеющие полноценную кросплатформенность, языками программирования называть нельзя. Для бэкенда Swift вполне кроссплатформенный. Примерно на уровне Go.
>>1827734 >Те, кто его тыкал, говорят, что там ненастоящая статика, то ли из-за any, то ли там можно вызвать несуществующий метод, хуй знает. Нормальная там статика в strict режиме. Получше чем в Java с её null'ами. Да, из-за того что TypeScript по-дефолту компилируется в JS почти без оверхеда (в runtime только enum'ы остаются) у него нет нормального RTTI, но во-первых его можно добавить, во-вторых RTTI у многих языков со статической типизацией нет по-умолчанию, начиная с того же Haskell.
>>1898409 >Нормальная там статика в strict режиме Это статика бесполезна, так как сам js это не какой-то байт-код. И вообще не надо путать байткод и промежуточный язык.
>почти без оверхеда Обычно на этих "почти" все просадки и получаются.
>Получше чем в Java Компетентность просто зашкаливает хотя не удивительно, js девелопер
>>1828236 Дефайн "полноценность" кроссплатформы. Вот жава/пхп/питон — кроссплатформа же? Но на iOS приложения на них не попишешь (а если и попишешь — то будет что-то уровня свифта под виндой). Это делает их полноценнее/неполноценнее?
У того же котлин/нейтива просто пиздец с многопоточностью (и костылями с моделью памяти иж жавы, вроде крашащихся констант в рантайме) примерно везде, костыли тоже требуются адские. Он "полноценно" кросплатформенный, или "с пиздец какими костылями", как свифт?
>>1817311 (OP) Всех с наступившим! Котлинисты, помогайте Неофит, вкатился недавно, пытаюсь разобраться Подскажите по arraylist-у Дабы не захламлять кодом https://pastebin.com/iTa1kq7A Хотя бы направление, был бы очень признателен
>>1899256 МБ написал скомканно, да и не поменял всё, подправлю: Интересно, почему на этапе private var mObjectListStart: ArrayList<Object>? = null
for (Objec in mObjectListStart!!) { if (Objec!!.part ==2) { //тут пишет, что все норм, и 2 == 2 mObjectListEnd?.add(Objec) <<<<<<<<<<<<<<< } интересно, почему на последнем этапе этот самый add не происходит, и mObjectListEnd все так же null
Выражение mObjectListEnd?.add(Objec) означает следующее:
- взять объект mObjectListEnd - если он не null, вызывать его метод add, передав ему Objec
Поскольку у тебя изначально в переменную mObjectListEnd присваивается null, и никога после не присваивается ничего другого, то ее значение так и остается null, и следовательно метод add никогда не выполнятся.
Присвой переменной не null значение вначале:
private val mObjectList: ArrayList<Object> = ArrayList<Object>()
Поскольку оно объявлено как не-нуллабл ArrayList, то и ?. теперь не нужно использовать для вызова его методов.
>>1899071 >Обычно на этих "почти" все просадки и получаются. Ты ведь не знаешь как и во что компилируется TypeScript? Компиляторы TS генерируют объекты для enum, больше они не генерируют ничего.
>Нормальная там статика в strict режиме >Это статика бесполезна, так как сам js это не какой-то байт-код. Статика нужна для контроля ошибок на этапе компиляции. Если ты думаешь что итоговый JS код будет медленнее работать из-за того, что какой-нибудь V8 не будет иметь гарантии того, что тип не может поменяться в рантайме, то можешь успокоится. Все современные движки считают по умолчанию, что тип переменной не меняется. И только при изменениях в типе делают песcимизацию отдельной функции.
>Компетентность просто зашкаливает хотя не удивительно, js девелопер У тебя сервер с NPE упал, подними. За три года на джаве я насмотрелся на её типизацию.
Сап. Очень понравился Котлин как язык. Сам я андроид-разработчик, но хочется сделать какой-нибудь проект для себя с возможностью роста за пределами мобилок. Думал о крипте, но вряд ли осилю. Есть какие-нибудь идеи?
>>1904057 Как можно стать тобой? Хочу что-то простое осилить в Андроиде. Учил длительное время с перерывами питон, все ок, но перспектива роста туманна. Начал с++, но почитал про Котлин и загорелся. Какой шанс, что я обосрусь и скипну на начальном этапе Котлин не зная джавы?
>>1904186 Знание джавы вообще необязательно, синтаксис начнешь понимать сам постепенно (возможно вообще сразу как в котлине освоишься), а писать тебе на ней и не придётся.
Преграда тут только в мотивации. Если ты часто что-то с горячей головой начинаешь и быстро заканчиваешь (сам раньше такой был), то книжки тебе пока противопоказаны. Переходи как можно быстрее к практике. Смотри базовые видосы на ютубе и сразу делай что-то свое, коряво, из говна и палок, но делай чтобы хотя бы запускалось — ты должен видеть результат. Что не получается — сразу в гугл. И да, юзай только новые источники, минимум с конца 2018 года, не спрашивай почему.
>>1904221 Эта фича понравилась, в питоне выход через несколько циклов только через флаг вроде. В общем, читаю Котлин для питонистов из шапки, пока всё нравится. Синтаксис прям очень походит на с++.
>>1903257 >Статика нужна для контроля ошибок на этапе компиляции. Дрессированные ИТ-макаки, все у них ошибки с типами кругом мерещаться. Хватить уже распространять эту догму. Js это вообще пляска вокруг json данных (бесконечных хэш-мап/ассоциативных массивов). Это тебе не жаба где важно не перепутать одну фабрику с другой.
>>1905214 Часто пишете код в который работает с любой мапой? Код, которому нужны конкретные кючи в мапе уже имеет неявные типы, которые ты должен трекать сам, без помощи компилятора. Я за последний год работы с кложурой нажрался динамической типизации, спасибо.
>>1906229 Потому что не надо ассоциативные массивы юзать как структуры (объекты). У тебя дерево данных и ты тупо просто берешь/кладешь туда данные, без необходимости куда-то что-то прокидывать (сами же деревья описываются при описание json'ов).
>>1911543 Не нужно ассоциативные массивы (мапы, словари), использовать как объекты (классы). Динамическим языка вообще ООП не нужен (так как типизации переменных нет вообще).
Например, в пхп есть интерфейсы, причем появились еще до тайп-хайтинга. Зачем? А хз, модно, молодежно.
И тут вот когда статико-макака приходит в мир динамичного программирования, он начинает писать как умеет в статике и естественно начинает страдать, потому что (ВНИМАНИЕ) динамичная типизация это не статичная.
>>1912597 >Не нужно ассоциативные массивы (мапы, словари), использовать как объекты (классы). Что ты предлагаешь использовать когда тебе нужна коллекция именованых значений? В питоне для этого есть классы, в кложуре их нет, и там идиоматично использовать мапы в которых ключи - keywords ({:x 1 :y 2}). >он начинает писать как умеет в статике Да идиоматичную кложуру писал, при чем здесь статика? >>1911818 Вроде нет, хотя все еще сложно понять что он сказать хочет.
>>1913051 Кто тебе сказал что надо отказаться от мап? Тебе сказали, выкинуть ООП мышление и использовать мапы как дерево данных. Забавно, в java сейчас есть правила делать состояния без поведения, а поведение без состояний. Получается такое процедурное (или как модно - функциональное) программирование.
У меня в 2006 году на пхп был подобный проект. В динамических языках туго с параллельностью и они могут себе позволить такие глобальные состояния. У этого подхода свои плюсы и минусы, но именно так изначально задумывались динамические языки. Конечно, сейчас набегут дрессированные макаки, которые скажут что глобальные состояние это плохо (но не один не объяснит почему), но на самом деле ты так или иначе используешь их в своих программах. Даже питонщик или гофер может подключать модуль с состоянием, или жабер использовать синглетоны, или же сервис с состоянием, или же инжект объекты из DI (IoC), что тоже завуалированное глобальное состояние.
>Хотя все еще сложно понять что он сказать хочет. Конечно сложно понять, вы же новое поколение узко-мыслящих ваннаби-программистов. Вы же ~2010 году снова открыли no-sql базы данных и протанцевав на граблях повторили путь программистов из восьмидесятых. Ваша эволюция идет по кругу, не удивлюсь, если кто-то запустить тему из динамических языков нулевых и скажет как это круто. А потом следующие поколение придет и навяжет ООП.
>>1913788 >Кто тебе сказал что надо отказаться от мап >Не нужно ассоциативные массивы (мапы, словари), использовать как объекты (классы). Да хуй с этим классами, что мне использовать для колелкции именованых значений? По ключам в мапе значения брать? >инжект объекты из DI (IoC), что тоже завуалированное глобальное состояние Ты что там, пьяный блять? >no-sql базы данных из восьмидесятых Расскажи, интересно же.
>>1915943 >коллекции именованных значений Что ты за этим термином выдумал?? Коллекция, то есть набор, это же и есть мапа? Не именованная коллекция это список, именованная словарь/мапа. Вот как у тебя голове?
>>1915943 >что мне использовать для колелкции именованых значений? По ключам в мапе значения брать? либо классы-репрезентации этих структур данных, либо мапы, да. >>инжект объекты из DI (IoC), что тоже завуалированное глобальное состояние >Ты что там, пьяный блять? обалденный ответ на абсолютно правильное утвеждение, di по своей сути является использованием глобальных переменных, то есть глобального состояния
>>1916291 >обалденный ответ на абсолютно правильное утвеждение, di по своей сути является использованием глобальных переменных, то есть глобального состояния Я тоже другой анон, но мне кажется ты или ебанат, или работаешь на проекте с ебанатами, которые занимаются каргокультным макакингом, не понимая сути. Как DI вообще связан со стейтом? D::D:DW;DDD
>>1920009 Реально конечно. Только вот энтерпрайз — самое закостенелое говно, где ничего нового никому ни под каким предлогом не нужно, на что юзание кобола вэтой сфере 2к21 как бы намекает.
>>1920009 Короче, энтерпрайз почти полностью — это древняя версия жавы и лучшего там никому не надо, так что именно в энтерпрайзе ни котлин, ни любой другой язык не полетит.
>>1916291 >либо мапы Ну так вот, у этого подхода (дефолтного в кложе), по сравнению с обычными структурами есть две проблемы 1) Тип выражения map["key"] не известен (ну да ладно, у нас же все равно динамическая типизация). 2) Мы не знаем, какие ключи есть в мапе. Это превращает в пиздец многие рефакторинги, которые были бы тривиальными со структурам, а также затрудняет понимание кода - по сути многие функции имеют сигнатуру map[keyword, object] -> map[keyword, object] и что там в действительности передается можно понять только заглянув в их код. Это не выдумки, год это говно жрал (и иногда до сих пор прихлебываю). Хотя в теории это все элегантно и просто, на практике это работает только если ты можешь держать почти весь код проекты в голове, то есть если он не большой (не больше нескольких тысяч строк), ты работаешь почти исключительно с ним, и рядом с тобой рабоатет еще максимум одни человек, а желатедьно вообще никого. По сути, кложа очень хороший язык для каких-то пет проектов или утилит для личного пользования вроде https://github.com/jepsen-io/jepsen.
>>1920169 >Мы не знаем, какие ключи есть в мапе Что мешает юзать спеки в функциях которые этот map принимают? Причём, мне нравится идея, что нам не нужно всю картинку, каждая функция должна описывать что конкретно ей из этого map нужно.
>>1925010 Ничего не мешает, много где и юзаем. Проблема в том что это эрзац системы типов - боилерплейта становится много, вывода типов нет, компилятор типы не проверяет, экосистема в целом типы не поддерживает - они именно для твоего кода и еще наверное забыл что-то. Единственное преимущество - можно проверять произвольные условия, но это отчасти решается в типизированных языках введением новых типов, которые поддерживают свои инварианты. >Вообще реально хорошая речь Хорошая. У него вообще много хороших речей и мыслей, но это не делает кложу оптимальным выбором для промышленной разработки. Может в команду звезд вроде него самого и зайдет, но это слишком высокая планка.
Вы специально раз в неделю друг другу отвечаете, потому что думаете, что если обсудите всё сразу, то больше никто ничего не будет здесь постить, и тред утонет?
>>1926586 > Exceptions can be seen as GOTO statement Сейчас у некоторых модно ругать эксепшены, вон в хипстерских язычках их уже вообще не реализуют. Попытка решить несуществующие проблемы, в результате всякие if err != nil вызывают ещё больше ненависти, чем checked exceptions. Даже заново изобретают стектрейсы через либы и кодогенерацию. Дивный мир.
>>1925705 Сюда редко заходят, потому что ничего нормального и не обсуждают. Скорее от скуки пытается кто-то что-то ответить. Бэкенд на жабе, то еще жрущие ресурсы говнище, на котором еще и писать нудно долго. Адекватному анону такая шляпа вообще не нужна. Поэтому акромя телефон, котлин не интересен никому. Если сама джава еще не плоха, то её бэкенд окружениепросто ужасно. Глупо поверх этого гуана писать прокси языки.
>>1928526 Э хватит, зачем я это учу тогда последние 2 месяца? Кстати, на том же stackoverflow по котлину всего 55к вопросов, для сравнения, у java около 1.7кк. В целом, мне язык нравится после питона, хоть ООП понял частично.
>>1928577 Для себя можно учить что угодно. Если сравнивать питон и котлин, то котлин куда приятнее и удобнее (питон тот еще кусок перехайпленного говнища с одним системным потоком).
Если тебе для поиска работы на бэкенде, ну ты хоть спрос посмотри. Язык все еще "новый".
Если ты сам себе сайто-писарь. То я бы тоже котлин взял, нежели всякие го и шарпы.
Мне нравится котлин и джава как языки, хоть и джава устарела. Но мне крайне не нравится их окружения и некоторые де-факто стандарты в либах.
>>1928789 >Если тебе для поиска работы на бэкенде, ну ты хоть спрос посмотри. Язык все еще "новый". Все последние вакансии которые мне присылали были Java/Kotlin. Да на чистом Kotlin не выедешь, но знание Kotlin это плюс, многие на него потихоньку мигрируют.
>>1928797 За долгие годы работы в компании я стал приверженцем того, что не нужно тянуть в рабочий стек все подряд, если это не даст ощутимый выхлоп. Котлин, кроме маркетинговых вскриков ничего не дает, вообще. Код, становится более путанный с кишками наружу из-за бесконечных лябд. Если раньше ты мог скипнуть метод по его названию и понять, примерно что он делает, то лесенку лямбд тебе придется прочитать всю, а это нереальный нагрузка читать все эти кишки алгоритмов.
Так что классическая джава даже лучше в сопровождение, несмотря на то что 60-70 кода это абстракции над абстракциями (что нормально для тырпрайза).
>Все последние вакансии Слишком медленно это происходит и прошло уже много времени. Лично я вижу, что никакого чуда уже не будет, котлин займет какой-то минимум как скала или груви. может я и ошибаюсь, но все равно, нужно признать что все не так радужно. Когда они должны были бороться за бэкенд, они упоролись в нейтив, в js. Надо уже признать, что современный ЯП должен быть с богатой стандартной либой, а не страдать попыткой захватить все рынки
>>1928838 >За долгие годы работы в компании я стал приверженцем того, что не нужно тянуть в рабочий стек все подряд, если это не даст ощутимый выхлоп. Котлин, кроме маркетинговых вскриков ничего не дает, вообще. Код, становится более путанный с кишками наружу из-за бесконечных лябд. Если раньше ты мог скипнуть метод по его названию и понять, примерно что он делает, то лесенку лямбд тебе придется прочитать всю, а это нереальный нагрузка читать все эти кишки алгоритмов. Как будто в Яве так нельзя если ты конечно не в сбертехе на 7-ке сидишь. Те же самые проблемы, недавно на код ревью принесли код где в Optional.ifPresentOrElse() на каждую лямбду был нормальный такой метод из 10 строк. И Ява никак этому не препятсвует, это вопрос качества кода, но он есть в любом языке.
>>1928876 Возможно, но у нас джависты старой школы и лямбды еще не прошли, а вот на котлине лямбды это веселом и молодежно, ставишь фигурные скобки и у тебя целая елочка если без иронии, то котлин это и есть лямбды, даже якобы целый DSL у них получился. Сейчас какую либу не откроешь, то везде лестница эта. В джаве если встречал лямбды, то это прям реально короткие однострочники (может мне везло)
>>1926586 Чувак, это монады! Антон выше уже примерно дал пример что это. Но в целом их нужно использовать, только когда собираешься эти ошибки показывать пользователю, примеру ресурса нету - 404. Но их не стоит использовать, как замену эксепшенов. Эксепшоны круто, особенно когда зафэйлится нужно быстро, а то монады они так и чейняться дальше, или выдавать системные ошибки. Тут вообще подробно описано: https://fsharpforfunandprofit.com/posts/against-railway-oriented-programming/ Кстати, вероятно именно этот чувак популяризовал "шизу" с эксепшон монадами, но это не точно. На самом деле писать, если писать это, все становится понятней
Котлин уже дошел до того, чтобы вакансии без него были? Ну и тулинг, фреймворки?
Смотрю с дотнет-лагеря на ваш язык, внешне симпатичный, но необходимось в джаве отталкивает. Просто так учить скучно, лучше уж Раст или Хаскель попробовать, если как для хобби
>>1947306 Ты не можешь внятно объяснить, что тебе надо. И хочешь, чтобы тебе с >разнообразием конструкторов и >нормальные конструкторы делать помогли. Иди ты нахуй с такими вопросами.
>>1950961 Слышал от своего упоротого линуксоида друга, что мс обратно объединили кор и общую ветку net framework, типа это прорыв и новая веха. Но на деле, он говорит, кросс платформы то нет и выглядит это так, что core просто закатали под шумок в net framework. Не разбирался в этом, так как в реале всем насрать на этот net, в жизни видел его в мелких говноконторках где им конвертировали эксель таблицыв эксепшены и маня фантазии писать свои игры на чем играют инфоцыгани.
>>1951040 Мало xml, надо еще сделать вложение, я считаю
<dotnet> ....<system> ........<core> ........<mainSummary> ............<groupSummary_1> .................<summary> This is the method! .................</summary> ............</groupSummary_1> ........</core> ....</system> </dotnet>
>>1953108 Я другой анон, но скажу, что авторы не отрицали что они делают якобы хороший язык чтобы пиарить компанию. И если убрать призму маркетинга, то видно что в язык просто натаскали вдохновились из других языков всякого модного говна, которое не очень иногда сочетается друг с другом ибо похрен.
>>1953598 >авторы не отрицали что они делают якобы хороший язык чтобы пиарить компанию Не совсем компанию, а продукты которые она производит, т.е. IntelliJ IDEA и прочие ПХПШтормы. Котлин это язык-скам, лол.
>>1968243 Я перекатился туда из-за перспектив и зп и даже вдохновился, как это бывает, но в итоге меня по факту обманули, так что уже слинял, причем без нахождения новой галлеры.
Не могу в целом судить язык по говноконторе, но шарп мне показался тем же динозавром что и java. Надеюсь когда-нибудь наследование признают плохой практикой и забудем это говно ООП нет, конечно.
В действительности, сейчас нет не одного вменяемого и удобного языка, от которого можно получать удовольствие при разработке и сопровождении. И с учетом деградации индустрии программирования, такой язык мы увидим не скоро.
Пока есть деньги, думаю вообще слинять из кодинга, хз куда, но это неблагодарная профессия.
>>1968273 >сейчас нет не одного вменяемого и удобного языка, от которого можно получать удовольствие при разработке и сопровождении. А как же божественный dartswift?
>>1968287 >фронтенд С этими реактами и прочем, это раздутый пузырь. Да и там зумеров как говна, они сильно занижают стоимость работы при объеме знаний.
Нода выглядит больше как брак, зачем это брать добровольно в бэкенд и потом сопровождать? Ну поигрались и хватит.
Go, ну ты видел это? Столько бойлерплейта руками писать.
swift - популярен только в мак загоне, даже не смотрел на него.
dart - очередное непопулярное дно, вместе с го, котлином, растом и что там еще последнее время высрали. Зачем идти в непопулярные технологии?
>>1968273 >В действительности, сейчас нет не одного вменяемого и удобного языка, от которого можно получать удовольствие при разработке и сопровождении. И с учетом деградации индустрии программирования, такой язык мы увидим не скоро. Детский сад.
>думаю вообще слинять из кодинга А вот это здравая мысль.
>>1968458 >Детский сад. Зачем отвечать пустым сообщением, не несущим никакой полезной информации, а лишь подчеркивая высокомерие на анонимном форуме? Зачем самоутверждаться на анонимном форуме? пукнув и занюхав свои газы, выглядело бы куда интригующе
>>1968273 > Я перекатился туда из-за перспектив и зп и даже вдохновился, как это бывает, но в итоге меня по факту обманули, так что уже слинял, причем без нахождения новой галлеры. Это как? Завтра собес, я даже не думал, что с ЗП могут опрокинуть. Съебу же > Не могу в целом судить язык по говноконторе, но шарп мне показался тем же динозавром что и java. Да, но новые фичи прикольные. Но свои минусы. Например, сделали шаблон служб, стандартный host проглатывает исключения и выкидывает их в main. Дебаг такого проекта – моё почтение. Резолв DI в таком шаблоне тоже с нюансами. Нахуя так делать? Вообще, ощущение, что многие вещи можно было сделать лучше Это я так, набрасываю, потому что лучше холивара о языках в pr вряд ли что-то можно придумать > Надеюсь когда-нибудь наследование признают плохой практикой и забудем это говно ООП нет, конечно. Свои плюсы, свои минусы > В действительности, сейчас нет не одного вменяемого и удобного языка, от которого можно получать удовольствие при разработке и сопровождении. И с учетом деградации индустрии программирования, такой язык мы увидим не скоро. Скорее ты увидишь нейросеть, которая будет за тебя код писать. Языков куча, отличаются они мало в своих группах, выбирай, что ты хочешь, и дальше смотри, что больше зашло. Мне вот компайл-тайм проверки нравятся > Пока есть деньги, думаю вообще слинять из кодинга, хз куда, но это неблагодарная профессия. Мысль здравая, но я хз куда вообще слинять. Пока работаешь, забываешь, что большинство друзей вне айти либо работают за 25-45к, либо родители деньгами пробустили. Разве что трактор завести, чем я и занимаюсь потихой
>>1968643 Бывают конкретные претензии к языку: много бойлерплейта, много сахара который скрывает реализацию и приводит к протекающим абстракциям. А у тебя совершенно детские претензии >вменяемого и удобного языка, от которого можно получать удовольствие при разработке и сопровождении на которые нечего ответить кроме того - что ты инфантил, а в конце еще топнул ножкой: >думаю вообще слинять из кодинга
>>1968744 >удовольствие при разработке и сопровождении Ваши аргументы не аргументы, вот мои лучше!
Удобства от написания языка и удобства сопровождения, это самое важное из возможностей языка и вообще краеугольный камень. Если твой язык способствует лямбдо-писанине и ты потом видишь не внятные и удобные методы с понятными названиями, а вложенные лесенкой лямбды и их кишки наружу, которые нужно обязательно изучить, чтобы понять что в вообще тут происходит, то это серьезная проблема для языка прочитав название метода или его доку, чаще ты определяешь для себя что он делает и уже решаешь погружаться в него или идти дальше, с лямбдо-кишками так нельзя, изволь читать и понимать все
>что ты инфантил Не имея возможности ответить по факту, ты спустился на планку ниже и сразу побежал определять личность, чтобы эта выдуманная для тебя личность помогла написать возвышающий ответ (опять самоутверждаемся на анонимном форуме). То есть, когда ты написал "Детский сад.", ты сам как ребенок недовольно брякнул, не имея полноценного взвешенного ответа, а когда я тебя этим подцепил, все что ты смог, это опуститься до личности.
>>1969359 Нельзя дать полноценные взвешенный ответ, на высеры типа >Удобства от написания языка и удобства сопровождения, это самое важное из возможностей языка и вообще краеугольный камень. Удобство это на 90% дело привычки, ты привык к чему-то - тебе удобно, не привык - не удобно. Ты только сейчас, после того как тебя назвали инфантилом, ты смог что-то более менее конкретное назвать.
Лямбды - это инструмент который можно использовать не по назначению, как и любой инструмент. Тебе не нужно название метода для простой операции .filter { it.rating > 0 } а если ты начинаешь в лямбду пихать методы по 50 строк, то это твоя проблема, это ты пишешь плохой код, а не авторы языка. В любом языке можно написать нечитаемый код. Это трейдоф - чем больше возможностей тебе дает язык, тем больше способов использовать их неправильно. Чем меньше - тем больее многословный язык и менее выразительный, зато код читаться будет очень хорошо.
>все что ты смог, это опуститься до личности Але чудик, это двач, не нравиться пиздуй на хабр. Меня заебали ебланы, которые приходят сюда и ноют непонятно о чем. Одному конструкторы нормальные подай, другому удовольствие при разработке и сопровождении. Купите себе дилдаки и будет вам удовольствие.
>>1969735 >пишешь плохой код, а не авторы языка. Классика, это программисты плохие, а язык хороший. Нет, как раз лестницу лямбд я видел именно в котлине. В жабе я такого ни разу не встретил. Да и вообще там много мелких моментов. Например импорт по звезде в других языках считается моветоном, так как на практике приносит некоторые трудности, но из-за непродуманности дизайна, в котлине это необходимость.
>после того как тебя назвали инфантилом Как только ты спускаешься до личности и тем более к незнакомому тебе человеку, ты показываешь всю свою некомпетентность. Причем тебе уже два раза объяснили.
>Нельзя дать полноценные взвешенный ответ Лол, так кто тебя вообще за язык тянул?
>>1969735 >Одному конструкторы нормальные подай, другому Они еще там листы [] и мапы {k:v} красивые просрали. Теперь надо писать mutablelist и mutablemap. Как они вообще к этому пришли, лол.
100500 конструкторов. Спустя полгода я даже не вспомню как их все писать. Такое ощущение что делали программисты без опыта работы, а потом начали присылать все возможные кейсы и они облепили вариантами.
Помню еще в первый день мне поднасрало отсутствие инициализации для родительского класса. Людям невдомек что для родительского класса нужно иногда сделать какие-то мелкие вычисления перед передачей в него параметров (пришлось прям в строчку загонять все это говно).
А, еще помню эту победу на статик полями. Сделали те же статик поля просто назвали по другому, по длиннее и неудобнее.
>>1970349 >Классика, это программисты плохие, а язык хороший. Ты то точно.
>Нет, как раз лестницу лямбд я видел именно в котлине. В жабе я такого ни разу не встретил. Я не встречал, значит такого не бывает - а потом обижается, когда его школотой называют.
>Как только ты спускаешься до личности и тем более к незнакомому тебе человеку, ты показываешь всю свою некомпетентность. Причем тебе уже два раза объяснили. >Лол, так кто тебя вообще за язык тянул? Тут можно мудака называть мудаком, это тебе не хабр или пикабу.
>Помню еще в первый день мне поднасрало отсутствие инициализации для родительского класса. Людям невдомек что для родительского класса нужно иногда сделать какие-то мелкие вычисления перед передачей в него параметров (пришлось прям в строчку загонять все это говно). У тебя в голове полная каша и проблема с выражением мыслей. В Яве а значит и в Котлине единственная инициализации для родительского класса это конструктор этого самого родительского класса. Если же тебе надо параметр переданный в конструктор как-то преобразовать для передачи в конструктор суперкласса, то можно просто объявить функцию.
>А, еще помню эту победу на статик полями. Сделали те же статик поля просто назвали по другому, по длиннее и неудобнее. А что тебе религия не позволяет просто объявлять константы и переменные?
>>1817311 (OP) Котлинач, я чот тупой, и не могу представить - вот у меня есть многоуровневый массив ключ-значение, и есть нефиксированная строка типа "massiv[penis][lol][kek][2]". Как мне распарсить строку и получить доступ к этому последнему элементу массива, а если его нет, то вернуть null? В js, пистоне или php это просто, пушто это языки с динамической типизацией, а вот в яве и котлине я не смог разобраться.
>>1973253 > многоуровневый массив ключ-значение Это значит, что у меня есть ассоциавтивный массив, где в качестве значений выступают также ассоциативные массивы. К примеру, я json распарсил, и у меня получилось такое. > Что у тебя за строка > >massiv[penis][lol][kek][2] Ну типа представь, что в massiv находится результат парсинга вот такого джейсон { "penis": { "code": 12, "value": [1, 2], "lol" { "kek":[15, 16, 17], "kok":22 } } } Результатом получения massiv[penis][lol][kek][2] будет число 17 Если строка будет, например, massiv[penis][code], то будет 12 Если строка будет, например, massiv[code], то такого значения там не будет, поэтому мы спокойно можем вернуть null > нехватает твердого, большого члена в жопе да
Раз уж зашла речь про мапы, скажите, а в котлине можно сделать реверсивный обхват типа этого: ["key1"]maps["key2"]["key3"] Если да, то с каким числом обхватов допустимо?
>>1973732 Да туда он воюет, его кейс просто максимально хуёво на статические языки ложится.
>>1973490 Переходи на обж-с, он тоже динамическая залупа, можно ебаться в жепу рефлексией и делать всё-всё в рантайме там можно написать [massive valueForKeyPath:@"penis.code.lol.kek"][2].
Вообще, можно попробовать вспомнить что такое рекурсия и написать генерик парсер для такой хуиты: fun parse<K, V>(huita: Map<K, Any>, path: String) -> V? { __return parse(huita, path.split(".")) }
>>1817311 (OP) Мимо крокожу, но у меня вопрос: Что на второй картинке справа? Это запрос к базе данных или запрос к локальному списку? В C# просто есть похожая вещь, называется LINQ. Но у нас в Шарпе один и тот же синтаксис и для БД и для локальных списков работает за счёт магии Expression'ов
>>1974059 >Это запрос к базе данных или запрос к локальному списку? К чему захочешь.
>>1974059 >В C# просто есть похожая вещь, называется LINQ. >работает за счёт магии Expression'ов Костыли стоящие сбоку от языка, придуманные до открытия крудошлёпами фп, ты хотел сказать?
>>1973490 И где это лежит? Map<String, Object> ? Это конечно так просто не сделать. Тут 2 варианта 1. Kotlin script и еботня с ним. 2. Или распарсить строку регуляркой и выбрать все эти ["penis", "lol", "kek" , "2"] в массив, а затем map.get(), затем cast к Map и идем дальше.
В общем задача выглядит странно и есть подозрение, что ты что-то не то делаешь. Если распишешь поподробней, можно будет что-то посоветовать.
>>1974193 > ты что-то не то делаешь. Как мужик сверху заметил, я скорее решил не на том языке развиваться, а задача у меня вроде бы адекватная. > распарсить строку регуляркой и выбрать все эти ["penis", "lol", "kek" , "2"] в массив Насколько я знаю регэкспы, там повторяющиеся значения как-то сложно обработать
>>1974207 >задача у меня вроде бы адекватная. Вопрос в том, почему все класть в ассоциативные массивы. Тут реально какой нибудь JSON/XML напрашивается и JSONPath/XPath.
>Насколько я знаю регэкспы, там повторяющиеся значения как-то сложно обработать
>>1973673 В теории графов это открытие будет в только 2023 году. Олег, прекращай нарушать диспозицию путешественника, от твоих шуток мы все вылетим с работы.
>>1975397 Олег, эта ветка вселенной закрыта от туризма, ты зря тратишь время. Ты не пират и не борец справедливостью, ты закрываешь пустые ветки от которых страдаем только мы, обычная обслуга.
>>1975656 Не один из текущих. После развития машинного обучения в квантовых вычислениях и изменения самой архитектуры вычислительной техники, многие текущие проблемы уйдут на нет, при этом появятся новые задачи (проблемы?). В общем, писать низкоуровневый, условный, последовательный код станет практически непосильным трудом и очень трудозатратным для будущих потребностей, поэтому текущие программирование будет восприниматься как вехой в истории, примитивным способом написанием логический условий, приводящих к критическому числу ошибок, недопустимому для современных требований.
То есть, простыми словами, человек очень плохо подходит для написание больших и сложных алгоритмов, поэтому по сути "машины" начнут писать другие "машины", а само программирование уйдет на инженерно-научный уровень и главное оно будет другим и не будет популярно как у вас сейчас. Да, если честно, это и не нужно. В будущем есть куда более интересные вещи чем написание последовательных команд. Одно только рисованное интерактивное меню в современном интернете настолько сложное и изящное, что чтобы написать такое текущими инструментами нужно будет потратить не один месяц и (я уже не говорю чтобы оно не имело ошибок).
Но не расстраивайтесь, грядущая серия масштабных войн, так сильно простимулируют разработку "умного" оружия (автономного/роботизированного), что выжившие из вас уже при своей жизни увидят первую веху новой вычислительной техники. И она очень интересна.
>>1976489 Грядущая серия масштабных войн простимулирует только новое темное средневековье, когда наука и технологии придут в упадок или будут запрещены для массового использования, а новый ренессанс неизвестно будет ли еще.
>>1976513 Война, это всегда плохо. Но угроза ядерного оружия будет нивелированная в первые сутки. А коалиция победившая эту войну назовет её последней и освободительной (что в какой-то мере цинично, впрочем, как всегда).
Причина мотивации станет ясно спустя 12 лет. Есть технологии которые позволяют стимулировать организм к здоровой бесконечной жизни (тупо камера с подобием нанороботов, восстанавливающие организм и процедура которую проходим каждые 5-10 лет, причем мы все). Требование владельцев этой технологии проста, прекращение паразитирование и угнетение любой жизни, в том числе и разумной (в данном контексте, разумная жизнь, та жизнь которая способна созидать) обеспечение её защиты и процветание. Этакий космический гуманизм. Причины почему так важная жизнь для этих существ, не ясна, но в целом, они не заставляют, а ставят перед условиями и существа выбирают сами.
Самое забавное что эти существа выходят на контакт при развитие телепатических мутаций и кто вышел у нас в глобальный телепатический "интернет", не известно, говорят какая-то вообще община в Тибете или какой-то мальчик в Индии, но задачу поставили, конечно, лидерам наций (и это не только государства). Естественно, не всем понравились новые условия и порядки "гуманизма", мол "нам и так хорошо", но кто их спрашивал, да?
>>1976549 Я думаю, понятно, что со стороны наша нация выглядит как паразит, причем угнетающая свой же вид. Какая космическая эпоха может наступить, когда огромная часть планеты голодает, страдает и вообще все живут, в какой-то степени в рабстве.
Мы в глазах инопланетных существ выглядим как какие-то ублюдки. И вот эти ублюдки хотят это исправить, но не ради тебя и меня, а ради этой вечной жизни.
Не могу скомпилировать котлин на JDK 16. Я могу понять, когда для реализации фишек котлина, они используют всякие грязные хаки которые периодически отваливаются. Все таки JDK не самый гибкий рантайм.
Но сука компилятор, то почему падает! Нельзя было его по нормальному написать, без доступа через рефлексию ко всяким запрещенным местам? Тем более, что еще в момент выхода 9-ки сказали, не лезте своей рефлексией куда не надо, скоро мы вам будем бить по рукам.
>>1986209 > Не могу скомпилировать котлин на JDK 16 Обратная совместимость жаб в целом условная. Сразу после выхода новой ждк не надо спешить обновляться, лучше подождать минимум полгода, когда популярные либы обновят для новой жабы а лучше ждать следующей LTS
>>1986223 >Обратная совместимость жаб в целом условная. Да нормально там с совместимостью. JDK 9 вышла осенью 2017 и уже тогда сказали - хватит лезть рефлексией во внутренние классы, мы это отрубим через несколько релизов. И все это время жидбрейз и не подумали убрать грязные хаки из компилятора. А в тикете с багом пишу, что для 1.5 релиза пофиксят, а для 1.4 и 1.3 юзайте флаг --illegal-access и отстаньте от нас.
Как вы вообще пишите на этой параше? Я пишу на десятке языков, ебу байтики и менеджерю память руками сразу на куче платформ. И тут внезапно работодатели все как один, требуют знаний сабжа. Пытаюсь вкатиться, но кроме маркетоидных высеров я ничего не могу найти. Да и как мне писать на языке без нуллов, если даже в ссаном жабоскрипте оно есть? Блять, я в рот ебал ваш кошлин, мне надо ссаный собес пройти, но я не могу победить рвотные позывы. Ни то от самого языка, ни то от текста и "коммунити" языка. Как это вообще жрать?
Вот от такого мне блевать охота, но похоже ВСЯ инфа про кокотлин именно такая:
После того, как Kotlin стал официально поддерживаться для разработки приложений под Android, появляется все больше приложений и библиотек, использующих этот язык. Не буду в очередной раз упоминать про преимущества Kotlin — их у него много, и про это написано немало материалов, включая официальную документацию.
Kotlin или Java? Обычно сообщество выбирает подходящий вариант, основываясь не только на плюсах и минусах, но и на духе предлагаемого решения. Предположу, что именно поэтому Kotlin сумел так быстро завоевать симпатии многих разработчиков по всему миру и его выбирают чаще, чем Java. Много новых проектов начинается именно на Kotlin. В редких случаях начинают на Java, потому что это очень крутой язык до сих пор. Пусть и с некоторыми недостатками, но на нём с таким же успехом можно писать приложения. В Kotlin добавили более удобные возможности, убрали некоторые недостатки Java и сделали более лаконичный синтаксис. Но при этом, по моему личному мнению, нельзя сказать «не пишите больше на Java».
Выбор — скорее, дело вкуса, но для старта проекта сейчас всё чаще выбирают именно Kotlin.
>>2011622 Какую-то хуюню высрал. Если ты уже знаешь хоть один язык программирования, то изучение нового ограничивается строго чтением справочника по новому языку, а не обзорных методичек и маркетингового булшита.
Скажи, тебе как "специалисту", что именно нужно, чтобы начать писать на языке, кроме описания языка на википедии, и документации по стандартной библиотеке этого самого языка?
Байтики он дрочит, без нула не может. Ахуеть просто.
>>2011662 >Если ты уже знаешь хоть один язык программирования Груви или скалу, а так в котлине много непривычной отсебячины.
По поводу нуллов, это динамическое состояние системы (существует или нет) и это нормально для внешней среды. Проблема пришла, когда по чиху стали возвращать нуллы там где это не нужно. В итоге победили нуллы, которые вроде как достали, но в тоже время они необходимы предметно. Не удивлюсь, что скоро победят какие-нибудь еще float и double типы но в реале, как и с нуллом, тупо ввидут еще одни костыли
>>2011662 >Если ты уже знаешь хоть один язык программирования, то изучение нового ограничивается строго чтением справочника по новому языку, а не обзорных методичек и маркетингового булшита. Если я знаю хоть один язык, или хотя бы в общих чертах представляю как работает компьютер, то у меня уже есть какое-то критическое мышление и понимание, что такое хорошо и что такое плохо. Читая маны по новым языкам или фреймверкам, я обычно говорил себе: "ну, все как в моем любимом ЯЗЫК_НЕЙМ" или "Вау, вот это они круто сделали". А читая инфу про Скотлин, у меня возникают только рвотные позывы, начиная от синтаксиса, заканчивая общими концепциями, в которых сам Андрюшка (спасибо за видео из ОП-поста - первая вменяемая инфа по языку) не уверен.
>то именно нужно, чтобы начать писать на языке, кроме описания языка на википедии, и документации по стандартной библиотеке этого самого языка? Стандартная библиотека не нужна - у меня жаба и ведро. Да и они не особенно нужны, так как у меня будет Сишечка и уход в ндк при первой возможности. Самое главное, чего мне нехватает - это таблеток, чтобы побороть блевотные рефлексы, чтобы просто смотреть на этот гибрид жабы, петухона и жопаскрипта.
А вообще, я начинаю понимать, чому я его так хейчу и почему оно мне ну никак не заходит: сам Андрюшка вдохновлялся Паскалем и его ответвлениями, а я как-то обошел их стороной, еще со времен доса. У меня даже были книжки по Турбо Паскалю, но я не мог их читать.
>>2011828 >Груви или скалу, а так в котлине много непривычной отсебячины. Не знаю, и знать в общем-то не хочу. Как и, к примеру, Эрланг - я на нем немного покодил, и продолжать больше не хочу.
Я никогда не фанател от функциональщины, просто юзал там где она была, а если ее не было - ну ладно, это особенность языка, фиг с ней.
Вокруг меня же постоянно бились какие-то ебнутые на всю голову фанбои: сначала Груви, потом Скалы, и вот теперь Скотлин. Каждые 5 лет я слышу от них примерно следующее: "Вот, теперь появился Груви/Скала/Котлин, теперь твоя Жаба нахер не нужна и помрет скоро". А через 5 лет уже не найти ни этих фанбоев, ни каких-то вменяемых причин изучать эти недохайповые технологии. Вот сегодня, какой смысл в Скале или Груви? Для меня эти языки мертвы. Я изначально считал их хайпом и просто не обращал внимания.
Но со Скотлином все хуже: 5 лет почти прошло, а эта хуйня не только не сдохла, так еще и ХРюши стали повально требовать эту говнину. Спрашиваю: "а вам зачем?" - мне отвечают: "потому что Котлин - первичен для ведра". И все. Стена. Мотивация - уровня маркетингового буллшита. Я честно пытался найти хоть какие-то преимущества, но все сравнения написаны максимально безграмотными людьми, которые и жабу похоже не видели. А как еще победить в себе брезгливость и начать писать на этой параше?
Поймите, мне этот язык нахуй не усрался, мне надо тупо устроиться на работу. Получать грязные зеленые бумажки, а на охуенные идеи Андрюшки мне насрать с высокой колокольни. Я бы вообще все на Сишке бы писал.
>>2011857 Ты, очевидно, дурачок, и страдаешь от сурового Даннинга-Крюгера. Если бы ты умел в Джаву - или вообще, программировать - Котлин для тебя не был бы таким камнем преткновения. >Вот сегодня, какой смысл в Скале или Груви? Скала используется в Тинькофф, например.
>>2012115 >Если бы ты умел в Джаву - или вообще, программировать - Котлин для тебя не был бы таким камнем преткновения. Если бы я НЕ умел программировать вообще, да и компьютер бы видел в первый раз в жизни, то наверняка бы проблемы не было. Тут вопрос не в том, что мне сложно или непонятно, а в том, что НАХУЯ и БЛЯТЬДАНУНАХУЙ.
>Скала используется в Тинькофф, например. Очень круто. Какой банк, такие и технологии. И мне конечно совершенно не насрать, что там используется в самом прекрасном наебательском банке, в котором я не работаю
>>2012502 >Тут вопрос не в том, что мне сложно или непонятно, а в том, что НАХУЯ и БЛЯТЬДАНУНАХУЙ. Я джавист и не работаю с мобилками, но на котлине тудушку на апи 10 версии андроида писал. Ничего сложного там нет, это просто синтаксический сахар над джавой. Можно писать код, просто поглядывая в документацию. Ну и твой вопрос "нахуя его требуют" слегка невменяем - ты думаешь они ради тебя будут уже готовую кодобазу с котлина на джаву переписывать, или что? Они пишут на котлине, ты идёшь на вакансию с котлиным и возмущаешься, почему они требуют котлин. >Какой банк, такие и технологии. Все банки дерьмо. Но Скала это реально используемый язык программирования. Есть два типа языков, те о которых спорят, и те, которые не используют. >И мне конечно совершенно не насрать, что там используется в самом прекрасном наебательском банке, в котором я не работаю Ты спросил, какой смысл в Скале сегодня. Вот ответ, Скалу используют на хайлоадах. Твиттер работает на Скале тоже, например.
>>2012757 >Можно писать код, просто поглядывая в документацию. Методом копипастного программирования можно писать на чем угодно и под что угодно (наверное, кроме 1с - его на стековерфлоу наверное нет). Вопрос лишь в том, что ты об этом думаешь. Если ты новичек, то претензий к этому быть в принципе не может.
>ты думаешь они ради тебя будут уже готовую кодобазу с котлина на джаву переписывать, или что? Я что, ебан? Ясен хуй, что если проект уже есть и он на Скотлине, то мне туда даже близко подходить не надо. Но на практике это выглядит так: "нам нужны красивые мальчики в белых рубашечках со знанием скотлина, все новые проекты мы будем писать на скотлине" - вот от этого у меня и разрывы.
> Вот ответ, Скалу используют на хайлоадах. Хайлоад на виртуалке? Не смешно. Это как "хайлоад на пехапе" (хотя нынче пехапе уже не такое говно как раньше).
>>1817311 (OP) > В синтаксисе можно встретить много WTF-решений (как же без них), но в целом, плюсы перевешивают минусы. Так-то, во всех языках есть что-то что раздражает.
Вот блядь, идеально выразили мои мысли. Вроде начинали как неплохой язык, но скатили в какую-то хуйню. В том же Swift'е развивали язык более продуманно, обсуждали всем миром и в основном всё и сейчас лаконично и красиво. А я ведь мог остаться на котлетоне, если бы они не начали творить нечитабельную хуйню. Но в результате свалил в божественный Swift
>>2012787 >Методом копипастного программирования Какого ещё, блядь, копипастного программирования. Что ты несёшь, чел. Читаешь доки, смотришь как там выглядят структуры данных и синтаксис, и решаешь задачи. То же самое происходит буквально со всеми остальными языками программирования. У тебя в голове каша. Возможно, ты ещё недостаточно опытен, чтобы не обращать внимания на то, на каком языке ты прогаешь вообще. Твои разрывы выдают в тебе дилетанта. >Хайлоад на виртуалке? Не смешно. Хуиртуалке, мань, кто ты такой, чтобы давать оценки подобным вещам? Попустись, чмоня.
>>2011622 Ахахахахах Анон, как я тебя понимаю. Ищешь инфу по хуйнянейм, вылезает тысяча и одна статья от ебучих гуманитариев, которые с важным видом накидали баззвородов и воды. Так и хочется взять и уебать, когда видишь очередной материал от инфоцыганенка
>>2025443 Писать хуйлоад на крестах я бы не хотел. На расте можно, но, говорят, страпуешься к мидлу. Остаётся го, но это такое себе удовольствие. На чем тогда? мимо дотнетчик
>>2026367 >страпуешься к мидлу На крестах тоже. Вообще, зависит от компании. В тех же ФейсбукахАплахАмазонахНетфликсахГуглахМайкрософтах обычно берут "софтваре инжинеров", которые могут мигрировать в компании по технологиям как говно в проруби.
Алсо, такое возможно и на постсоветском пространстве, правда нужен ебический опыт в предметной области, чтобы язык там был десятым делом.
>>2026540 >Хайлоад это не про производительсноть с одного CPU Т.е. перформанс каждой машины по отдельности никак не аффектит перформанс кластера? >а про масштабируемость. И чем же жвм лучше нейтива в плане масштабируемости? Ты в попытках заманяврировать куда-то не туда залетел.
>Да вместо 100 серваков, купить 120 дешевле, чем пердолиться с С++. Пчел, даже если не байтойобить а написать более-менее оптимизированно на чистой жабе — у тебя выйдет 130-140 вместо 100, но ирл так никто не делает — все тащут раздутые спринги и ко и в жизни разница будет на порядок. А ещё мы говорили про скалу — половину фичей которой жвм нихуя не умеет оптимизировать, а ещё её обмазывают фп сверху (а даже если не обмазывают — все встроенные иммутабельные коллекции будут тормозить как говно в любом случае), что как бы намекает куда нахуй идёт перформанс.
>>2026728 >Т.е. перформанс каждой машины по отдельности никак не аффектит перформанс кластера? Ты не можешь весь текст осилить? Я писал про это. >вместо 100 серваков, купить 120 дешевле, чем пердолиться с С++.
>И чем же жвм лучше нейтива в плане масштабируемости? Я не писал такого. JVM не хуже и не лучше, масштабируемость определяется архитектурой. А когда у тебя есть готовая архитектура, ты уже выбираешь язык (об этом далее).
>Пчел, даже если не байтойобить а написать более-менее оптимизированно на чистой жабе — у тебя выйдет 130-140 вместо 100, но ирл так никто не делает — все тащут раздутые спринги и ко и в жизни разница будет на порядок. Совершенно пустопорожние рассуждения, надо смотреть на конкретную архитектуру и мерять перформанс. Есть хороший пример Netflix, они посчитали что раздача контента требует очень много ресурсов и заплатили nginx чтобы они соптимизировали сервер под их нужны. Но при этом остальные сервисы которые тоже хайлоад они пишут на яве, потому что там ебля с С++ не даст существенной экономии на серверах.
>А ещё мы говорили про скалу А >>2025443 >Арирую с долбоёба, хуйлоад у него на виртуалке. кто писал?
Сука да как понять эти ебучие корутины Спавняться в разных тредах, но при этом половина из них все равно не параллельны и ждут прерывания Хочешь чтобы спавнились в одном треде - таскай main скоуп как зависимость по всему приложению Шарить общее СОСтояние - это не КОРУТИН-WAY, туда же синхронизации, мьютексты это все НЕ НУЖНО - вот тебе каналы и дрочи их как хочешь Контексты, хуексты, скоупы, джобы нихуя не понятно короче помогите...
>>2030873 Рисков на первый взгляд меньше, ничего не изменяется, только добавляется новая необязательная фича, не как с модулями, которые нельзя выключить.
>>2044905 Жаба победила безнаковые типы, котлин их вернул. Лол. Можно в кратце что там нового, мотанул увидел константы min max, потом 6 говорящих голов.
>>2046076 Мелоч всякая. Интероп с новыми жвмовскими фичами. Что то стабилизировали. Что то нет. Основной хайлайт - автокомплит стал быстрее на 50% (на самом деле нихуя)
Категорически приветствую! Насколько реально сейчас в России устроиться котлин-разрабом бэкенда? Через 3 недели будет ровно 1 год опыта, правда на джаве. Но также на работе чуть-чуть писал на реакте и даже давали недельку потыкать скалу.
Сейчас в свободное время изучаю котлин и с каждым днем он нравится все больше. Но в основном вакансии на хх требуют от 3 лет. Я в пролете? А на западном рынке как с этим? Может еще поднакопить опыта и через пол года сразу пробовать на иностранный рынок подаваться?
Аноны, собираюсь вкатываться в андроид. Из шапки понятно, что надо осваивать джаву. Максимально объемно или только её азы? Что необходимо по ней знать? Мне вообще недавно анон посоветовал хоть с флаттера начинать, чтобы вникнуть в мобильную разработку. Спрашиваю совета, чтобы не распыляться и точно знать что учить.
>>2067896 Вообще у ведроида свой тред https://2ch.hk/pr/res/1994880.html Для разработки под мобилки надо знать синтаксис джавы и джава кор, спринги и прочие кафки не нужны.
>>2091123 Наверное ничего, может теперь просто value class. > inline classes or the inline modifier is deprecated since kotlin 1.5, in favour of value classes
>>2091550 Никакого, кроме как поднять настроение некоторым разрабам, типа они пишут теперь не на коболе, а на модном молодёжном языке. А по факту что в жабе абстрактные фабрики и размазывание логики, что в котлине, только присыпано сахаром и проблемами из-за неудачных попыток сделать сметану из говна.
Аноны котлинисты, нужна ваша помощь по избавлению от некрасивостей.
Имею кусок кода как на пикриле. По сути это два листа с объектами у которых есть какой-то ключ. Мне нужно проверить элементы этих листов на совпадения ключей, и, если ключи совпали, то делать что-то.
Можно ли это как-то сделать какой-нибудь удобной и красивой котлиновской функцией, а не двумя ебучими циклами?
>>2102912 Там пока жаба перегонит в мапу, я думаю, высрется еще тонну объектов, включая саму мапу, которая в будущем будет уже не нужна.
Это нормально массив массивом перебрать, просто indexOf не к месту. А вообще почему нет такого метода расширения который не только проверял наличие значения, но возвращал бы индекс? зато 100500 сомнительных методов-расширений есть, которые нужны раз в пол жизни
>>2103094 >А вообще почему нет такого метода расширения который не только проверял наличие значения, но возвращал бы индекс? indexOf() и возвращает индекс
>А вообще почему нет такого метода расширения который не только проверял наличие значения, но возвращал бы индекс? Если массивы на 10 элементов - да норм. А если 10к и более - то у тебя уже 100кк сложность получается если на forEachIndexed() переключиться
>>2103401 >А если 10к А если 100к или 1000к? А? Че то ты рано в фантазии остановился. Это не питон чтобы на холостых циклах провисать. Иногда лучше цикл пробежать, чем GC накормить.
>>2104885 >Сейчас бы переживать бы за GC Ну да, а потом стоп-зе-волд в минуту, и ты смотришь в код и видишь, что там вообще ни в одной строчке не переживали за GC.
В нормальных приложениях болт не кладут на это. редко для джавы, но бывает.
Понятно, что если там 10к индексов, а в цикле еще дробилка какая-то, то конечно это не нормально. Но если у тебя 10 на 15 элементов и ты паришься за O^2, это уже клиника. Начитаются своих вумных кнутов и натягивают везде свою оптимизацию на глобус.
>Да и Котлин сам по себе много мусорит Не удивлюсь, к счастью еще полгода назад дропнули котлин. Не то чтобы язык плохой, но знать подводные камни джавы, jvm и потом еще котлина - такое себе, в плане человеко ресурсов.
>>2106920 >Если массивы на 10 элементов - да норм. А если 10к и более - то у тебя уже 100кк сложность получается >Понятно, что если там 10к индексов, а в цикле еще дробилка какая-то, то конечно это не нормально. Но если у тебя 10 на 15 элементов и ты паришься за O^2, это уже клиника.
>Сейчас бы переживать бы за GC. Вам кучу конкарент GC завезли, бери да юзай. >Ну да, а потом стоп-зе-волд в минуту inb4: https://ionutbalosin.com/2019/12/jvm-garbage-collectors-benchmarks-report-19-12/ >ZGC struggles for as low pause times as possible (e.g. max 10ms) and is designed to scale incredibly better from smaller to big Heap sizes (i.e. from hundreds of MB to many TB). >Shenandoah GC has similar goals as ZGC, it targets low pause times which are no longer directly proportional to the Heap size and is supposed to scale from tiny to big Heap sizes.
Да и вообще ты JOL то нюхал, рассуждаешь тут про >Там пока жаба перегонит в мапу, я думаю, высрется еще тонну объектов, включая саму мапу, которая в будущем будет уже не нужна. ?
>>1817311 (OP) Тред по жаве мёртв, потому спрошу здесь. Есть например такой код. Сначала мы создали объект класса Car в классе Human. Затем объект класса Human в классе Human. Вопрос вызывает вот этот участок: h1.c = new Car(); Что именно здесь происходит? В объекте h1 создаётся ссылка на с?
>>2109153 >>2109154 h1 - объект класса Human. h1.c - поле у этого объекта. h1.c = new Car() - создание нового объекта класса Car и присваивание этого объекта в то самое поле. Доступ к полям объекта рассказываются буквально во втором абзаце любого справочника по синтаксису жабы. Впрочем, чего еще ожидать от того, у которого >Тред по жаве мёртв, потому спрошу здесь там 1к постов за месяц, тут 500 за год
>>2109023 Есть же пастебин и куча других сервисов, нахуя-то картинку постить? Выглядит как переусложнение, с одной стороны как-бы универсальный код, с другой специальные случаи для строк и интов. Ну и в целом непонятно что ты пытаешься сделать.
>>2112494 В списке доступных есть, но как правило используются только кресты и иногда питон для нетребовательных к скорости задач. Программы не живут дольше пары секунд, поэтому на управление памятью поебать, освобождение памяти может быть вообще отключено ради скорости https://algorithmica.org/ru/no-deallocation
В чем разница между Button().showOff() и val b = Button() b.showOff() ?
В джаве, насколько помню, через имя класса обращаются к статическому методу. А здесь что за "Button()", у которого мы вызываем метод? Что погуглить, куда почитать?
>>2112680 > Button().showOff() Создаёшь экземпляр класса Button и сразу вызываешь его метод show > val b = Button() > b.showOff() ? Создаёшь экземпляр класса Button, сохраняешь ссылку на него в переменную b и через переменную вызываешь его метод show > В чем разница Только в присвоении ссылки, суть одна и та же > В джаве, насколько помню, через имя класса обращаются к статическому методу. Статические методы принадлежат классу, а не его экземпляру. Значит выглядело бы это как Button.show() > А здесь что за "Button()" Вызов конструктора класса, пустого в данном случае, чтобы создать экземпляр класса > Что погуглить, куда почитать? Главу про классы, конструкторы и статический доступ. Желательно посмотреть как это выглядит в жаве, потому что котлиновский синтаксис делает многие вещи неявными. Как например с оператором new
>>2112680 Стоило открыть ссылку сначала. Там в первом случае создаётся три разные кнопки и на каждой вызывается по одному методу. Во втором, создаётся одна кнопка и на ней вызывается все три метода.
Аноны, а дайте-ка Топ-5 самых важных вещей, которые я должен знать о Котлин? Интересно, что могут спросить на собесе Андроид разработчика. Корутины, а что ещё?
>>2112796 У меня тоже был некоторый баттхерт на эту тему, new хорошо выделяется в коде, лишний раз бьет по рукам и заставляет задуматься, а не много ли объектов забьется в хипе.
Ребят, давайте поактивнее как-то. Пытаюсь учить Котлин, но блджад нужен какой-то роадмап. На сайте криворукие гайды, скачут с темы на тему, в принципе я видел неск. проектов и какие-то фишечки, но нужно набить руку на синтаксисе (т.е. нужны практические задачки) + по каждой фишке статейку. Может я не там смотрю. Мб есть ресурс получше офиц сайта?
>>2116045 Допустим у нас есть котлин файл с единственной строкой fun main() = print(kotlin.Int("${2+2}") == 4) Дописать в этот файл ещё одну строку, чтобы файл успешно компилировался и выводил true. Менять исходную строку нельзя
Как запилить бесконечную обработку коллекции? Идея такая, постоянно получаю кучу гет запростов, складываю их в списочек. Далее, запущен поток?, который бесконечно запускает обработку списка, при этом каждый элемент списка должен обрабатываться паралельно корутинами? Собственно, как запустить основной поток? Написать while(true)?
>>2116812 Да так получилось, что занесло в мобайл (уже есть некоторые сомнения), жабу знаю, но рыночек хочет чтобы все писали на ко-ко-котлине, у меня нет выбора в каком-то смысле. Либо идти бэк пилить на Ноде. В мобайле в каком-то смысле халява, но в этом и минус, тривиальные ui задачки в основном.
>>2116822 >Либо идти бэк пилить на Ноде Я надеюсь, это отголоски хипстерского бума 2010 года, а тенденция писать в 2021 на ноде бэк, жесть. А главное зачем??
>чтобы все писали на ко-ко-котлине Я могу ошибаться, но где-то видел статистику, что половину разработки на телефоне до сих пор на джаве.
>>2117458 >Большинство вакух это переписывание на Котлин. Лол, а зачем?? У бизнеса денег много стало, раз они позволяют переписывать "джаву на джаву"? Ну да там есть несколько моментов с сахаром, но в остальном это же та же жаба. Нет, я понимаю новое писать, но переписывать это же жесть (наверное просто сам придумал и написал, да?)
>А на чем по-твоему его нужно писать? Если смотреть на рынок, то по прежнему хорошо кормит пхп, дотнет и жаба (в порядке убывания). Ну или любой не экзотический язык. Например накатишь какой-нибудь питон, а потом увидишь, что на вакансии 100500 хачух-в-айти, раздутые инфоцаганами.
>для небольших проектов Для небольших проектов всегда был хорош чистый html как же достали эти шаблонные фразы
>>2118036 > У бизнеса денег много стало Нам кабанчиков не понять, может разрабы тоже влияют на это, не хотят на тухлом стеке застрять. > наверное просто сам придумал Если б. > всегда был хорош Ну не настолько мелких, имел в виду небольшие проекты, которые пишутся поверх глубокого бэка(на той же жабе допустим), чтобы завезти модное молодёжное на фронт.
>>2118321 Писать мелкое на джаве, даже на "овер-магическом" спринге, такая себе радость. Там какое-то тырпрайзное наследие, где простые вещи обязательно надо делать овер-перегружено. Даже простое блядское логирование может увести тебя в темный лес и изнасиловать там своими мудреными настройками в xml.
Какой-нибудь питонист, рубист или пыхер на тормозном ларавеле за несколько часов высрет уже подобие проекта, а в джаве ты еще в это время будешь дочитывать доку по спрингу.
И котлин, к сожалению, никак это не меняет. Никто не хочет писать удобный веб. Вон ктор какой-то высрали, я даже не понял как он работает, такое ощущение что люди опять начали сначала писать, а потом проектировать. Как можно было усложнить так, когда у тебя под боком тот же го, или node.js или другие примеры ембеддед серверов в одну строчку, я хз. Но вед смогли.
>>2119300 > Вон ктор какой-то высрали, я даже не понял как он работает Так же как и любой микровебфреимворк на жаве, типо жавалина или спарка, только с синтаксическими плюшками > такое ощущение что люди опять начали сначала писать, а потом проектировать Ощущение что вкатывальщики с каждым годом становятся всё тупее и тупее > Как можно было усложнить так, когда у тебя под боком тот же го, или node.js или другие примеры ембеддед серверов в одну строчку, я хз. Но вед смогли. Даже в доках роуты выглядят так же как в го или ноде
>>2119546 >Даже в доках роуты выглядят так же как в го или ноде Это сейчас они домазали фасадом. А раньше там какой-то трэш был с кишками "EngineЧто-тоТам". Думаю, если нужно будет подойти серьезно, придется рыться в этом всем как раньше.
>Ощущение что вкатывальщики с каждым годом становятся всё тупее и тупее Стаж программистом 14 лет. Могу уже отличать удобный дизайн и api, от очередного поражения тырпрайзного ООП. Причем сама джава не способствует такому подходу, это именно какой-то наработанный тырпрайз-стайл делать оверхеды на ровном месте (бритва Оккамы просто мгновение тупится об джава тырпрайз код).
Я уже много раз пережевывал эту проблему и мне лень распинаться, но чтобы не быть голословным, вот тебе пища на эту тему (рекомендую сорцы полистать): https://habr.com/ru/company/abbyy/blog/173885/
>>2119746 > Это сейчас они домазали фасадом. А раньше там какой-то трэш был с кишками "EngineЧто-тоТам". И щас инжен есть и так же через дсл настраивается что от него нужно > Думаю, если нужно будет подойти серьезно, придется рыться в этом всем как раньше. Да ты чо, а я думал можно взять любую фреимворк и с закрытыми глазами начать его использовать по максимуму > Причем сама джава не способствует такому подходу, это именно какой-то наработанный тырпрайз-стайл делать оверхеды на ровном месте (бритва Оккамы просто мгновение тупится об джава тырпрайз код). То есть сейчас это выглядит +- как в го или ноде, но это оверхед. А вот в го или ноде там не оверхед, хотя выглядит +- так же. Я не понимать > (рекомендую сорцы полистать): Ну вот для меня так спринг мвц выглядит. Абстракция над абстракцией. Где, чтобы запустить говно нужно настроить конфиги другого левого говна в рандомных местах в проекте. И какое облегчение было в свое время наткнуться на спарк, где все мое говно запускалось за 5 строк и 1 секунду
>>2119784 >наткнуться на спарк Это ты про sparkjava? Лучше бы ты это первым постом написал, я бы читать тебя не стал. попенсорс и так халтурное говно, так ты еще со дна это достал
>>2120363 Нет, мне вот даже интересно шарписты так же слизали это ООП-непотребства с джавы или пошли по другому пути?
>>2120594 Попробуй хоть один аргумент привести, за третий то пост. А то кроме токсичного нытья пока ни о чем не рассказал, программист со стажем 14 лет лол
>>2120758 Чтобы аргументировать, должен быть вопрос, какой еще третий пост, о чем ты? Как я могу аргументировать то что в твоей голове? У тебя лапки и ты не можешь составить полноценно критику моего поста или сформулировать конкретно вопрос?
Ты автор поста "sparkjava"? Или кто? Блин, почему я должен сидеть и анализировать посты которые были день назад и пытаться понять что ты шизик имел ввиду? И раскрой нам уже тайну третьего поста, а то я потерялся в пяти сотнях.
>>2121129 Походу ты один и тот же шизик. Процитировал "нет", ну офигеть, как-будто кто-то пойдет разбираться что это за "нет" у него в голове.
>>2121404 Вот это например > То есть сейчас это выглядит +- как в го или ноде, но это оверхед. А вот в го или ноде там не оверхед, хотя выглядит +- так же Ты хочешь чтобы это выглядело без ебли с настройками которые ты не хочешь изучать, я дал буквально однострочный вариант сервера, но это тоже говно для тебя. Норм? > почему я должен сидеть и анализировать посты которые были день назад Меньше диванной графомании и своих чувств, может к чему нибудь придем
>>2121437 > То есть сейчас это выглядит +- как в го или ноде, но это оверхед. А вот в го или ноде там не оверхед, хотя выглядит +- так же Как я тут могу ответить когда у тебя нет аргументов. Это твое мнение против моего. Смешно, но пост на который ты же цитировал годиться и для ответа тебе: >Это сейчас они домазали фасадом. А раньше там какой-то трэш был с кишками "EngineЧто-тоТам". Думаю, если нужно будет подойти серьезно, придется рыться в этом всем как раньше.
>Ты хочешь чтобы это выглядело без ебли с настройками которые ты не хочешь изучать, я дал буквально однострочный вариант сервера, но это тоже говно для тебя. Норм? Я хочу запустить сервер и иметь возможность его настроить, я не хочу погружаться в кишки и сущности внутреннего строения.
>Меньше диванной графомании и своих чувств, может к чему нибудь придем Где ты тут графоманию увидел? Определение то знаешь? Как можно прийти к чему-то, когда ты вырываешь из контекста удобные для тебя моменты (вплоть до одного слова "нет") и тут же фантазируешь как тебе удобно? Ты ссылаешься на какой-то третий пост, блин, ты же понимаешь что у тебя в голове какое-то свое представление беседы, со своей нумерацией? Как можно дискутировать с человеком, который фантазирует свое? Задай себе вопрос, ты правда хочешь это обсуждать так или тебе просто нужно самоутвердиться? Если последнее, то просто представь в голове очередную победу, как ты обычно это делаешь и не пиши больше, зачем если сама беседа не нужна тебе (я почти уверен что ты и на котлине не пишешь, судя по стилю, ты местный шизик который пишет почти во всех тредах).
>>2121404 >Процитировал "нет", ну офигеть, как-будто кто-то пойдет разбираться что это за "нет" у него в голове. Какой же ты тупой, пиздец просто! Я задал вопрос >Это ты, тот нытик который хотел в C# перекатиться? ты ответил > Нет Я на него и ответил, а твои мне вот даже интересно мне допизды, хули их цитировать.
>>2122293 > Как я тут могу ответить когда у тебя нет аргументов. Аргумент в том что ктор выглядит так же как сервер на го, на которой ты сослался как пример правильной архитектуры в плане простоты настройки > Я хочу запустить сервер и иметь возможность его настроить, я не хочу погружаться в кишки и сущности внутреннего строения. Так спарк именно про это. Одна строчка и настроенный сервер на 8080 порту. Даже не нужно знать что там под капотом километры предустановок поверх джетти. Жавалин туда же. С ктором чуть больше будет. Так и не объяснил в чем претензия к спарку, потому что исходя из твоей хотелки все что я предложил подходит, но при этом ты считаешь это говном, упорно умалчивая почему > Где ты тут графоманию увидел? Всё что ниже этих слов лол