Главная Юзердоски Каталог Трекер NSFW Настройки

Программирование

Ответить в тред Ответить в тред
Check this out!
<<
Назад | Вниз | Каталог | Обновить | Автообновление | 508 77 144
Kotlin #2 /kotlin/ Аноним 29/03/24 Птн 15:44:45 3105288 1
1000008084.png 68Кб, 1500x720
1500x720
1000008083.jpg 198Кб, 960x914
960x914
Вся разработка на котлин, кроме андроид и ios.

>Что имеем:
+Современный синтаксис (реально удобный).
+Совместимость со всей jvm инфраструктурой.
+Возможность писать статический DSL прямо на самом языке.
+Удобные лямбды и наличие простых функции.
+Удобный тулинг в том числе и на бесплатной IDE (комьюнити версии)
+Возможность нативной сборки, сборки в js, андроид и ios.
+Корутины

>Онлайн редактор (показать код или просто что-то потестить)
https://play.kotlinlang.org/

>IDE - среда разработки.
Бесплатная community edition - обычно более чем достаточно (и работает шустро), но можете попробовать триал-версию.
https://www.jetbrains.com/idea/download/

>Официальный сайт и там же чтиво
https://kotlinlang.org/docs/reference/

>Тоже с переводом (на первый взгляд, ру-перевод впервые выглядит не заброшенным):
https://kotlinlang.ru/

>Котлин в примерах
https://play.kotlinlang.org/byExample/overview

>Koans
https://play.kotlinlang.org/koans/overview

>Try Kotlin (пробуй и кодь)
https://try.kotlinlang.org/

>Knowledge map
https://hyperskill.org/knowledge-map/209

>Awesome (либы близкие к kotlin, но не стоит забывать про java решения)
https://kotlin.link/
или
https://github.com/KotlinBy/awesome-kotlin#libraries-frameworks-web

>kotlin для питонистов [eng]
https://github.com/Khan/kotlin-for-python-developers
Аноним 29/03/24 Птн 20:17:25 3105760 2
изображение.png 397Кб, 900x900
900x900
>>3105288 (OP)
>+Современный синтаксис (реально удобный).
>+Совместимость со всей jvm инфраструктурой.
>+Возможность писать статический DSL прямо на самом языке.
>+Удобные лямбды и наличие простых функции.
>+Удобный тулинг в том числе и на бесплатной IDE (комьюнити версии)
>+Возможность нативной сборки, сборки в js, андроид и ios.
>+Корутины
+Вендорлок от жыдбрейнс
+Работает поверх джавы, можно легко пересесть с игрушечного языка на нормальный
Аноним 29/03/24 Птн 21:05:52 3105868 3
>>3105760
Почему джавист плачет за маской, но текст вроде как за джаву? Шизофазия профдеформация у джавистов?
Аноним 29/03/24 Птн 21:49:50 3105911 4
Шарп.
Аноним 29/03/24 Птн 22:56:47 3106029 5
16578132809960.jpg 266Кб, 720x1096
720x1096
>>3105911
Зачем он нужен, когда запретили вижуал студио? Нугет еще не забанен?
Аноним 29/03/24 Птн 23:08:53 3106042 6
>>3106029
Так и идею точно также запретили
Аноним 29/03/24 Птн 23:09:43 3106044 7
>>3105868
>Почему джавист плачет за маской
Это котлинодебил нацепил маску своего сахара поверх джавы
Аноним 30/03/24 Суб 00:15:05 3106072 8
>>3106044
Но на картинке джавист притворяется котлом, переделывай картинку, а то засмеют
30/03/24 Суб 00:22:58 3106076 9
>>3105288 (OP)
>Современный синтаксис (реально удобный).
Groovy.
>Совместимость со всей jvm инфраструктурой.
Groovy.
>DSL прямо на самом языке
Groovy.
>Удобные лямбды
Groovy.
>Удобный тулинг в том числе и на бесплатной IDE
Groovy.
>Возможность нативной сборки
GraalVM.
>сборки в js
ClojureScript.
>андроид и ios
Flutter.
>>3105760
>Вендорлок
Это окончательно перечёркивает всё перечисленное автором.
Аноним 30/03/24 Суб 00:28:01 3106077 10
image.png 668Кб, 640x582
640x582
>>3106076
>Groovy
>Groovy
>Groovy
>Groovy
>Groovy
Аноним 30/03/24 Суб 02:22:54 3106132 11
>>3106072
>Но на картинке джавист притворяется котлом
Вот, начинает доходить потихоньку. Вы по сути те же джависты, только синтаксический сахар поверх прикрутили, гордо именуя крутым языком, волосы покрасили и тыквенный раф пить начали, но основная суть не изменилась
Аноним 30/03/24 Суб 08:38:57 3106196 12
>>3105288 (OP)
>котлин
Как-бы нахуй не нужен. Тем более елизаров и жемеров свалили, а поддержка в IDE не дотягивает и даже до сотой части того, что предлагает джава плагин в IDEA. Был бум котлина где-то 2-3 года назад и даже в сбере (сбербучую, кста) писали что-то на котле, но ныне все переписали на последнюю джэву, т.к. там уже есть все нужные фитчи и не нужно ебаться с корутинами, которые все равно почти никто не умеет правильно готовить
Аноним 30/03/24 Суб 09:49:03 3106236 13
>>3106076
>>3105760
> вендорлок
На их оф. сайте написано, что это опен-соурс под лицензией Apache 2.0 , разве это не означает, что я могу взять котлин и сделать с ним что захочу? При чем тут жедбрейнс?
Аноним 30/03/24 Суб 09:57:22 3106242 14
show.png 2Кб, 256x50
256x50
>>3106042
Там у них отладчик проприетарный и прибит гвоздями к обоим visual studio (code). Что как бы намекает на лукавость кроссплатформенной разработки и честного попенсорса
Аноним 30/03/24 Суб 10:03:18 3106247 15
>>3106044
Но плачет джавист? Типа, за эти годы он пытался подрожать котлину, но так и остался позади? Или что?

Кстати, с появлением котлина, джава стала сдавать позиции в tiobe. То есть, забрав рынок мобилок, джава оказалось тырпрайзной, никому не нужной пустышкой? Теперь я стал понимать параллель с коболом.

Честно не понимаю какой смысл писать на джаве, когда есть котлин, это как писать на вижуал бейсеке вместо шарпа. Или на объектив-си вместо свифта.
Аноним 30/03/24 Суб 10:05:17 3106250 16
>>3106076
>Groovy
Динамикодресня.

>Вендорлок
С каких пор удобство стало вендерлоком? Хочешь блокнот - бери блокнот.
Аноним 30/03/24 Суб 10:07:15 3106252 17
>>3106196
>все переписали на последнюю джэву
Тоже перешли наконец-то с 7 джавы на 8.
Аноним 30/03/24 Суб 10:52:53 3106295 18
>>3106132
Жабаскуф, спок. Тут аргументация даже не нужна, когда от жабы буквально рвотный рефлекс. Не трясись, твой язык морально устарел, гибкие зумеры - синьеры скоро забудут о твоем языке, т.к. все новые проекты пишут на go/c#/kotlin/python/elixir/rust, что угодно, только не джава.
мимо KMP господин
Аноним 30/03/24 Суб 10:54:41 3106296 19
Аноним 30/03/24 Суб 13:53:45 3106453 20
>>3106295
Не думаю, что c# кому-то нужен, тоже старое перепичканное говно, где дефолто-стантарт это только либы мс, а вне этого мало кто пишет попенсорсное.

Хотел скачать старую комьюнити версию вижлы для старого ноута чтобы в дороге потыкать, но был послан нахер за 7 винду.
Аноним 30/03/24 Суб 13:56:10 3106457 21
>>3106453
> был послан нахер за 7 винду
Ну и правильно, хоть в чем-то шарпомухи базовички
Аноним 30/03/24 Суб 14:25:45 3106496 22
>>3106457
Продвигать винду через лок бесплатной ide, верх тупости, такое придумать могли только зумеры.
Аноним 30/03/24 Суб 14:41:17 3106508 23
17117103945910.mp4 1595Кб, 684x960, 00:00:08
684x960
Устроился джава разработчиком, сегодня давали первую зп, что-то мне у вас в джавовом интерпрайзе не очень понравилось, может на котлин перекатиться?
Аноним 30/03/24 Суб 15:45:34 3106584 24
>>3106295
>go/c#/kotlin/python/elixir/rust
Точнее так: go/python/elixir/rust, что угодно, только не JVM и C#.
Аноним 30/03/24 Суб 18:24:34 3106805 25
show.png 1Кб, 256x50
256x50
>>3106584
Экзотические помои в том числе и раздутый питон.

JVM мир богат и вокруг него много корпораций, в этом мире никогда никто не возьмет верх и не начнет доить юзеров, jvm языки так же свободны и сильны как и С/С++.

Хера у жабадауна бомбит, если котлин делает его jvm сильнее.
Аноним 31/03/24 Вск 02:00:03 3107389 26
>>3106508
Думаешь на котлине полную миску насыпят?
Аноним 31/03/24 Вск 08:55:02 3107453 27
>>3106805
>котлин делает его jvm сильнее
На самом деле нет. Это как со скэйлой, которая померла. Но она хотя бы после себя оставила тормозной спарк и кафку. Спарк еще где-то используют, а кафку переписали на джэву, лол
Аноним 31/03/24 Вск 21:22:05 3108062 28
>>3106076
Двачую тебя, братишка. Вот прям Groovy реально недооценён. В последнее время его даже принято обсирать почём зря. А он хороший. Как дополнение к Java он прекрасен, да и самостоятельно тоже.
Аноним 01/04/24 Пнд 00:50:38 3108204 29
>>3106236
Пойди да сделай, потом расскажешь что получилось
Аноним 01/04/24 Пнд 21:21:32 3109193 30
>>3108062
>В последнее время его даже принято обсирать почём зря. А он хороший.
Потому что динамо дристня уровня ЖС. Но в ЖС это поняли давно и начали делать статическую типизацию. А вот говноедов которые любят груви понять невозможно.
02/04/24 Втр 00:54:25 3109349 31
>>3109193
Ты же не удивляешься, что кто-то на петухоне хуярит? А Groovy вполне можно компилировать статически при желании, в производительности будет на уровне Java при той же лаконичности.
Аноним 02/04/24 Втр 09:23:36 3109512 32
>>3109349
На петухоне писать без типов уже давно дурным тоном считается
Аноним 02/04/24 Втр 09:39:02 3109533 33
>>3109512
Тем не менее пишут, еще и в промышленных масштабах
Аноним 02/04/24 Втр 11:44:36 3109644 34
>>3109349
>Ты же не удивляешься, что кто-то на петухоне хуярит?
Вопрос не в том, кто и как хуярит, а в best practices. Для фронта сейчас best practices использовать TypeScript, для питона 484.

>А Groovy вполне можно компилировать статически при желании, в производительности будет на уровне Java при той же лаконичности.
И как мне сделать так, чтобы в грейдл скриптах нормально работали подсказки по коду?
Аноним 03/04/24 Срд 15:13:21 3110769 35
>>3107453
Какая написана на java + Scala.
Аноним 04/04/24 Чтв 22:02:01 3112106 36
image.png 13Кб, 402x138
402x138
Так, я чет не понимаю?
Почему идея говорит Redundant 'asSequence' call
Мне говорили, что для последовательных преобразований надо последовательность использовать, которая как stream в жабе работает.
Аноним 04/04/24 Чтв 22:14:04 3112116 37
>>3112106
А, это потому что groupBy мапу возвращает, там же никак не применить всё за один проход
Аноним 05/04/24 Птн 00:39:35 3112267 38
gradle.PNG 6Кб, 379x136
379x136
gradle2.PNG 25Кб, 608x204
608x204
gradle3.PNG 6Кб, 284x114
284x114
gradle4.PNG 19Кб, 577x150
577x150
>>3109644
>И как мне сделать так, чтобы в грейдл скриптах нормально работали подсказки по коду?
Явно указывай типы, вот например для тасков и конфигов
Аноним 05/04/24 Птн 09:11:43 3112471 39
>>3112267
Почему люди добровольно соглашаются писать на языках с динамической типизацией? Это же прямой путь к багам.
Аноним 05/04/24 Птн 09:22:36 3112482 40
Аноним 05/04/24 Птн 09:26:47 3112493 41
>>3112482
Только потому что какие-то "персонажи" сделали тот или иной язык популярным и теперь тот же питон стандарт в научной среде. Новичок не выбирает на чем ему писать, долго пишет, привыкает что говнокод это норма, что баги это норма, что проще написать самому, чем разобраться в чужом и он начинает это говно ещё другим предлагать ведь раз он ест значит и другим нужно попробовать.
Аноним 05/04/24 Птн 18:23:41 3113035 42
>>3112471
Груви - это язык со статической типизацией, ты не можешь переменной присвоить значение другого типа.
Это так же язык с неявной типизацией, так же как и Котлин, где можно все на варах сделать, кроме разве что возвращаемого значения функции.
Аноним 05/04/24 Птн 18:35:03 3113052 43
>>3113035
Точнее он "optionally typed", как и джава, как и котлин
Через defы можешь инту присвоить строку, но это все равно что в джаве писать на обджектах, а в котлине на эни.

Этот код рабочий в котлине:
var b: Any = 2;
b = "adwd"
А этот в джаве:
Object a = 2;
a = "adawd";

Но если ты явно задаешь тип переменной, то груви так же выдаст тебе ошибку компиляции
Аноним 05/04/24 Птн 19:06:01 3113086 44
>>3113052
> пример кода
Жесть, я не думал что такое будет валидно
Аноним 08/04/24 Пнд 12:41:35 3116275 45
>>3113086
>Жесть, я не думал что такое будет валидно
Нормальный код. Просто подставь туда, более осмысленный тип:

CharSequence name = "Duke";
name= new StringBuilder(name);
System.out.println(name);
Аноним 08/04/24 Пнд 14:42:35 3116359 46
>>3113086
Полиморфизм, все наследуются от одного родителя и к нему могут быть приведены.
У котлина есть еще специальный нижний по наследованию тип, там есть кейсы, но без гугла не вспомню.
Аноним 08/04/24 Пнд 15:50:10 3116414 47
>>3116359
Да, но выглядит прям не очень. Как будто пайтон.
Аноним 08/04/24 Пнд 17:12:49 3116449 48
>>3116414
Ты с обжектом мало что можешь сделать, там хэши и приведение строки и примитивы синхронизации (в котлине выпилили).

Так что причем тут твой петухон, типизация не теряется, не путай полиморфизм с динамикодресней.
Аноним 08/04/24 Пнд 17:46:55 3116461 49
>>3116449
Ты можешь привести обжект к нормальному типу через перебор

if (drisnya is Manager) {
drisnya.doNothingAllDay()
}

Так что я вполне могу представить программу всю написанную на обжектах и будет оно выглядеть на питоновский скрипт
Аноним 08/04/24 Пнд 21:04:32 3116578 50
>>3116461
Ты проверил на тип и работаешь с ним, динамикодрисни не случилось, а если случиться, то мистер эксепшен тебе объяснит почему ты не развиваешься как программист и путаешь полиморфизм и динамикодресню.

А вот в квази-кроссплатформеном шарпе есть тип дайнемик, видимо кейсы бывают

Даже если спуститься до уровня твоего интеллекта и попробовать использовать как динамикодресню, то лучше когда есть такая возможность в типизированном языке, чем будет симуляция типов в динамикодресне.
Аноним 08/04/24 Пнд 21:34:41 3116614 51
>>3116578
Лол, тебе говорили что ты душный?
Аноним 08/04/24 Пнд 21:39:02 3116622 52
>>3116461
>>3116578
Так в питоне ты тоже можешь проверить тип переменной
type(i) is float
type(i) is int
Аноним 08/04/24 Пнд 23:00:59 3116681 53
>>3116622
>Так в питоне ты тоже можешь проверить тип переменной
Но не можешь ограничить тип переменной. Т.е. в джава/котлин ты говоришь, что тип Iterator и компилятор с рантамом тебе это гарантируют. А в питоне, у тебя только хинты.
Аноним 09/04/24 Втр 00:08:54 3116710 54
>>3116622
Там проверка и приведение типа, котлин просто сахарит это место.
Кстати, поймал очень приятных трах на час в питоне, когда по ошибке присвоил в существующую переменную и динамикодрисня вежливо это съела, создав плавающую ошибку.

В старой жабе тебя хотя бы отругали за другой тип, но в современных языках или практиках, переменные делают иммутабельными.

Типизация, даже кривая как в го, будет куда лучше потому, как проверка на этапе компиляции, а не в рантайме, в ветке if'ов, где крашится в лунную ночь, когда цветет сакура.
Аноним 09/04/24 Втр 08:07:08 3116806 55
>>3116710
Языки без статической типизации это самотыкающий велосипед, но ведь пишут на них что удивительно. Питон повсюду
Аноним 09/04/24 Втр 15:51:22 3117357 56
>>3116806
Писал промышленный код, с phpdoc для типизации (давно еще), все равно заставляли тесты писать и получалось, что ты и в функции чекаешь чтобы лишнее гавно не прошло, потом еще тесты пишешь и тоже по кругу одно и тоже проверяешь и это затрахивает.
Так что можно, но нафиг.
Аноним 09/04/24 Втр 16:25:17 3117374 57
>>3117357
Всё правильно делали. Лучше заехать инженера чем потом читать про очередной упавший самолёт
Аноним 09/04/24 Втр 21:17:32 3117584 58
>>3117374
>но ведь пишут на них что удивительно. Питон повсюду
Смысл в том, чтобы нормально писать на динамикодрисне, нужно три раза делать одно и тоже. а не про покрытие тестов
Аноним 20/04/24 Суб 21:27:26 3129989 59
Чет тред падает, как только джавадебил срыгнул. Давайте хоть обсудим korge и вообще, может ли существовать геймдев на котлине
Аноним 20/04/24 Суб 21:52:10 3130003 60
так и до обсуждения граальвм можно докатиться
Аноним 20/04/24 Суб 22:07:39 3130012 61
>>3130003
Так хоть какой-то пиар языка и (возможно) придут хорошие разрабы и напишут либы... Надеюсь...
Аноним 21/04/24 Вск 01:01:29 3130153 62
>>3130012
>придут хорошие разрабы и напишут либы
пишите сами
Аноним 21/04/24 Вск 01:04:29 3130156 63
Аноним 21/04/24 Вск 07:59:24 3130234 64
>>3129989
На Kotlin можно же писать для Java ME? Только платформа похоже совсем мертвая.
На Android можно запускать такие игры через эмулятор.
Аноним 21/04/24 Вск 08:17:42 3130239 65
>>3129989
> Геймдев на котлине
Без шансов. Уже есть C# для Unity и Blueprints/C++ для Unreal Engine. Остальные движки представлены на рынке в виде нескольких процентов.
Аноним 21/04/24 Вск 08:34:59 3130244 66
>>3130239
Да и Unity практически не используется в профессиональном геймдеве. В основном инди разработчиками.
Аноним 21/04/24 Вск 08:54:27 3130258 67
>>3130244
Открой любой сайт с вакансиями и обнаружишь, что 60 % это юнити и 35 % это анриал. Потом открой стим дб и отфильтруй игры с 10 000 отзывами по движку и увидишь аналогичные результаты. Игры с 10 000 отзывами это успешно-коммерческие игры.
Аноним 21/04/24 Вск 10:39:14 3130341 68
>>3130239
А возможно портировать kotlin на .NET? Или это очень сложно?
Аноним 21/04/24 Вск 10:43:22 3130348 69
image.png 1075Кб, 1024x715
1024x715
Аноним 21/04/24 Вск 12:18:04 3130407 70
>>3130341
Да нет, не так уж сложно, но зачем?
Аноним 21/04/24 Вск 13:20:16 3130483 71
Аноним 21/04/24 Вск 13:24:44 3130487 72
>>3130341
Но если ты спрашиваешь в разрезе геймдева - учти что в юнити неполный С#, насколько я знаю он не поддерживает некоторые фишки как LINQ например.
Но имхо, если ты идёшь в геймдев, то язык очень сильно теряет значение, в том смысле что тебе все языки геймдева так сильно интегрированы с движками, что это по сути свои отдельные диалекты, где есть правила что и как нужно делать конкретно в этом движке. Так что я бы на переиспользование опыта сильно не рассчитывал.
Аноним 21/04/24 Вск 18:39:05 3130841 73
Аноним 22/04/24 Пнд 13:45:49 3131630 74
show.png 1Кб, 256x50
256x50
>>3129989
Сам /зк сдох, там топовые темы ели живые, я сам отсюда ливнул, ибо моча трет посты и банит просто от фазы луны, (кстати, особенно в жабо треде). Теперь это раздел двача напоминает шизо-загон из 1,5 инвалида пытающиеся вечно вкатиться.

мимо оп первого треда
Аноним 22/04/24 Пнд 13:47:59 3131635 75
>>3130239
Шарп там на правах скрипта не боле, есть плагины и на котлин, просто вкатываться, возможно, будет проблемно, а так без разницы чем апи дергать, там вообще древний дотнет и шарп.
Аноним 22/04/24 Пнд 13:51:38 3131638 76
>>3130341
Был проект, один раз затух, потом возродили вроде, но кажется что затух снова.
Первая ссылка в гугле
https://discuss.kotlinlang.org/t/kotlin-for-net/12801

Смысла в этом не очень много, но шарп выглядит уже на фоне котлина древним куском говна
Аноним 22/04/24 Пнд 14:55:17 3131744 77
Ну постите сюда либы интересные типа Arrow, я хз.
Аноним 22/04/24 Пнд 21:12:34 3132251 78
>>3131744
Ну я недавно нашел https://github.com/anilbeesetti/nextlib библиотеку. Подключает ffmpeg к андройдовскому media 3. Очень удобно, теперь можно не искать, как бы hevc запускать на андройде
Аноним 22/04/24 Пнд 23:43:39 3132344 79
>>3132251
И какой вес у этой зависимости?
Аноним 22/04/24 Пнд 23:44:50 3132346 80
>>3132251
Also, зачем тебе h.265? Чем не устраивает h.264?
Аноним 23/04/24 Втр 00:25:08 3132365 81
>>3132346
Я накачал тонну видосов, а 98% из них в hevc....
Надо сделать свой плеер под это дело т.к. надо еще доп.инфу выводить.
Вес хз, пока не смотрел. Тупо нашел, завтра смотреть буду и тыкаться
Аноним 23/04/24 Втр 08:37:02 3132486 82
>>3132365
Я думал, что они обратно совместимы с h.264. Просто не забывай про размер, а то мы также всякого добавили в ЛИБУ, а потом нервно убирали когда заказчик захо ел размер дистрибутива в 10 раз меньше
Аноним 23/04/24 Втр 10:01:12 3132550 83
>>3132486
К сожалению, нет, не совместимы. А про размер спасибо, совсем забыл про это
Аноним 23/04/24 Втр 22:04:38 3133348 84
Доброй ночи, коллеги-красноглазики. Какой опыт работы с Ktor-server у вас? Хотелось бы послушать байки, да с какими багами вы столкнулись во время перехода со spring
Аноним 23/04/24 Втр 22:25:57 3133391 85
>>3105288 (OP)
Котлин кал, настолько лаконичен, что просто нахуй нечитаем
Аноним 24/04/24 Срд 00:54:15 3133515 86
Аноним 24/04/24 Срд 13:50:16 3133884 87
>>3133348
Там вроде обертка над нетти, ничего проблемного не ожидается.
По гига-чад тестам не так все быстро, но зато даже сорцы нетти читаемы (оч давно в это долбился, никакого говно-магического бинаря, а если читаемо, то все гибко).
Аноним 24/04/24 Срд 13:53:13 3133889 88
show.png 0Кб, 256x50
256x50
Кто-нибудь игрался с вебассембле на котле? Что там на нем есть, какие впечатления?
хотел говноигрушку для браузера сделать, дергать DOM как-то напрягает
Аноним 25/04/24 Чтв 15:25:50 3135027 89
Аноним 26/04/24 Птн 14:31:41 3136012 90
Как на Котлине обстоят дела с фрилансом?
Аноним 26/04/24 Птн 22:08:46 3136559 91
>>3136012
Ты куда звонишь, сынок ебаный?
Какой нахуй фриланс, чел
Аноним 26/04/24 Птн 22:10:31 3136567 92
>>3133884
Спасибо, как раз хотел начать пилить свой стартап.
А то, что он не blazing fast пофиг. Лучше стабильность и читаемость, чем выжигать глаза об rust/c++.
Аноним 26/04/24 Птн 23:20:05 3136620 93
>>3136012
Разве что Андроид.


Ну и в целом - вы заебали! На беке Котлин это Джава + вируальные потоки + МНОГО САХАРА. Любой нормальные джава разраб справится.
Аноним 27/04/24 Суб 01:52:14 3136685 94
>>3136012
Ты лучше проси как дела в целом с работой
Аноним 27/04/24 Суб 08:45:22 3136763 95
>>3136685
Ну и как дела с работой в целом?
Аноним 27/04/24 Суб 18:27:07 3137261 96
>>3136763
Всё плохо, котлин только в андроид разработке нужен, а там вкат закрылся ещё в 2023
Аноним 28/04/24 Вск 09:54:08 3137607 97
>>3137261
"Вкат закоылся", типо, для косакеров с курсов от СкиллКокса или для любых, не мидлов?
Аноним 30/04/24 Втр 10:05:16 3139462 98
>>3137607
Что мидлам и сенькам делать в мобильной разработке? Они гребут сотыги в банках.
Аноним 30/04/24 Втр 10:32:58 3139487 99
>>3139462
А банкам, мобильные приложения конечно же не нужны.
Аноним 04/05/24 Суб 19:32:55 3144895 100
image.png 150Кб, 800x467
800x467
Не сдох еще этот ваш Котлин? Не понимаю, зачем он нужен.
Аноним 04/05/24 Суб 20:28:25 3145015 101
Делаю приложение для телефонов на складе. Старая приложуха написана коллегами на киви(из питухона в апк). Производительность хромает, ну и обновление многочисленных зависимостей сборочницы это особый адок. Переезжаем на котлин+компоуз. Сразу появились подводные камни:
1) Получаю, например, от сервера описание 250 товаров в json. У каждого товара все описание в строках, одна из которых URL картинки. Без кэширование пикч бессмысленно работать. Пока единственная идея это хранить скаченые пикчи файлами в отдельной папке, и проверять наличие пикчи перед скаичванием по URL. Вообще я в правильном направлении иду?
2) Как хранить данные json от запроса? Я пока сложил их так (Item одна единица, Items массив данных):
>sealed interface Data {
>data class Item(a: String, b: String, URL: String)
>object class Items () { var elements = MutableListOf<Item>() }
<}
3) Зачем передавать данные для отрисовки через Flow, если я могу просто передать данные в аргументе функции компоуз? Не осилил философию флоу, ибо он показался мне оверхедом.
>@Composable
>fun Draw(arr: Items()) {
>LazyColumn() {}
>}
4) Есть в сети годные гайды как увеличить производительность кода? Сеть хромает, телефоны средние, и работе будут до 300-1000 сложных элементов в списках, так что каждый мегабайт важен. То что надо где можно использовать val вместо var, object вместо class, Imutable и Stable, это я понял. Нужна аналитика по тому насколько одни способы хранения данные эффективнее других, и какие объекты, в частности канвасы, в байткоде быстрее исполняются.
Аноним 04/05/24 Суб 20:28:49 3145016 102
16741239950070.jpg 186Кб, 604x604
604x604
Делаю приложение для телефонов на складе. Старая приложуха написана коллегами на киви(из питухона в апк). Производительность хромает, ну и обновление многочисленных зависимостей сборочницы это особый адок. Переезжаем на котлин+компоуз. Сразу появились подводные камни:
1) Получаю, например, от сервера описание 250 товаров в json. У каждого товара все описание в строках, одна из которых URL картинки. Без кэширование пикч бессмысленно работать. Пока единственная идея это хранить скаченые пикчи файлами в отдельной папке, и проверять наличие пикчи перед скаичванием по URL. Вообще я в правильном направлении иду?
2) Как хранить данные json от запроса? Я пока сложил их так (Item одна единица, Items массив данных):
>sealed interface Data {
>data class Item(a: String, b: String, URL: String)
>object class Items () { var elements = MutableListOf<Item>() }
<}
3) Зачем передавать данные для отрисовки через Flow, если я могу просто передать данные в аргументе функции компоуз? Не осилил философию флоу, ибо он показался мне оверхедом.
>@Composable
>fun Draw(arr: Items()) {
>LazyColumn() {}
>}
4) Есть в сети годные гайды как увеличить производительность кода? Сеть хромает, телефоны средние, и работе будут до 300-1000 сложных элементов в списках, так что каждый мегабайт важен. То что надо где можно использовать val вместо var, object вместо class, Imutable и Stable, это я понял. Нужна аналитика по тому насколько одни способы хранения данные эффективнее других, и какие объекты, в частности канвасы, в байткоде быстрее исполняются.
Аноним 04/05/24 Суб 21:28:03 3145067 103
>>3145015
1. Для кеширования пикч и прочих манипуляций с фото можешь юзать https://coil-kt.github.io/coil/ Coil (он работает с Compose, в доке есть отдельное под это)

2. Если ты говоришь про хранение в UI, то там юзают UiState. Я бы разделил на Item и ItemsList, чтобы не путать, где список и где отдельный объект.

3. Флоу это горячий поток, который позволяет менять данные даже после отрисовки UI. Он автоматом обновит нужный тебе Ui объект (у нас же компоуз, а он как конструктор) и даже юзера уведомлять об "новых данных" не надо, чтобы он обновил Ui. Он уже сразу увидит их.

4. тут не смогу ответить :( Можешь попробовать https://habr.com/ru/articles/796437/ и https://habr.com/ru/companies/ozontech/articles/742854/ . Еще хороший контент на счёт оптимизации есть у Philipp lackner https://www.youtube.com/@PhilippLackner
Аноним 05/05/24 Вск 07:01:03 3145226 104
>>3145067
>Coil
Какая годная штука!
>UIState и Флоу
В виду простоты приложения использую более простой подход. Сделал простой класс для навигации и имею функцию, которая через when вызывает конкретный экран/функцию. Данные у меня не мутабельные, и хранятся вне компоуза, просто в массиве дата классов. Правда пока решил слепить в кучу класс навигации, название экрана, и placeholder для данных. Это чистый анти-паттерн, от которого многие начнут хмурить брови, но я вам скажу что если вы будете писать по 50+ экранов так как доки завещали, то вы быстро устанете
fun Draw(nav :Navigator, data: Models(), screenTitle: String)
Пока у меня все в одном
fun Draw(meta: MetaClass)
И данные в placeholder я не чищу, а просто перезаписываю на новые когда получаю новый json. Это бизнес логика, требующая быстрой расширяемости при максимально примитивной архитектуре, и чтобы за пару минут объяснить коллегам питонистам свои магические пассы в приложении.
>https://www.youtube.com/@PhilippLackner
Буду смотреть
Аноним 05/05/24 Вск 11:48:45 3145330 105
>>3145226
Понятно. Удачи тебе
Аноним 05/05/24 Вск 23:19:37 3145970 106
>>3145015
>Пока единственная идея это хранить скаченые пикчи файлами в отдельной папке, и проверять наличие пикчи перед скаичванием по URL.
Андроид? Там же у каждого приложения своя база есть, в ней и храни.
>4) Есть в сети годные гайды как увеличить производительность кода?
Тебе сначала нужно померить где именно производительность страдает, а не вслепую оптимизировать.
Если сеть хромает - и большие списки, логично асинхронно подгружать данные только для тех элементов списка что юзер видит. Ну и пережать картинки на сервере/сделать отдельные превью картинки, чтобы меньше загружать.
а вот это
>val вместо var, object вместо class, Imutable и Stable
в твоём случае ничего не сделает, я вообще не уверен в каком случае это хоть что-то сделает
иммутаблы - так это точно просадка производительности, но наверное все же не на твоих объемах
Аноним 06/05/24 Пнд 18:31:37 3146678 107
17118912982720.jpg 366Кб, 811x1068
811x1068
>>3145330
Спасибо! Все что сложнее формошлепства на компоузе не без подводных. Неспешно прощупываю кэширование пикч. Бодался с Койлом пока не обнаружил что начиная с 28 (вроде) сдк http уже не работает, и требуются https ссылки. Койл, самая популярная библиотека по кэшированию пикч из сети котлина, тупо игнорирует неприятное и работает не возвращая ошибки при сетевых ошибках. "Нет файла по адресу в сети, да и хуй с ним", решили разрабы. Аж самописный костыль вкрутить захотелось!

>3145970
>Андроид? Там же у каждого приложения своя база есть, в ней и храни.
На этот функционал с БД нужно время и причина. Достаточно скачать пикчу по URL, если она еще не скачивалась в R.drawable. Некоторые пикчи так сурово зашакалены, что запись в БД будет есть в разы больше места чем сама пикча весит. Зачем тогда БД? Чтобы что?
>нужно померить где именно производительность страдает, а не вслепую оптимизировать.
Пока получилось написать как получилось, плохенько, а потом уже стал урезать избыточную мутабельность и наследование. Как ни странно, увеличение количество классов и их инстансов заметно снижает скорость кода. То же самое можно сказать о стейтах. Обвесил функции @Stable и @Immutable где возможно, но не знаю что поменялось лол.
>иммутаблы - так это точно просадка производительности, но наверное все же не на твоих объемах
Есть данные по иммутаблам? Пока что я нахожу в интернете только инфоциганские методички без бенчмарков или отсылок к докам явамашины. То-есть буквально аргументация "траст ми бро".
Аноним 06/05/24 Пнд 19:17:16 3146721 108
>>3146678
1. https://android.libhunt.com/coil-alternatives
2. Какой дебил будет грузить картинки в базу данных? Используй кеш приложения (папка data в android) в качестве хранилища и просто храни в бд ссылки на эти самые картинки, лол.
Аноним 06/05/24 Пнд 23:41:53 3146932 109
>>3146678
>Есть данные по иммутаблам? Пока что я нахожу в интернете только инфоциганские методички без бенчмарков или отсылок к докам явамашины. То-есть буквально аргументация "траст ми бро".
По пробуй в цикле создавать Integer`ы, а потом int`ы, и сравни разницу. Вот Integer`ы как раз иммутабельны. Тут суть не в иммьютаблах как таковых, а в том что они порождают большой поток аллокаций/мусора (но на болшом объеме данных конечно). А это всегда хуже чем не аллоцировать. Но заметно только на сильной нагрузке.

>На этот функционал с БД нужно время и причина. Достаточно скачать пикчу по URL, если она еще не скачивалась в R.drawable. Некоторые пикчи так сурово зашакалены, что запись в БД будет есть в разы больше места чем сама пикча весит. Зачем тогда БД? Чтобы что?
Я тебя не пойму - делаешь микрооптимизации, которые тебе ничего не дадут, а на самые мощные оптимизации времени нет? Тебе это странным не кажется?
Что значит пикчи зашакалены? Вы архивируете картинки чтоли? Иначе запись в БД не будет больше чем пикча весит. Да даже в этом случае можно писать архивированную.

>Зачем тогда БД? Чтобы что?
Чтобы кэшировать картинки, ты же этого хочешь? Скачал, сохранил в БД. Потом отобразил. И никакой коил не будет тебе глотать ошибки или требовать https.
https://developer.android.com/develop/ui/compose/graphics/images/loading#disk-loading
Аноним 06/05/24 Пнд 23:49:56 3146937 110
>>3146678
>>3146932
Еще кстати мощная оптимизация, которую ты вероятно с коилом не получишь - упаковать все картинки в 1 файл и скачать разом, обычно это быстрее чем по одной качать (но нужно проверять).
Делаешь архив с превьюшками и архив с нормальными, быстрое качаешь превьюшки, в фоне качаешь нормальные, если долго качается и юзер запрашивает в этом время картинку - подтянуть одну отдельную в фоне. Скорее всего юзер успеет кликнуть максимум на 1-2 картинки пока полный пак не скачается.
Аноним 06/05/24 Пнд 23:57:12 3146942 111
Аноним 07/05/24 Втр 02:03:32 3146977 112
>>3146932
Погоди, в котлине же только ссылочные типы, а примитивные только у джавы, не? Или что ты имеешь ввиду под Integer и int?

Мимопроходил
Аноним 07/05/24 Втр 10:49:13 3147167 113
>>3146977
в теории котлин иногда использует примитивные типы под капотом
но это был просто наглядный пример иммутабельности
Аноним 07/05/24 Втр 14:21:17 3147399 114
Аноним 07/05/24 Втр 16:42:57 3147541 115
>>3146721
Оказалось что Coil это "Glide у нас дома" (в Котлине). В плане синтаксиса 1 в 1 местами. Еще не подключал глайд к проекту. Папка data не была доступна так как я решил скачивать медиа через DownloadManager, который относительно несложно вкручивается в приложение копипастом, живет отдельной жизнью в системе, не настаивает на https, и в ресурсы приложений доступа не имеет. Это очень странный и тупой инструмент, который подписывается на приложение и живет системе отдельно, сбрасывая медиа в Download (легко посмотреть скаченное из приложения загрузки). Все неплохо, только почему-то файлы виснут в очереди на скачку, а не качаются. Очевидно где-то не проверил настройки сети. От коила и глайда не отказываюсь. Надо же с чем-то сравнивать.
>>3146932
БД тема непростая. Знаний у меня в этом мало. Поэтому рискую надолго завязнуть в болоте "просчитался, но где?". Орнул с твоего подхода "прост заведи БД, делов-то на пять минут".
>>3146937
Бэкенд с данными не у меня, так что мою идею с упаковкой данных встретили без энтузиазма. Пикчи в основном все по http. Json'ы большие как и запросы из трех джоинов, так что рабочую бизнес логику я не могу поменять. Хочу сделать основу приложения относительно шуструю и расширяемую. А потом уже буду скучать делая 50+ экранов по побразцу, наводя всякую красоту для конечных пользователей.
Аноним 07/05/24 Втр 17:34:08 3147589 116
>>3147541
Если ты привык работать с ORM, но тебе чужда Room, то используй Realm.
Выглядит как Exposed, но намного проще и имеются сдк под андройд (exposed еще к проекту подключать минут 10 надо, а тебе так вообще часов 50)
Аноним 07/05/24 Втр 17:35:36 3147593 117
Аноним 07/05/24 Втр 21:22:08 3147849 118
>>3147541
>Орнул с твоего подхода "прост заведи БД, делов-то на пять минут".
Ну вообще на уровне записать/считать из одной таблицы данные БД тема очень простая. И не нужно ничего заводить, она есть в каждом Андроид телефоне.
https://developer.android.com/training/data-storage/room

>Json'ы большие как и запросы из трех джоинов, так что рабочую бизнес логику я не могу поменять.
Это я не понял вообще к чему? Что за джейсоны? Что не можешь изменить алгоритм показа картинок?
Ну смотри сам, экономия на спичках тебе сильно много не даст. В любом приложении основные узкие места - это IO, объем передаваемых по сети данных, работа с базой. Чем больше из этого уберешь, тем быстрее будет.
Судя по твоему описанию, проще всего будет на первом старте показывать лоадинг скрин и грузить все картинки в кэш - уж через фреймворки или нет - это тебе видней.
Но если у тебя на бэкэнде скуфы, которым похуй на оптимизацию - это пиздец, тут только сложнее и сложнее кэширование на твоей стороне делать. Кэшировать входищие данные, асинхронно отправлять запросы на бэк, перепосылки, и т.д.
Аноним 09/05/24 Чтв 12:58:33 3149477 119
1682553148.jpg 296Кб, 964x768
964x768
>>3147589
>>3147593
>>3147849
Ух я постыню накатал конечно
Ты описываешь архитетуру вк или ватсаппа, записывающих в БД гигабайты мусора, которые потом надо в фоне апдейтить, пытаясь хоть как-то сохранить актуальность данных. Да, когда у тебя 2 диалога вк, и через стенку стоит хороший роутер, то все это работает как часы. Я все понимаю, что ты начитался инфоциган на хабре, поставил им лайк, и даже подписался на их телеграмм канал, но не все разработчики вокруг тебя делают мобильные казино и мессенджеры, где с БД только в путь.

У нас тонкий клиент с простым кэшем, то-есть приложение, которое скачивает данные по товарам JSON (нестабильные и изменяемые) и картинки (условно неизменяемые). Данные актуальны до тех пор пока мы не ушли с экрана. А картинки часто повторяются. Бэкенд лежит на плечах скуфов, и что REST сервер, что его запросы, не особо оптимизированы. Все пикчи в рабочем хранилище расшарены по http (скуфы не хотят учить сертификаты), а резервный сервер с бэкапами пикч отдает их по https (через load balancer для e-shop). В сумме на серверах около полумиллиона картинок, из которых на телефоне используются несколько сотен пикч в день, условно до 2000 за неделю на устройстве.

Пока что я знатно соснул с реализацией кэширования в памяти приложения, и вынужден отложить ее. Возможно дейтвительно придется пересесть на БД, где будет одна таблица с двумя полями: ключ и блоб. Современный апи андроида пытаются превратиться в вендорлочное анально огороженное говно. Каждые несколько релизов апи все меньше директорий доступны, и все больше ограничений, например использование алиасов вместо явных указаний директории. http пока еще разрешают включать отдельной опцией, но это только пока. Библиотеки с пикчами на котлине вообще не в курсе что существует http, например. Загрузка скаченных в памяти/ассетов файлов это чистокровные костыли от гугла. Пока я ебался с этим, у меня аж натуральная тряска с аутичным тиком началясь. А подгрузка ресурсов (вшитых в апк строк/пикч, в режиме ридонли) наоборот работает на изи.

То-есть глобохомо гугл видит идеальное приложение так: на старте в приложении есть только 5 иконок навигации, а остальные 99% процентов приложения скачивается через https в неэффекивную БД написанную индусами, которая по каждому пуку апдейтится чтобы ресурс ссд и внутрення память максимально страдали. В оперативке крутятся только телеметрические зонды, а placeholder для хранения изменяемых данных это в вовсе утерянная технология древних, запрещенная самим гуглом. Так как бд приложения это вечнорастущий файл без бэкапа, то он со временем вероятность словить фейл стремительно растет, и никакой рут не поможет среднему юзеру вытащить свои файлы когда будет краш, так что лох в панике побежит покупать новый телефон, да подписываться на платные облака чтобы больше не терять свои картинки с котиками, еот, или гомониграми (на случай важных переговоров в авточате). Работу с файлами приложенями полностью запретят и назовут опасным антипаттерном.
Аноним 09/05/24 Чтв 14:52:31 3149586 120
>>3149477
Ну если ты лучше знаешь как надо делать - то чего здесь спрашиваешь?

И что это за биполярочка - сначала база - это мусор и инфоцыгане, а потом ой никак, придется с базой делать. Там разные люди твой пост что-ли писали.

>>3149477
>Загрузка скаченных в памяти/ассетов файлов это чистокровные костыли от гугла.
Опять же знаешь как правильно - делай как правильно, только зачем тогда за советом приходить?
Аноним 12/05/24 Вск 05:20:00 3152494 121
Возник вопрос про DI. А стоит ли оно того? Думаю игру сделать и вот встрял "нужен ли DI в принципе?". Помимо di реквестирую какую архитектуру/структуру файлов строить (может что новомодное есть)
Мимо мобайл дев
Аноним 12/05/24 Вск 07:57:57 3152508 122
>>3152494
В случае игр может иметь смысл. Я не игродел, и больших приложений не делал, но предполагаю что можно делить модули так: логин/юзердата/сессия, оффлайн фичи, онлайн фичи, донат/магазин/оплата. На счет структуры скажу что андроид студио сама тебе сделает дефолтную структуру. В каталоге res (ресурсы) уже есть места куда добавить строковые константы (полезно для локализации), изображения, анимации и шрифты. Еще есть папка ассетов, которая не создается по дефолту в проекте.
Аноним 12/05/24 Вск 08:10:44 3152511 123
>>3152494
Хотел спросить пару вещей у мобайл дева:
1) Как из эмулятора АС стучаться в локалку? Не получаю ответ от сервера хоста 10.0.2.2 (апи 34, таргет 24, все сетевые штуки разрешил).
2) Как внутри приложения запускать http сервер чтобы с него брать данные (для теста пока нет нормального сервера)?
3) Почему при скачивании файла обычно возращается его id, по которому мы обращаемся к нему, а вызов напрямую в доках стараются лишний раз не упоминать даже?
Аноним 12/05/24 Вск 09:29:05 3152544 124
Аноним 12/05/24 Вск 09:49:12 3152559 125
>>3152544
А вообще, я предполагаю, что в андройде сделано для какой-то йоба абстракции и чтобы при смене локации файлов, апи не сломалось.
Ну и как отмечал выше - безопасность тоже.

Андройд слишком сильно завязан на всяких избыточных абстракциях и сильная фрагментация была на ранних этапах
Аноним 12/05/24 Вск 09:53:10 3152564 126
17146380777853.jpg 426Кб, 1920x1080
1920x1080
>>3152508
Ну пока идея добавить и сделать слабые связи между ui и service слоем, чтобы можно было быстро фиксить баги, но думаю, что это тупо, не?

Пикча добавлена просто так, не бейте
Аноним 12/05/24 Вск 18:28:16 3153115 127
image.png 84Кб, 800x565
800x565
>>3152564
Посмотри, здесь описывается архитектура что ты ищешь. Активити+Сервис. В схеме много андроидовских абстракций вызывающих друг друга, и эта лапша из взаимных коллбэков отлично работает на андроиде. Как я понял, сервисы придумали для того чтобы даже после закрытия или краша активити апдейт бд и хитровыебанные запросы на сервер не прерывались неожиданно. Не знаю, три в ряд или мобильную дрочильню с анальной слежкой за сессиями китов ты проектируешь. Очень разные проекты.
https://www.pvsm.ru/android-development/8030
Аноним 12/05/24 Вск 18:36:18 3153129 128
>>3153115
О, спасибо, анончик, пойду читать сейчас.
Хочу сделать 2d гача дрочильню с онлайн чатом и боями, вот такие вот дела... Надеюсь продать этот проект кабан-кабанычу и уйти в закат
Аноним 12/05/24 Вск 19:06:42 3153183 129
Есть ли смысл переписать REST сервер 200 строк с питона на котлин? Еще есть вариант на счет го, но синтаксис выглядит как говно.
Аноним 12/05/24 Вск 19:45:52 3153271 130
photo2023-06-16[...].jpg 119Кб, 538x800
538x800
>>3153129
У меня есть мечта взять старое приложение (chan burauza, для форчана), и скопипастить функционал для ридонли в компоузе. Приложуха старая под старый телефон, и она на новье скорее всего откажется работать.
Аноним 12/05/24 Вск 20:53:27 3153392 131
>>3153271
Если хочешь помощи, то конечно помогу
Связь через почту/дискорд?
Аноним 12/05/24 Вск 20:57:04 3153410 132
>>3153183
Если хочешь в будущем увеличить сервер, то да.
Ktor/javalin идеально подойдут
Аноним 12/05/24 Вск 23:53:17 3153604 133
>>3153183
Странный вопрос - зависит от того чем ты руководствуешься.
Вслепую я бы тоже рекомендовал ктор/джавалин
Аноним 21/05/24 Втр 16:04:14 3164234 134
>>3153410
>>3153604
Чет-т взглянул на примеры рест апи в котлине и го. В основном их сетевые фреймворки это какая-то утомительная хуйня как паскале, где синтаксического сахара около нуля, и надо всякую типовую ебалу бойлерплейты и роуты прописывать каждый раз. Ненавижу большие бойлерплейты в типовых задачах. На питоне сетевой стек уже тянет на 21 век, уже освоил нормальные декораторы, да еще и разными фреймворками позволяет обмазаться.
Аноним 21/05/24 Втр 17:29:31 3164343 135
1598818341705.jpg 347Кб, 1024x626
1024x626
В общем, опять выхожу на связь. Еще на той неделе заборол кэширование по http на помпоуз. Так как на работе никто настраивать https не будет, и новомодный coil работает как-то изотерично и без http, решил вопрос максимально примитивно. Инет легко взлетел когда я заменил помойный эмулятор android studio на физическое устройство и сделал проброс на локалхост компа.

С сетью работа идет через httpok3, и битмап из body сохраняется в кэш. Подводный в том что в случае когда body NULL (нет инета, неверный адрес), запрос крашит приложение. В хеллоуворлдах не пишут как обработать ошибку, но в гите есть нужная строка (достаточно закрыть body в конце запроса). Писатели библиотеки для языка, главная фишка которого это элегантная обработка NULL, насрали себе в шаровары при получении NULL в body.

В общем, приходит JSON со строковыми данными и ссылками, после чего делаются запросы в корутинах чтобы загрузить пикчи в кэш. Затем sleep 300ms чтобы данные точно успели сохраниться. И рисуем пикчи в ленивом списке. Когда файла нет, ставится заглушка. Обрывы связи на 3 секунды (переход между роутерами) бывают часто (из-за чего и началась эпопея с кэшированием). Как делать повторное скачивание, еще не продумал.

Понемногу освоил события физических клавиш (стрелки, сканер, назначаемые ф1-ф4, прочее). Не очень весело дела с обработкой событий клавиш в компоуз: 1 в 1 как в дельфи, будто тщательно списывали. Вешаются только на элементы гуи, и только когда элементы в фокусе. Да еще и зависимости очень фрагментированы. Чтобы обработать события нажатий, надо почти 10 импортов сделать. Не очень круто что стрелки работают по умолчанию, и есть ровно 1 глобальная обработчик, это backspace. Хочется сделать глобальный обработчик по клавишам, и переназначить стрелки, но на компоузе решили не заморачиваться. Придется забыть о планах и ограничиться малым.
Аноним 21/05/24 Втр 20:22:54 3164534 136
>>3164234
Не понял, а в питоне роуты ты прописал 1 раз и на всю жизнь?
Аноним 21/05/24 Втр 20:29:41 3164554 137
>>3164343
>Затем sleep 300ms чтобы данные точно успели сохраниться
Зачем при такой охуенной синхранизации что-то оптимизировать было? Что значит "данные точно успели сохраниться"?
Аноним 21/05/24 Втр 20:44:42 3164592 138
>>3144895
Это какой-то троллинг?
Сделать котлин презентабельнее Аноним 21/05/24 Втр 20:50:34 3164599 139
186165540-289af[...].png 11Кб, 396x295
396x295
Была проблема парни что в линуксе не было иконки котлина для .kt, а у джавы была, то есть котлин отображался как текстовый документ, не солидно!!!
Я порешал вопрос, в убунту добавили, в поп! ос добавили, в линукс минт добавили, единственное где не удалось мне, это чтобы добавили в Ubuntu Kylin (китайская убунта), потому что там перекати поле в гите. Везде где надо в популярных добавили, моя миссия с иконкой котлина закончена. Самое странное почему это должен был делать именно я? Всем котлинистам было настолько пофиг?
Аноним 21/05/24 Втр 20:58:01 3164607 140
>>3164599
Только правда говоря надо ждать пока выйдет минт и поп основанные на 24.04 убунте
Аноним 21/05/24 Втр 21:34:25 3164638 141
Kotlin in Action, Second Edition есть у кого?
KOTLIN 2.0.0 RELEASE Аноним 21/05/24 Втр 23:05:39 3164775 142
Аноним 22/05/24 Срд 03:39:27 3164905 143
>>3164554
Взял много для запаса. Буду понемногу уменьшать во время теста в проде. Надо замерять время обработки запросов при высокой нагрузке, а это еще в будущем
Аноним 22/05/24 Срд 12:20:04 3165195 144
>>3164905
Ну вот ты сам и ввел наибольшую проблему, которую тебе предстоит оптимизировать. Даже две в одной - тут тебе и гонка потоков и тормоза уровня лишнего запроса в базу.
Аноним 22/05/24 Срд 12:26:10 3165207 145
>>3164775
Как новый компилятор компилировать стал? Шустрее?
Аноним 22/05/24 Срд 12:58:02 3165241 146
>>3149477
>At first I was like
>инфоцыгане, гугол, антипаттерны, мусор, архитектура, тонкий клиент, неэффективно!
>>3164343
>but then
>коллеги, жду в слипе 300 мс, авось данные придут
чет прямо с подливой кекнул с этого архитектора
Аноним 22/05/24 Срд 13:39:13 3165282 147
>>3165207
Не тестил скорость, только фичи некоторые.

Is null удобно, но пока не работает в идее т.к. там синтаксис максимум 1.9

Кроссплатформенный код тоже удобно сделан теперь, но компоуз пока что не работает с 2.0.0 котлином, ждем ksp 2 и compose 2
Аноним 22/05/24 Срд 14:18:39 3165350 148
>>3165241
В проде используются такие костыли и антипатерны (по менению гугла), что ты разочаруешься в человечестве. Лучше предложи свое решение
Аноним 22/05/24 Срд 14:22:26 3165357 149
Аноним 22/05/24 Срд 14:36:12 3165375 150
>>3165357
>ColdStorage
Спасибо. Описание заинтриговало. Прям та идея которую я описывал. Впервый раз вообще вижу упоминание проекта, да и в гугле около нуля информации кроме гитхаба. Видимо как обычно шиз одиночка написал, возможно даже гениальный шиз. Последний коммит был в 2020, когда компоуз еще у гугла в яйцах плескался, но надеюсь к современому котлину с компоузом получится подключить.
Аноним 22/05/24 Срд 14:58:25 3165413 151
Нашел фреймворк рест котлин похожий на типичный рест фреймворк на питоне. Quarkus. Вид похож на человеческий:

@Path("/application-info")
@Produces(MediaType.APPLICATION_JSON)
@Consumes(MediaType.APPLICATION_JSON)
class ApplicationInfoResource(
@Inject private val applicationInfoService: ApplicationInfoService
) {

@GET
fun get(@QueryParam("request-to") requestTo: String?): Response =
Response.ok(applicationInfoService.get(requestTo)).build()

@GET
@Path("/logo")
@Produces("image/png")
fun logo(): Response = Response.ok(applicationInfoService.getLogo()).build()
}

Как в питоне, только питон уже по дефолту в дистрах, и окруженение за минуту делается, пока котлин с градлом надо настраивать, а потом собирать в uber jar. В общем нельзя в натив котлин собрать и запустить в kts, так что смысла в этом фреймворке мало.
Аноним 22/05/24 Срд 16:52:47 3165578 152
>>3165413
Если ты про автоматом установку зависимостей, то многие адекватные фреймворки предоставляют визард (или ультимейт идея)

Кстати, выглядит как будто spring
Аноним 22/05/24 Срд 22:49:29 3165949 153
javalin.PNG 24Кб, 572x238
572x238
>>3165413
Так это стандартная штука, даже спринг такой же. По-моему пик больше похож на питон, хотя у меня на питоне опыт небольшой

>В общем нельзя в натив котлин собрать и запустить в kts, так что смысла в этом фреймворке мало
Ничего не понял, что ты пытаешься сделать?

>>3165578
>Кстати, выглядит как будто spring
Естественно, они оба так выглядят
Аноним 22/05/24 Срд 22:52:04 3165953 154
>>3165375
Всегда пожалуйста!
Аноним 23/05/24 Чтв 16:39:31 3166819 155
17006650954430.png 216Кб, 604x604
604x604
>>3165949
Красиво. Так я не понял, жавалин в первую очередь для явы делали или для котлина? Почему в гибабе несколько языков? Я, вот, яву только читать умею, и если подавляющее большинство ответов в мануалах и стаковерфлоу будет на яве, то не осилю.

>>3165953
ColdStorage в двух местах очень близок к тому что я пишу, только на других зависимостях (более актуальных по моему мнению, ибо автор писал код в 2020), так что буду оттуда активно взаимствовать, посматривая в исходники. Ну и там автор заболел класической питоньей болезнью - клать класс в класс чтобы вызвать объект из объекта, и складывать в другой объект, при том что кода меньше 1000 строк.

>>3165578
Не, я о том что питон почти всегда по дефолту предустаовлен. Достаточно запакетировать сервер с зависимостями, и в таком виде распостранять по локалке. Клиент буквально одной командой поставит не вспотев. На го еще пизже, что даже в голый контейнер можно поставить без рантайми (правда язык ГОвно).
Аноним 23/05/24 Чтв 20:34:17 3167047 156
>>3166819
>Красиво. Так я не понял, жавалин в первую очередь для явы делали или для котлина? Почему в гибабе несколько языков? Я, вот, яву только читать умею, и если подавляющее большинство ответов в мануалах и стаковерфлоу будет на яве, то не осилю.
Вообще для Явы , закос под котлиновский ктор. А какое это значение имеет?
Аноним 23/05/24 Чтв 20:40:35 3167053 157
>>3166819
>Не, я о том что питон почти всегда по дефолту предустаовлен.
На линуксе разве что, на Винде нет. В любом случае ты и джаву одной командой поставить можешь, через вингет или аптгет
Аноним 24/05/24 Птн 03:24:07 3167330 158
>>3167047
Ну технически я начинаю теряться когда импортирую ява зависимость и понимаю что не могу сходу сразу сказать, нужно ли создавать nullable переменную/объек или нет. Если бы либа была полностью в котлине, так мы сразу а гайдах написали что тут используем ?. там !!. Соотв буду попадать на null pointer exception по невнимательности.
Аноним 25/05/24 Суб 16:12:12 3168812 159
>>3164775
Ничего особенно интересного нет, увы. Просто улучшили то, что есть.
Хотя я хз что нового можно добавить для котлина. Я бы хотел какой-нибудь синтаксис прикольный, который ещё больше позволит сокращать код. Мб функциональщины побольше
Аноним 26/05/24 Вск 05:13:11 3169329 160
>>3105288 (OP)
Немного новостей про котлин:

Вышел котлин 2.0 и теперь улучшена поддержка Java кода, особенно Null.

Теперь try-catch адекватно редактирует на Null и если раньше внутри try приходилось вызывать var?.let {}, даже если catch(e: NPE), то теперь не надо!
Можно говнокодить теперь так:
var a : String? = null ; try { println(a.lenght) } catch(e: NPE) {}

Котлин 2 улучшил возможность смарткаста объектов Родитель -> Ребёнок1 и Родитель -> Ребёнок2 прямо на лету. (читаем подробнее здесь https://kotlinlang.org/docs/whatsnew20.html#smart-cast-improvements)

Room, Jetpack ViewModel, Jetpack navigation (вроде он тоже) становиться мультиплатформенным решением. Теперь проще переводить с android в kmp свои приложения!

Ktor 2.3.11 стал последним ktor 2 релизом, уже есть первые беты ktor 3.

Вышел KSP 2 для поддержки K2 компилятора и также Jetpack compiler. (полный список тут https://kotlinlang.org/docs/whatsnew20.html#compiler-plugins-support)

ТАКЖЕ Jetbrains представили свою языковую модель для написания кода. Пока-что она работает только с kotlin кодом, но результаты неплохо так удивляют. По их словам, GPT4 может выдавать только 40% работающего kotlin кода, а их модель под 60-70%. Вы можете протестировать её бесплатно, она является open source и находится на huggingface.
Аноним 26/05/24 Вск 05:15:03 3169331 161
Аноним 26/05/24 Вск 09:07:44 3169372 162
image.png 330Кб, 1276x455
1276x455
Гугл показали новую навигацию. В этот раз выглядит как говно, ну то-есть как обычно. Когда уже будет что-то адекватное в виде:

navigator = NavHost(start = "Start")

@Navigation(prev = "", next = "Screen_2")
@Composable
fun Start() {
//
onClick { navigator.Next() }
}

@Navigation(prev = "Start", next = "")
@Composable
fun Screen_2() {
//
onClick{ navigator.Prev() }
}
Аноним 26/05/24 Вск 10:17:07 3169423 163
>>3169372
а что поменялось? Я чёт нифига не понял
Аноним 26/05/24 Вск 12:06:56 3169520 164
Аноним 26/05/24 Вск 15:23:43 3169889 165
>>3169520
Да не за что.
Думаю делать такую выжимку, когда выходит несколько интересных обновлений и рассказывать общее. Может по ктору и exposed буду пилить т.к. очень интересный стек.
Аноним 26/05/24 Вск 18:29:14 3170101 166
>>3169423
Вроде навигацию, лайфсайкл и ресурсы доступны на большем числе платформ (меньше платформозависимых костылей). Правда такое чувство на данный момент на мультиплатформе пишут 3,5 энтузиаста в надежде на скорую декостылизацию. Житбрейнс и Гугл делают ставку на то что те апи что есть на андроид будут работать везде, и им похуй на рефакторинг на данный момент. Целятся в вебе и айос взлететь залететь, но это пока только на слайдах. В чате в телеге почти все мультиплатформеры пишут в связке андроид+пк, и то часто обмениваются костылями для пк.
Аноним 26/05/24 Вск 18:33:22 3170107 167
>>3169889
>Пиши, а то такие треды тонут.
Аноним 26/05/24 Вск 18:42:28 3170113 168
>>3170101
Я не понимаю этот дрочь к мультиплатформе. Это преподносится как киллерфича, но на деле просто группировка кода и все же?

Куда там все силы идут, на что? Полгода назад нужен был десктоп, вспомнил про шум мультикомпоза, думал наверну, а на деле ни доков, ни примеров, понюхал бибу и ушел

Или там финансирование жестко свернули или кто-то жестко стал пилить бабло. Даже вот этот котлин 2.0, стыдно показывать, ноль реальных технологий, сахара и либ.
Аноним 26/05/24 Вск 18:43:03 3170114 169
image.png 71Кб, 877x398
877x398
>>3169520
Ну вы там держитесь))
Аноним 26/05/24 Вск 18:44:27 3170115 170
>>3170113
Там даже сравнение типа есть, мол флаттер против мультиплатформы. Я так понимаю это рабочий кросс флатер против пустого котлин-нейтив? Или что? Может кто объяснит, реально не в теме.
Аноним 26/05/24 Вск 18:45:22 3170117 171
А можно ли как-то в init-блоке получить поля класса в том же порядке, в котором они вызывались в конструкторе? Звучит как шиза, но ине нужно чтобы data class хранил в себе порядок переданных полей.

Чтобы для объектов Person(name="John", age="20", citizenship="US") и Person(age="22", citizenship="CA", name="Michael") можно было бы написать функцию которая бы возвращала ["John", "20", "US"] в первом случае и ["22", "CA", "Michael"] во втором, как пример?
Аноним 26/05/24 Вск 18:53:00 3170120 172
>>3170117
Напиши такую функцию, в твоем желаемом порядке (каждый раз разный порядок - не имеет смысла, нужен какой-то твой стандарт).
Аноним 26/05/24 Вск 19:21:37 3170151 173
>>3170113
Вопрос мультиплатформы у Котлина это вопрос жизни и смерти: либо сосать+лежать под сапогом у гугла с явой на андроиде, изредка поглядывая на мертвый сектор дестктопа (расклад на сегодняшний день), либо наобещать золотые горы вебмакакам и нищукам без макбука (айос разработка это обязательно мак), и пустить корни везде.

>>3170115
Посмотрел эти дебаты флаттера с котлином. В общем флаттер это огромные всратые портянки кода, благодаря которым можно делать сложнейшие анимации и все что угодно на любой платформе при предсказуемом результате. Котлин локаничен и прост для вката, но красивых анимаций с виджетами и образцовой мультиплатформеностью от него ждать рано. То-есть флаттер это стабильное могучее кровавое легаси, которое могет в любое ебанутое "сделайте так чтобы красиво было", и писать на нем это наверное полный пиздец, а котлин уже сейчас используется для не особо сложных приложений, и только разрастается до размеров флаттера.
Аноним 26/05/24 Вск 19:24:30 3170159 174
>>3170101
Ну, будем надеется!

Кстати, Movavi тоже уже перешла к мультиплатформе
Аноним 26/05/24 Вск 19:32:43 3170168 175
>>3170113
В мультиплатформе используется обычный компоуз, но специфичная документация находится здесь. Кстати, не вся т.к. большая часть API строится на swing/awt и тебе требуется писать swing объекты и связывать с компоузом, если не найдешь специфическую фигню под десктоп.
https://github.com/JetBrains/compose-multiplatform/blob/master/tutorials/README.md (вообще не пойму, почему они туда запихали...)

Кстати, а давно foreach разный в котлине и джаве? Сейчас попробовал пройтись foreach по мапе и вышло, что

map.forEach { key, value -> // код } это джавовая версия, а map.forEach { (key, value) -> // код} это котлиновская версия
Аноним 26/05/24 Вск 22:48:42 3170280 176
>>3170120
Я тут использовал некий класс Person, но вообще идея была в том чтобы хранить URL-параметры для API где их порядок важен. Чтобы в одном классе инкапсулировать всю тайпчеки и преобразования и не таскать мапу из функции в функции. Но альтернатив, видимо, нет.
Аноним 27/05/24 Пнд 00:28:28 3170321 177
Есть ли смысл учить котлин если не знаешь Java ?
Аноним 27/05/24 Пнд 03:54:26 3170369 178
>>3170321
Тебе по факту джаву знать на уровне синтаксиса надо, а это 6 часовой курс на ютубе от условного индуса.

А в целом да, смысл есть, если для себя учишь. Большинство крупных либ по типу gui, ORM, backend web уже есть на чистом котлине (compose/korge, exposed/ktorm/sqldelight, ktor/javalin)
Если язык понравится и захочешь больше углубиться, то джава необходима т.к. слишком много документации написано на чистой джаве, без упоминания котлина. Хотя данный код может запускаться (и тебе придется это делать) и на котлине
Помогите разобраться Аноним 27/05/24 Пнд 05:55:00 3170380 179
image.png 85Кб, 518x479
518x479
Я не могу добиться нормального объяснения от чатжпт потому что у него тупо нет данных чтобы объяснить такую тему, он начинает нести пургу.

Почему говорят что в котлине нет подстановочных знаков? Есть же вариативность. Это потому что это как-то концептуально другое или это надо воспринимать буквально что нет знака "?", поэтому wildcard собственно нет.
Аноним 27/05/24 Пнд 12:37:06 3170708 180
>>3170321
Если у тебя вкат с нуля, то стоит, просто потому что там база си-синтаксиса. А так не нужно, большую часть времени там API либ дергается, ровно как и в котлине и в других языках.
Аноним 27/05/24 Пнд 15:37:26 3170960 181
>>3170380
А разве это не одно и то же?

Погуглил, посмотрел, вроде одно и то же
Аноним 27/05/24 Пнд 16:04:48 3170982 182
>>3170321
Стоит в первую очередь учить котлин. А жабакод достаточно подтянуть до уровня "умею читать". Причины:
- чистая ява вызывает непреодолимую тягу писать абстрактными классами, а так же сеттерами и геттерами
- на яве много годных статей, которые не всегда есть в котлине
- в доступе тонны примеров на яве, который можно копипастить в андроид студио, и он будет сам конвертироваться в котлиновский
- знание жабы сейчас нужно только чтобы пройти интервью, а на работе уже будет переписывание на котлин либо поддержка жабы
- на андроид есть библиотеки на яве, которые не портированы на котлин, но достаточно лишь создать экземпляр класса явы не вдаваясь в детали
Аноним 27/05/24 Пнд 17:04:08 3171046 183
>>3170982
>в доступе тонны примеров на яве,
Ох уж эти легаси примеры, вкатывался давно в джаву, по рекомендациям поиска начал вкатываться в стек EE. Оказалось он не нужен, а если юзается то только контейнер сервлетов, да и это уже моветон. Такие открытие ненужны вообще.

Зная котлин ты будешь знать джаву, если прям надо будет читать сорцы, подтянешь походу.

Это начинать с нуля не очень, котлин специфичен по синтаксису, все другое будет непривычно. Как и котлин после джавы.
Аноним 28/05/24 Втр 00:45:19 3171457 184
17133441385991.mp4 8110Кб, 640x360, 00:06:35
640x360
>>3170960
Если это действительно одно и тоже, то документацию делал какой-то недалекий красноглазик.
Интересные библиотекифреймворкиETC Аноним 28/05/24 Втр 16:59:32 3172064 185
Решил бампнуть тред интересными библиотеками для Kotlin (пока-что только KMP / UI решения. В будущем будет всё больше и шире общий спектр).

KorGE ( https://korge.org/ ) мультиплатформенный 2D / 3D игровой движок написанный на kotlin для kotlin. Есть собственные библиотеки-дополнения для работы с временем/ DI / прочее.

Realm ( https://github.com/realm/realm-kotlin ) новая ORM библиотека для работы с БД от создателей MongoDB. Есть официальные SDK для android / KMP / swift / .NET

Kottage ( https://github.com/irgaly/kottage ) Key-Value хранилище для сохранения данных. Есть поддержка KMP проектов. Нужна для сохранения настроек пользователя.

Coil ( https://github.com/coil-kt/coil ) библиотека для отображения и автокеширования картинок. Пока-что android-only, но уже готовиться версия 3, которая будет поддерживать KMP.

PreCompose ( https://github.com/Tlaster/PreCompose ) KMP библиотека для навигации между экранами. Есть собственная реализация ViewModel прямо как в android и поддержка Koin.
Аноним 28/05/24 Втр 17:40:45 3172111 186
>>3171046
>Ох уж эти легаси примеры
Ты удивишься, но примеры из явы 1.8 до сих пор везде работают, а с тех пор не поменялось примерно нихуя. Буквально копипащу рандомный ответ из стаковерфлоу и жду пока ИДЕ соберет код в котлин. Работает в 90% случаев кроме тех 10% когда надо правильно nullable типы переопределить. Жаба - рай для легаси кодера. Обратка даже пизже чем у дельфи, хотя это тот еще некроязык (там придумали диалекты чтобы ухудшить совместимость кода, чем как обычно навалили себе в штаны в стиле дельфи).
Аноним 28/05/24 Втр 18:01:19 3172138 187
>>3172064
>Coil
Насосался с ним, и больше не хочу его трогать даже палкой. Работает как черная коробка, которую почти невозможно отдебажить или проверить на ошибки без прыжков над головой. Не работает в эмуляторе потому что так захотели разрабы. Даже повторного запроса при неудачном подключении и нормального stack trace нет, какой уж там production-ready. Вечная бета. Я просто делаю запрос okhttp3, сохраняю через context и показываю обычным Image, что полностью исключает обосрамсы и позволяет обрабтать любую внештатную ситуацию. Используй такой же костылек, и вернешься к койлу лет через 5-10 когда его допилят.
>PreCompose
Скоро библиотеки с навигацией будут выходить каждый месяц. Опенпосусники обезумели в соревновании кто больше создаст одинаково кривых навигаторов по примеру гугла. Даже я свой навигатор написал (не либа, а стейт + класс навигатор) для внутренних нужд.
Аноним 28/05/24 Втр 19:46:13 3172252 188
>>3172138
>precompose

Да, есть такое, ведь гуглы педики и сразу после выхода беты compose multiplatform не удосужились сделать хотя бы альфу jetpack navigate. Только спустя 4 года всё же начали пилить. Как и typesafe navigation
Аноним 29/05/24 Срд 16:34:10 3173124 189
Максимально тупой вопрос, но все же надо ответ.

При передаче метода, может ли быть вызван метод N раз? Где N - сколько раз был передан вызов метода.

У меня есть приложение, где из API слоя метод передается в репозиторий метод и потом уже в usecase, который передает контрллеру. Получается примерно так:

Api
fun getById(id)

Repository
fun getById(id) { return api.getById(id) }

Usecase
fun invoke(id) { return repository.getById(id) }

Controller
fun getUserInfoById(id) { val info = usecase.getById(id) }


В логах ktor насрал 4-мя вызавами API с разными воркерами. Версия ктора 2.3.11, движок cio


По хорошему так не должно быть и там должен бфть единый запрос, но походу либо неправильно сделал и надо фиксить, либо просто сломан cio как всегда
Аноним 29/05/24 Срд 17:44:43 3173221 190
>>3173124
Я не понимаю просто, это прикол от разрабов? Я провёл мини тест системы и понял, что запросов не чётко 4 или 3, а вариативно от 3 до 8 где-то. Какого... ну не может же быть это из-за того, что я криво объект сериализации написал и он не работает? Хммм
Аноним 29/05/24 Срд 18:29:55 3173294 191
>>3173221
Дебагер запусти и по шагу смотри где у тебя там что много дергается и как.
Я не совсем понял что у тебя за беда.
Аноним 29/05/24 Срд 18:32:15 3173299 192
Аноним 29/05/24 Срд 19:10:19 3173382 193
>>3173294
Да уже посмотрел. Оказывается, что у меня объект не успевал сериализоваться и тут же шел за "новой" порцией. Зачем? Да хз вообще. Сейчас просто удалил весь код, буду с нуля переписывать. Эх...

Зато возникла другая проблема: kotlinx.serialization умеет в парсинг parent-child нормально? Просто один мудак сделал апи на уровне
{
"status": { "string": "завершено", "code": 2 }
}
И теперь для сериализации приходится создавать доп. Объект или же писать мапу.
Прим. для сериализации этой же параши
data class Test(
val status: Status
)
data class Status(
val string: String
)
Да и бог бы с ним, если бы такие были объекты, так они еще вложены друг в друга... Знаю про ignoreUnknownKeys, но все равно проблему не решает. Помогите, анончики!
Аноним 29/05/24 Срд 19:13:52 3173394 194
>>3173382
А, плохо спросил, я имел в виду "сериализация вложенного объекта без создания parent объекта. Чтоб
{
"list": {
"episode": {}
}
}
Было вот так в коде
@SerialName("list.episode")
data class Episode()

Ну как пример
Аноним 29/05/24 Срд 23:26:16 3173682 195
Аноним 30/05/24 Чтв 00:01:56 3173709 196
javalinhotspots.PNG 62Кб, 1134x355
1134x355
Как так котляны? Перфтестнул джавалин и в результате четверть процессорного времени ушла про проверку нуллов
оправдывайтесь
Аноним 30/05/24 Чтв 07:42:49 3173837 197
>>3173709
Ну, есть такое, да. Поделать ничего нельзя, только если gc менять или еще как то шаманить.
Аноним 30/05/24 Чтв 18:33:08 3174613 198
>>3173709
JVM/CLR будет делать ровно тоже самое, если бы не было проверок то падало рандомно с сигфолтами. Вроде как jit может выпиливать это.
Аноним 30/05/24 Чтв 19:06:31 3174654 199
>>3174613
Так в том то и дело что это джвм и есть. И без котла она так не делает
Аноним 30/05/24 Чтв 19:39:59 3174674 200
>>3174654
Откуда тогда VM решает бросить НПЕ когда получает аналл? То есть, там тоже есть проверки. Без проверок сигфолт будет.
Аноним 30/05/24 Чтв 20:19:48 3174708 201
>>3174674
Вроде там джвм подписывается на событие разыменования нулевого указателя, типа page fault exception.
У всех остальных указателей этой проверки нет
Так что это далеко не одно и то же
Аноним 30/05/24 Чтв 20:39:18 3174721 202
>>3174708
А какая разница? Ну типа так и так есть где-то под капотом действие, которое определяет что "ты" есть на самом деле (нулл или не нулл).

Та же беда с проверкой индексов массива, вроде простая вещь, поставь ты эту проверку и лишишь просто пласта проблем (одни из популярных уязвимостей), но в реале эта хрень миллионами и миллиардами раз может дергаться (как у тебя), что делает раст с нулевой абстракцией просто наябом, если сравнивать с си.

Я не удивлюсь что проверку делает котлин и где-то под копотом еще VM повторяет это.
Аноним 30/05/24 Чтв 20:44:18 3174724 203
>>3174721
Хотя может я и не прав, просто это фундаментальная проблема. Я не знаю можно ли это сделать бесплатно на системном уровне и почему тогда котлин не решает эту проблему как решает VM
Аноним 30/05/24 Чтв 20:46:21 3174725 204
>>3174721
>А какая разница?
По перформансу как видишь огромная. Что у тебя проц железом обрабатывает, а что джава функция с ветвлением постоянно вызывается
Аноним 30/05/24 Чтв 21:09:34 3174745 205
>>3174725
Я хз как там сделано, я к тому, что там под капотом есть оверхед, иначе давно бы стерлась грань между управляемыми и не управляемыми языками, просто ты этот оверхед не видишь в статистике.

А может там правда работает через событие системы, но это может стоит настолько дорого, что решили проще if подергать, чем давать генерировать эту ситуацию.

Не факт даже, что нуллабилити можно сделать проще, даже со своей VM.
Аноним 31/05/24 Птн 10:31:20 3175181 206
>>3169329
Забыл дополнить:

Dataarg - спасение перегрузки.
Добавили новое ключевое слово - dataarg. Применяется к классам/аргументам и синтаксис такой:
> dataarg class MyClass (аргументы)
> fun say(dataarg myArgs: MyClass)
Нужен для работы с повторяющимися аргументами. Как пример, есть функция LazyList. У нее 2 перегрузки, которые отличаются тем, что у первой content: RowScope.() -> Unit, а у другой ColumnScope.() -> Unit.
В kotlin 1 нам надо было либо делать дата класс с кучей аргументов и передавать как аргумент в функции или же копировать/вставить одни и те же аргументы из одной перегрузки в другую. Теперь можно сделать так, как описал выше и использовать такие функции как обычные перегруженные функции.

Private mutable/Public immutable field.
Если кто то программирует под android, то точно сталкивался с таким кодом:
private val _uiState = MutableStateFlow(MyUiState())
val uiState = _uiState.asStateFlow()
Теперь этот бойлерплейт можно удалять! Добавили удобный способ сократить этот код и вот как:
val uiState: StateFlow<MyUiState>
field = MutableStateFlow(MyUiState())
field по умолчанию является приватным полем, а uiState публичным.

Типы ошибок.
Теперь тип ошибки и тип объекта можно кастовать вместе. Пример:
private error object NotFoundError

// тут функция по поиску объекта в списке, но она сама нам не так важна
fun searchObject(): T {
val foundObject: T | NotFoundError = NotFoundError
// идет поиск объекта в списке и если есть, возыращаем, иначе ошибка
if (foundObject is NotFoundObject) { // кидаем ошибку }
else { return foundObject }
}
Сам NotFoundObject является объектом ошибки, но не самой ошибкой. Нельзя прописать throw NotFoundError, но можно кастовать его как второй возможный тип переменной, вместо T?

Мелочь, а приятно
Тройные строки (начинаются и заканчиваются тремя кавычками) улучшили. Теперь они тоже имеют вставку переменных прямо в строку.
Пример:
Kt2
$$"""
Yaml: $version
Web: $domain
"""
K1 (тот же результат)
$Yaml: ${version}\nWeb: $domain"
Аноним 31/05/24 Птн 13:40:49 3175502 207
>>3173709
Забавно что альтернатив нету.

Го это вообще просто звездос, вроде норм асинхронный рантайм, но столько подводных камней, даже на элементарных слайсях есть места отстрела ног, как будто студенты язык делали. Там реально есть книга 100 ошибок го.

С шарпами мутная херня, вроде опенсорс и язык неплох, и тут же закрытый отладчик онли под вижлы. Какие-то страдания у линуксоидов. В общем в жопу эти корпаративные языки и игру мягких в EEE.

Раст вроде по началу норм, а потом такая шляпа начинается, что ну его нахер, проще на сях (или новом зиге) писать чем в эти ограничения и лайвтаймы дрочиться. Он просто неудобный, ни какого чуда не случиться просто вката, будет только медленная разработка.

Динамикодресня идет лесом, как только код становится больше 1000 строк, начинается страдания, да всякие jsdoc и хинты могут помочь, но проще взять статик язык, там хоть в производительности выигрышь

Жаба после котлина противна, ну вот я писал и понял что мне бы тут просто не помешал сейчас этот сахар из котлина и везде думаешь как хорошо было бы тут котлин итд, проще котлин взять.
Аноним 31/05/24 Птн 16:37:54 3175753 208
>>3175502
О, мощный коупинг пошёл. Чего же тебе в джаббе не хватает, что ты готов к таким падениям производительности?
Аноним 31/05/24 Птн 17:17:55 3175784 209
>>3175753
Лично мне в джаве не нравится синтаксис (слегка специфичный, скажем так), что лямбды вне функции нельзя вынести, нет нулл сафети, нет лямбд let, apply, also, нет компоуза, нет удобного дсл

Это то, что я за 10 минут вспомнил

Но это не значит, что я вообще не люблю джаву. Я на ней пишу и мне нормально впринципе, просто слегка неудобно. Всё таки котлин сделал своё дело и 98% времени пишу на котлине
Мимо
Аноним 31/05/24 Птн 17:22:59 3175792 210
>>3173124
>>3173382
>>3173394
Обвешай реквест самописными коллбэками и не выполняй вызов повторно пока не получил нормальный ответ. Ожидай до таймаута, либо обвешай все слипами в when до победного, либо крути while с прерыванием до достижения нужного значения каунта. Первый раз реквесты пишешь что-ли? Твой незаурядный план без костылинга не исполнишь.
Аноним 31/05/24 Птн 17:48:43 3175805 211
>>3175784
>что лямбды вне функции нельзя вынести
можно же, в поля например записать
Аноним 31/05/24 Птн 18:02:15 3175814 212
>>3175753
Как можно зарекаться о производительности, когда вы пишите на срыге? Взяв джаву и срыг, ты буквально поделил где-то на 10-15. да мой сладких, все уже знают
о techempower
Аноним 31/05/24 Птн 18:17:48 3175825 213
2024-04-04 1834[...].png 902Кб, 1661x616
1661x616
>>3175502
>Го это вообще просто звездос
Для меня главным красным флагом в этом языке является то как на хабре пишут о нем в статьях. В стиле сначало было очень неудобно от горячего баттплага, а потом гомосексуализм стал приносить удовольствие, даже не знаю как описать почему полюбил гомогейский синтаксис, в общем стал ценить говно.
Аноним 31/05/24 Птн 19:29:18 3175922 214
>>3175814
Ну вот я пишу на джавалине, проблемс?
Аноним 31/05/24 Птн 19:30:29 3175924 215
>>3175805
не, я про то, что условный Runnable надо писать так
new Thread(() -> { // code } ), когда как на котлине это
Thread { // code } и никаких скобочек не надо
Аноним 31/05/24 Птн 19:38:39 3175928 216
>>3175792
да я вроде всё сделал, теперь не срабатывает ложных вызовов. Я просто сильно удивился, что ктор шлёт запросы БЕСКОНЕЧНОЕ КОЛИЧЕСТВО, пока не сможет получить/сериализовать объект.

Ну как избавился... я надеюсь, что теперь не будет такого. Всё таки ктор это та еще чёрная магия, надо тестить его работу более подробно. В данный момент лень, потом займусь.
Аноним 06/06/24 Чтв 15:20:18 3182833 217
Ktor.png 745Кб, 1190x925
1190x925
Аноним 06/06/24 Чтв 15:21:03 3182834 218
>>3182833
Забыл дописать:
Он как бы данные получает, но не отдаёт их какого-то фига и дальше продолжает срать запросами.
Аноним 06/06/24 Чтв 15:33:14 3182856 219
>>3106132
От джавы да устаешь, хотя немного всего больше года поработал, была бы норм зарпла, но только у с мидлов и синьоров, но не дослужидся еще, у котлиа тоже синтаксис не сильно короткий, чуть лучше джавы, бэк на спринге котловом вроде хорош.
Аноним 07/06/24 Птн 12:06:43 3183595 220
>>3182834
Накатай ишью им, я вообще не пойму о чем ты, но скорее всего ты где-то обосрался.
Аноним 07/06/24 Птн 12:09:47 3183601 221
>>3182856
Я уже ставлю жирный плюс за отсутствие ;
Я 20 лет работал писарем точки с запятой, мне хватило.
07/06/24 Птн 12:56:17 3183647 222
Аноним 07/06/24 Птн 13:18:51 3183661 223
>>3183595
Пытался сделать запрос к серверу, он начинает срать запросами к серверу, без ведомых на то причин. Есть вероятность, что это и вправду я, но когда тестил со сломанным сериализатором, он отправлял 5-6 запросов и только потом сериализовывал, хотя вся логика сериализации была в одном запросе:
httpClient.get().body<T>
Какого хрена? Хрен знает.
Или может быть, что где-то корутины неправильно написал и они шлют меня нахер. Короче, ищу баги у себя пока, а потом и ишью напищу (пока занят, нет доступа к пк)
Аноним 07/06/24 Птн 23:57:53 3184183 224
>>3106805
>Хера у жабадауна бомбит, если котлин делает его jvm сильнее.
Котлин делает джвм тормознее миллионами рантайм проверок на нулл и тормознутыми корутинами
Аноним 08/06/24 Суб 17:32:54 3184839 225
show.png 2Кб, 256x50
256x50
>>3184183
Джит выпилит все это говно за раз, но тебе эти проверки надо будет писать ручками
Ты вообще видел какая жаба тормозная без прогрева?
Аноним 08/06/24 Суб 17:39:41 3184846 226
>>3184839
Это с прогревом
Джит ничего не удаляет
Велкам ту реал ворлд
Аноним 08/06/24 Суб 17:40:29 3184847 227
>>3184846
я имею в виду если этот код используется, джит его не удалит
Аноним 08/06/24 Суб 20:09:21 3185062 228
Объясните какой положня у котлина сейчас и чем он лучше джавы?
Аноним 08/06/24 Суб 21:28:24 3185171 229
>>3185062
Могу сказать за андройд.

Котлин доминант, если ты не знаешь котлин/корутины - ты никому не нужен.
90% новых либ пишется на котлине,99.9% новых приложений тоже на котлине.

Чем лучше джавы?
Есть корутины, которые поддерживаются где-то с 9 джавы.
Есть крутой синтаксис и сам язык обновляется с поддержкой старых версий JDK.
DSL
null safety
экстеншен функции
Компоуз мультиплатформа (это пи... ну хотя-бы можно делать +- несложные программки)
08/06/24 Суб 21:59:51 3185194 230
>>3185062
Ничем. Его продвижение обусловлено взятками от создателей. Разбирательство уже идёт, попухнут скоро.
Аноним 08/06/24 Суб 22:02:36 3185199 231
image.png 42Кб, 640x640
640x640
Аноним 08/06/24 Суб 23:02:41 3185251 232
У котлина одна основная проблема -- ему приходится использовать стандартную библиотеку жабы, которая убога до умопомрачения.
Аноним 09/06/24 Вск 12:06:59 3185485 233
>>3185251
Это при том, что стандартная библиотека быстрее работает, а не срет миллионом объектов на каждую итерацию как котлиновская
09/06/24 Вск 12:27:19 3185501 234
>>3185199
Источник надёжный, но проверенный.
Аноним 09/06/24 Вск 16:21:44 3185788 235
>>3185251
Я тоже много думал, что если бы jetbrains со старта сделали котлин без jvm параши, только native+js, то сейчас котлин был бы основным конкурентом c# и go (и rust и python), ультимативным языком просто. Но увы.
Аноним 09/06/24 Вск 16:56:33 3185833 236
>>3185788
К сожалению, надо было поддерживать кучу андройдовских либ т.к. гугл заплатила за поддержку. Пришлось пилить JVM язык и еще сверху добавили натив, чтоб хоть как то уменьшить бойлерплейт кода (и ускорить/снизить потребление).
JS компиляцию вообще не понимаю, вроде никто из нормальных людей этим не пользуется (или я чего то не знаю?)
Аноним 09/06/24 Вск 16:58:43 3185837 237
image.png 5Кб, 558x66
558x66
Я попросил в шапку чтобы нас добавили и вот
Аноним 09/06/24 Вск 17:57:47 3185892 238
>>3185788
>Я тоже много думал, что если бы jetbrains со старта сделали котлин без jvm параши, только native+js, то сейчас котлин был бы
... уже мертв лет 10.

Без JVM Котлин никому нахуй не уперся. А у самих JetBrains не хватило бы ресурсов тащить его в одиночку. А еще нет фреймворков и библиотек.
Аноним 09/06/24 Вск 18:00:16 3185900 239
Что-то в шапке старое лого, надо бы фиолетовую новую сделать при перекате
Аноним 09/06/24 Вск 19:52:09 3186076 240
>>3185251
>>3185788
Ну пусть не использует. JVM не требует джавовской стандартной библиотеки
Аноним 09/06/24 Вск 22:25:40 3186218 241
>>3185892
Фреймворки и либы есть у котлина, да только они супер баганные. Ей богу, тот же экспоузет. Я затрахался пытаться ловить его ошибки. То базу не может создать, то не создаёт таблицы, то транзакцию не обработает.
Аноним 09/06/24 Вск 23:47:41 3186318 242
Аноним 10/06/24 Пнд 12:34:35 3186693 243
>>3186218
>Фреймворки и либы есть у котлина, да только они супер баганные.
Речь шла о том, что если бы был только Kotlin native+JS, то из библиотек там бы только JS были бы. Все эти DI, ORM, Web фреймворки пришлось бы писать заново. Это та же самая проблема с которой сталкиваются все убийцы С++ - под них нихуя нет, и приходится делать биндинги к С++ библиотекам.

Потому JetBrains абсолютно правильно сделали, что выбрали JVM и сделали интероп с Java. Так они получили хороший рантайм с минимумом усилий, огромное количество библиотек и фреймворков, доступ к самой популярной мобильной ОС.
Аноним 10/06/24 Пнд 13:51:38 3186785 244
>>3186693
Да, тут согласен, что иначе бы они не выжили.

У жб бы хватило сил сделать либы под жс, ну с натяжкой лютой для Native (одна из таких - Skiko), но вот их качество и количество оставляло бы желать лучшего
Аноним 10/06/24 Пнд 20:17:07 3187196 245
>>3185837
Давайте вместе найдем импостера на этой картинке.
Аноним 10/06/24 Пнд 21:09:08 3187262 246
Аноним 10/06/24 Пнд 21:56:19 3187325 247
>>3187262
Я бы сказал, что шарпомухе xd
Аноним 10/06/24 Пнд 22:47:41 3187370 248
Аноним 15/06/24 Суб 03:31:22 3191811 249
17183754894600.png 541Кб, 940x460
940x460
Что лично ты сделал для продвижения котлина?
Аноним 15/06/24 Суб 04:59:16 3191814 250
>>3191811
абсолютно ничего
но и не мешал же
Аноним 15/06/24 Суб 07:20:19 3191825 251
CSharp.png 81Кб, 800x800
800x800
>>3191811
Ничего. Come home white man.
Аноним 15/06/24 Суб 11:19:35 3191918 252
>>3191811
Пишу в этом треде и делаю гуи либу для вин/мак/линукс.
А ты что сделал?
Аноним 16/06/24 Вск 09:54:22 3192864 253
image.png 996Кб, 940x460
940x460
>>3191918
микроменеджментил добавление иконок для линукса в ubuntu, pop os, linux mint и попросил на главную двача добавить котлин, впихнул пример для callback в википедии на котлине.
Аноним 16/06/24 Вск 10:02:51 3192873 254
>>3192864
Неплохо неплохо.

Кстати, в почему в телеге котлин/андройд чаты НАСТОЛЬКО токсичные? Даже двач /б/ не настолько плох. Сидят там 2 админа-шиза и всех новичков либо банят, либо обсирают за вопросы. Какого хрена...
intellij Аноним 16/06/24 Вск 10:07:35 3192875 255
image.png 25Кб, 644x240
644x240
image.png 83Кб, 480x355
480x355
Какая разница если я нажму yes или no при автоковертации java -> kotlin?
Аноним 16/06/24 Вск 10:10:21 3192877 256
>>3192873
А такие есть? Я там не сижу, я сижу на реддите, сабреддиты ты и сам знаешь, конечно там вахтёры сидят на модератарах в андроид сабе, котлин ещё норм.
Аноним 16/06/24 Вск 15:16:22 3193129 257
>>3192877
Да, есть
@KotlinLangRu и @android_ru
Тут сидят одни скуфы-токсики и на твой вопрос (даже достаточно интересный) отвечают с высокой долей ЧСВ и указывания на тебя. как на дебила.
Недавно задавал новичок "как сделать дополнительные кнопки для snackbar", так главные скуфы-гейткиперы сидели и тупо засрали человека, почти прямо сказав, что он дебил.
В чате по котлину другая проблема: туда залетают дебилы и пытаются обсуждать что угодно, кроме котлина. Да и посоздавали кучу тредов и в итоге активность дай бог в треде /coroutines/ и /lang/.

Я всё понимаю, тупой вопрос и такое можно нагуглить, но зачем всё таки оскорблять людей?
Аноним 16/06/24 Вск 15:17:42 3193130 258
Кстати, я тут задумался, а вообще живёт ли проект Kotlin/Native? Насколько имеет смысл переводить проект тихонечко с JNI на K/Native?
Аноним 16/06/24 Вск 16:04:15 3193148 259
Аноним 16/06/24 Вск 16:04:53 3193149 260
>>3193129
Зачем ты там вообще сидишь и как ты нашёл эти чатики?
Аноним 16/06/24 Вск 20:58:39 3193618 261
>>3193149
Думал спрашивать специфичные вопросы про андройд и майнкрафт, но ни разу так и не спросил
Аноним 16/06/24 Вск 21:14:22 3193646 262
>>3193618
А нашел просто в гугле на тему "чат телеграм котлин и андройд"
Convert Java to Kotlin| intellij. What difference does it make if I click yes or no? Аноним 17/06/24 Пнд 10:09:04 3193924 263
image.png 87Кб, 640x248
640x248
Я спросил на реддите и мне ответили "It fixes wrong usage of kotlinized java on call-sites", это как и что они имели в виду?

Кто нибудь может объяснить?
Аноним 17/06/24 Пнд 11:39:49 3193982 264
>>3193924
Мб именно дело в импортах? Типо у тебя при конвертации кода импортируется стандартные импорты джава кор, а когда весь файл - он старается импортировать котлин кор апи (kotlin.math, file и т.д,)
Аноним 17/06/24 Пнд 13:08:02 3194021 265
Screenshot from[...].png 329Кб, 580x463
580x463
>>3193982
Zагадка. Ждём gpt-30 чтобы он ответил.
Что пизже нативный readLine или Scanner? Аноним 17/06/24 Пнд 19:01:10 3194471 266
image.png 1860Кб, 1200x901
1200x901
val b = readLine()?.toInt()


import java.util.Scanner;
int b = scanner.nextInt();
Аноним 17/06/24 Пнд 21:20:01 3194689 267
>>3194471
вот это я вступор впал...

По сути, там разница такая, что ты даже не заметишь, но если интересно, то readln это обёртка над jdk вариантом получения строки от пользователя.
Аноним 17/06/24 Пнд 21:23:41 3194698 268
>>3194689
а, не ответил на вопрос то.
Лучше readLine т.к. просто проще читается и более понятней с ходу, чем scanner джавы.
Аноним 18/06/24 Втр 16:33:32 3195474 269
2ch.png 9064Кб, 2871x4771
2871x4771
А у вас нет ощущения, что котлин становиться какой-то поделкой, а не языком?

Новых, действительно хороших (а не поделок для compose / android или сделанных самими жб / гугл), библиотек для котлина всего несколько - ktorm, arrow, koin, okio, korge и sqldelight. Можно конечно вспомнить еще различные биндинги, но они не в счёт.

Зачем-то добавляют кучу различных систем/ключ. слов об которые можно споткнуться или сломать случайно систему (пример: dual type: Int | TypeError / set/get с двойным значением а-ля StateFlow и MutableStateFlow), поддержка различных достаточно фиговых направлений по типу kotlin/js или compose multiplatform KMM намного лучше и проще, чем это чудо-юдо

Не следят за своими же библиотеками: баги в exposed, ktor и compose особенно компоуз десктоп по потреблению ОЗУ...., kotlinx.serialization только более менее хорошо сериализовывает json (на счёт остальных - не знаю, я не тестировал)

Васаби сдох из-за ктора, Skija бросили ради "развития идеи kotlin/nativa" или типо того, вот теперь пишут Skiko (зачем?). Куча мусорных либ по типу decompose, ktorfit, precompose, picnic, Result. Ну серьезно, зачем так много всякой бесполезной фигни? Ладно, кторфит еще понять можно, оно нужно для kmp. Но вот вопрос - сколько компаний используют kmp в своих проектах? Не знаю, как на западе/востоке, но в РФ только две насчитал - Movavi и IceRock.

Не знаю, будет ли кто это читать, но всё же интересно ваше мнение. Заранее спасибо!
Аноним 18/06/24 Втр 16:45:32 3195482 270
>>3195474
(Я не андроид разработчик)

Не вижу смысла в котлине когда существует современный сишарп.
Аноним 18/06/24 Втр 18:04:20 3195582 271
>>3195482
>Не вижу смысла в котлине
Не вижу смысла во всех языках программирования когда есть язык си. Он не улучшается потому что он и так в совершенстве.
Аноним 18/06/24 Втр 18:40:43 3195673 272
>>3195582
вот кстати да, думаю на нём начать писать т.к. задолбало, что всё ломается из-за педиков, которые даже код писать (что уж тут про программирование говорить) без гугла не умеют
Аноним 18/06/24 Втр 22:04:29 3195908 273
>>3195474
>я не тестил
Только сейчас осознал ошибку: я не тестил сериализацию/десериализацию других типов, кроме json
Аноним 18/06/24 Втр 22:51:06 3195971 274
>>3192873
Когда-то был номерной тред про котлин, оп там накатал пасту на этих шизов и просил избегать этих ТГ загонов. Почему эти каналы еще живы, я хз. Хотя это проблема всех чатов, даже в эпоху irc было окружение ЧСВэшников, которые самоутверждались на залетных, хотя порой там были куда более статусные люди, в отличие от фриков канала.

Избегай чаты. На двачах трудно анонировать на самого себя, поэтому в этом треде гадит только безработный жабист, хотя он скорее вызывает жалость.
Аноним 18/06/24 Втр 22:53:54 3195974 275
>>3195971
Ну, постараюсь избегать чтоль, раз такое дело
Аноним 18/06/24 Втр 23:00:39 3195979 276
>>3195474
Слушая подкасты, у меня сложилось впечатление, что набрали студентов или лоу-скилл, в том числе и организатора, который не мог организовыать и потом вообще выгорел. Как итог, пришлось вместо развития переписывать компилятор, у которого даже внутренней доки не было.

То есть, не имея ресурсов, они поставили немалые такие цели. Но все же, это лучшее решение на jvm. Долбиться об старинные жабо-шарпы мало приятно.
Аноним 18/06/24 Втр 23:03:54 3195982 277
>>3195582
Юношеский максимализм до первого сигфолта, с последующей отладкой на месяцы через дампы памяти. Видали мы таких.
Аноним 18/06/24 Втр 23:07:45 3195985 278
>>3195482
Жалко он не выстрелил в опенсорсе и вот снова мягкие что-то стали там мутить. Как сказали в шарп треде - колос на глиняных ногах
Найди уже работу
Аноним 18/06/24 Втр 23:14:45 3195992 279
>>3195985
>найди уже работу
Я уже ищу, но пока ничего нет :(
Аноним 18/06/24 Втр 23:16:19 3195995 280
>>3195982
Ну, посмотрим.
Если и будет так, то все равно время не будет потрачено зря :D
Аноним 19/06/24 Срд 16:03:50 3196667 281
>>3195474
У меня сегодня жопа сгорела когда я осознал что String.also{} это говно без задач. Мне надо было строку баркода по чарам проитерировать, путем пересчета проверить валидность и вычислить контрольную сумму. В also нет индекса. Ну и нахуй оно тогда надло если без индекса хватит in String, а для индекса можно взять массив? В общем взял строку и записал массив. Дальше итерировать, обращаясь к index и value внутри цикла проще простого.

Вообще не понимаю чем with, apply, also, run, let лучше традиционных решений.
Аноним 19/06/24 Срд 18:19:57 3196859 282
>>3196667
Let - сделать что то, если объект не null
With - вместе с чем-то сделать что-то, а иначе ничего
Also - также, но вне зависимости от ответа (в отличии от with)
Apply - чтоб get/set у джава объекта не вызывать, сразу типо конструктора вписывать. Как пример - логгер у ретрофита строить
Run - если что-то создано успешно или выполнилось успешно, запустить какую - то операцию

Ну эт мое понимание
Мимо автор поста
Как доказать, что Kotlin — это больше, чем просто разработка под Android? Аноним 20/06/24 Чтв 08:55:34 3197404 283
image.png 231Кб, 956x810
956x810
Реддиторы - пидоры Аноним 20/06/24 Чтв 10:19:08 3197448 284
image.png 36Кб, 716x285
716x285
image.png 35Кб, 716x285
716x285
Я не хочу спорить с реддиторами ибо там карма пикабушная. Суть такая, почему в котлине мы крутим анонимный класс через объект?

Почему мы не можем сделать картинка 2?
То есть потому что котлин нихуя не лаконичный? Это всё пиздежь. То есть каждый раз писать object : это же бред ебаный? Есть какой-то реальный смысл?
Аноним 20/06/24 Чтв 17:00:02 3198125 285
>>3197448
Потому что Greeter() попадает под токен вызова функции или создания класса, нужна оверпроверка в таких случаях, а ты потом будешь плакать, что так долго компилиться.
Аноним 20/06/24 Чтв 19:24:44 3198358 286
>>3198125
Создаём ли мы класс?
Да, анонимный, аргумент не засчитан.
Вызов функции.
Ну тут да, оверпроверка.
Аноним 21/06/24 Птн 22:38:52 3199721 287
>>3198358
Создания экземпляра, по типу new MyClass(), в общем, это мега тупо докопаться к одному ключ слову, при этом получишь получишь овер-парсинг и проблемы читаемости.
Аноним 22/06/24 Суб 23:16:38 3200973 288
Когда и почему сдох андроид тред?
Аноним 23/06/24 Вск 15:05:37 3201318 289
>>3200973
хрен знает, может мало постили?
если хочешь, то возрождай тред
Аноним 26/06/24 Срд 19:15:33 3204460 290
>>3200973
Потому что вкатиться почти нереально, одно из самых сложных для вката. Треды создаются по языкам, а андроид - это более узкий тред с конкретным направлением, и языком, который по сути только там и используютю Плюс /pr сам по себе мертв.
Аноним 26/06/24 Срд 19:16:56 3204463 291
Бтв я один жду fleet, чтоб под андроид писать? Меня от андроид студии уже воротит нахуй, каждую неделю эта параша багуется, тупит, проще уже с нуля написать ide, это невыносимо нахуй
Аноним 27/06/24 Чтв 04:34:59 3204825 292
>>3204463
Как же я тебя понимаю...
Я не думаю, что флит не будет баговать как релиз ветка АС, но на минимализацию я ОЧЕНЬ СИЛЬНО НАДЕЮСЬ.
Кстати, попробуй макчимально новую (feature drop) ветку у АС, она вроде меньше багует, но будь осторожен, настройки слетают
Аноним 27/06/24 Чтв 04:35:38 3204826 293
Аноним 27/06/24 Чтв 19:38:13 3205485 294
>>3204463
>багуется, тупит
Проблема виндаблядей
Аноним 27/06/24 Чтв 20:04:39 3205517 295
>>3106132
Используется jvm != поверх джавы. Нахуя пилить свой байткод и кодогенераторы для всех архитектур когда есть готовые опенсорсные?
Эпл тожп свой свифт на jvm сделал ну и да, оба говно этот синтаксис с вопросами восклицательнями знаками просто вымораживает, какие то говняные комплитеры вместо корутин, вообще весь около-джава мир это такая дрянь редкостная.

Ах да еще помему у хаскеля поддержка jvm есть.
Аноним 28/06/24 Птн 19:28:46 3206559 296
>>3205485
Хуйню не пиши плиз. Проблема только в jet dead brains
Аноним 28/06/24 Птн 20:27:32 3206638 297
>>3205485
Багуется и на макбуке, был опыт.
Аноним 30/06/24 Вск 07:19:25 3207807 298
Интересная (и очень поехавшая) фича в котлине:
Есть такое ключ. Слово - fun, так воооот.... оно не только для функций, лол.
Вы можете писать "функциональные интерфейсы", что то типо интерфейса Runnable, но не создавая объект (или как анон выше хотел сделать >>3197448 )
До (функциональных интерфейсов):
interface Runnable { fun execute() }

fun test() : Runnable { return object : Runnable { override fun execute() { код функции } }

После:
fun interface Runnable { fun execute() {} }

fun test(): Runnable { return Runnable { код функции }
Аноним 30/06/24 Вск 14:50:46 3208031 299
>>3197448
Потому что обычные скобки для лямбд сделали. Как компилятору понять когда ты лямбду указываешь, а когда интерфейс реализуешь?
Че, самый умный, блядь? Ну и напиши свой Kotlin.
Аноним 02/07/24 Втр 12:38:05 3209702 300
>>3106496
Продвигать ide через лок языка на платной ide, верх тупости, такое придумать могли только зумеры
Аноним 02/07/24 Втр 15:02:29 3209838 301
>>3209702
язык программирования Гойтлин от компании Жидбрейнс.
Аноним 02/07/24 Втр 23:26:38 3210249 302
>>3209702
Котлин честно кроссплатформенный поверх 100500 опенждк и с бесплатной версией IDE-не прибитой к ос, а шарп колосс на глиняных ногах, как бы ты не маняврировал.

ко ко ко, он попенсорс!, только правда пропретарный отладчик онли для вижлы, хотрелоад работающий на винде, мау на винде, хоть изначально ксамарин был кросс, в общем, даже основной кросс гуи ливнул с открытого фонда, ибо мягкие мутили свою муть.
Аноним 03/07/24 Срд 02:29:48 3210319 303
Ну вот и допизделись, можете отправляться в петушиный угол к шарпистам, чтобы качать с торрентов ide без которой невозможно работать и ебаться с кряками
Жыдбрейнс запретил качать ихнее поделие с российских ip и походу Беларусь тудаже
https://habr.com/ru/news/825756/
Аноним 03/07/24 Срд 04:32:48 3210327 304
>>3210319
1. Там речь про ультимейт версию
2. Один хрен нельзя было оплатить подписку
3. 95+% котлин кода - это андройд/кмп.
4. Тред джавы на 4 треда ниже
Аноним 03/07/24 Срд 10:08:01 3210527 305
>>3210327
>Там речь про ультимейт версию
Я думаю они со временем пофиксят эту проблему

> Один хрен нельзя было оплатить подписку
Картой иностранных банков можно и теперь кто оплатил не может получить обновления, а ТП посылает на хуй
https://youtrack.jetbrains.com/issue/GO-14191
https://youtrack.jetbrains.com/issue/IDEA-313097/Cant-extract-parameter
Примечательно что посылатели на хуй из Питера в большинстве своём

> 95+% котлин кода - это андройд/кмп.
Студию для Андрюши кто разрабатывает?

>Тред джавы на 4 треда ниже
Да? А я вас постоянно путаю, а в чём разница?
Аноним 03/07/24 Срд 16:02:25 3210857 306
>>3210527
>Студию для Андрюши кто разрабатывает?

Гугл + ЖБ. Гугл делает доп. фишки типо эмуля и встроенных плагинов для андройд кода (типо smali, jetpack compose и т.д.), а ЖБ делает комьюнити версию идеи и compose multiplatform (хоть и с помощниками из гугла).

>Да? А я вас постоянно путаю, а в чём разница?

У нас тут своя атмосфера, пьём тыквенный раф и ноем, что жб (гугл) опять что-то сломал из-за своих хотелок.
Жаба девелоперы сидят в своей фауне и ждут, когда же у них обновят версию джавы.
04/07/24 Чтв 00:11:42 3211233 307
>>3209838
Ой-вей, таки да.
>>3210319
С ними давно всё стало понятно. Их бложик на русском не обновляется уже третий год. Хотя никакие ссанкции не запрещают писать по-русски, но они выслуживаются и лижут чей-то сапожок. Ради чего?
Вот к чему привело отсутствие политруков в вузах. Не заложили БАЗУ, теперь они пьют соевое молоко и гадят. Хотя могли бы пользоваться положением и лоббировать русские интересы.
В общем, это очередной шаг к отжатию компашки чехами. Продавливают их и не останавливаются.
>>3210327
>нельзя было оплатить подписку
Можно было тихо активировать вечную лицензию россиянам. Но нет, блядь, подлянку строят.
Flutter вытеснит всё. Но под смарты лучше писать на C++, чтобы эффективнее было. А то до чего дожили: кнопка принятия звонка отрисовывается по пять секунд и тупит. Сколько звонков уже пропустил из-за этого.
>>3210527
>https://youtrack.jetbrains.com/issue/GO-14191
>https://youtrack.jetbrains.com/issue/IDEA-313097/Cant-extract-parameter
Не удивлюсь, если Ефремова занималась вебкамом в прошлом.
А вообще, надо собирать их ебальники, пока не шифруются. Не повредит.
https://всезапомним.рф/company/76-jetbrains.html Кто может выйти на них, сообщите, чтобы добавили информацию о новой подлянке.
Аноним 04/07/24 Чтв 07:24:03 3211315 308
image.png 68Кб, 225x225
225x225
>>3211233
Где вообще джетбрейнс сотрудники? Я вроде читал вот типа русские ребята, но что с ними после 2022 они свалили в чехию или куда там?
Или все эти сотрудники буквально сидят где-то в Санкт-Петербурге подключенные к корпоративному vpn?
Аноним 04/07/24 Чтв 08:04:33 3211317 309
>>3210319
Даже если посмотреть PKGBUILD, все эти snap, flathub, aur они все исходник то берут с сайта интеллидж. В этом и заключается комедия.
Аноним 04/07/24 Чтв 12:19:52 3211484 310
>>3196667
>Вообще не понимаю чем with, apply, also, run, let лучше традиционных решений.
Очень удобно когда тебе нужно зачейнить вызовы методов, которые не возвращают сам объект, типа несколько сеттеров. Без них придётся писать какие-то обертки. Ну а тут универсальный и однородный подход вместо кучи разных оберток
Аноним 04/07/24 Чтв 12:22:50 3211486 311
>>3211315
У них удаленка и офисы в некоторых крупных городах Европы. Мне пару лет назад предлагали Мюнхенский офис.
Аноним 04/07/24 Чтв 12:24:45 3211489 312
>>3211233

>С ними давно всё стало понятно. Их бложик на русском не обновляется уже третий год. Хотя никакие ссанкции не запрещают писать по-русски, но они выслуживаются и лижут чей-то сапожок. Ради чего?
Потому что не продают в РФ и уже никогда сюда не вернутся санкции хуй кто отменит да и репутацию подмочили знатно, соответственно нет смысла тратить время сотрудников на это, возможно уволили целый отдел, который занимался документацией на русском языке.

>Вот к чему привело отсутствие политруков в вузах.
Лол, дело не в этом, тут чисто бизнес взвесили риски потери рынка РФ и рынка ЕС+США, собственно решили что сесть на западный стул выгоднее. Там у них половина команды что была изначально разошлась кто куда, а часть хомяков релоцировали после закрытия офиса в Питере. Так что у них сложился костяк именно прозападных хомячков. Не надо совок возрождать, дедуль.

>Можно было тихо активировать вечную лицензию россиянам. Но нет, блядь, подлянку строят.
Их там в Чехии выебут за такое, а вообще после окончания лицензия остаётся, только обновляться на новые версии нельзя. Покупать кстати можно через карту другой страны, просто сменив адрес. Сейчас проблема в другом, они закрыли доступ для скачивания даже если у тебя есть купленная лицензия, вот это уже действительно подлянка.

>Flutter вытеснит всё.
Не взлетает почему-то, наверное что-то с ним не так

>Но под смарты лучше писать на C++, чтобы эффективнее было.
Эффективнее когда хуяк-хуяк и в продакшен, пока ты там памятью управляешь и макросы пишешь на других языках уже выкатят релизную версию

>А вообще, надо собирать их ебальники, пока не шифруются. Не повредит.
Займись этим если руки чешутся "site:youtrack.jetbrains.com EU sanctions" тысячи таких ответов и почти у всех есть ебальник в linkedin вижу ты прям в бой рвёшься
Аноним 04/07/24 Чтв 12:25:46 3211492 313
>>3211315
>Я вроде читал вот типа русские ребята, но что с ними после 2022 они свалили в чехию или куда там?
Всех вывезли за границу, а кто не поехал уволили
Аноним 04/07/24 Чтв 12:26:26 3211493 314
>>3211489
>Эффективнее когда хуяк-хуяк и в продакшен, пока ты там памятью управляешь и макросы пишешь на других языках уже выкатят релизную версию
Это база к сожалению, обычно time to market решает безумно
Аноним 04/07/24 Чтв 12:29:02 3211495 315
Аноним 04/07/24 Чтв 22:10:03 3212016 316
Если я хочу заниматься мобильной разработкой, то мне же к вам?
Аноним 04/07/24 Чтв 22:42:57 3212030 317
>>3207807
Поздравляю, если бы ты хотя бы раз открывал документацию, то для тебя это не было бы секретом
Аноним 04/07/24 Чтв 22:58:05 3212041 318
>>3212016
Да, удачи тебе этим заниматься.
Аноним 04/07/24 Чтв 22:59:03 3212042 319
>>3212030
Почему-то ни в одном проекте это не встречал, так что да, я был удивлён
05/07/24 Птн 00:44:11 3212116 320
Аноним 05/07/24 Птн 10:43:44 3212277 321
>>3212016
Ну как бы не совсем. Есть разные языки для мобильной разработки, чисто одного нет. Например порно игры делают на ренпае
Аноним 05/07/24 Птн 10:48:27 3212282 322
>>3211495
Preparing...
Checking clion dependencies...
Resolving dependencies...
Checking inter-conflicts...
Cloning clion build files...
Generating clion information...

Building clion...
==> Making package: clion 1:2024.1.4-1 (Fri 05 Jul 2024 10:47:33 MSK)
==> Checking runtime dependencies...
==> Checking buildtime dependencies...
==> Retrieving sources...
-> Found jetbrains-clion.desktop
-> Downloading CLion-2024.1.4.tar.gz...
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed

0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0
curl: (22) The requested URL returned error: 451
==> ERROR: Failure while downloading https://download.jetbrains.com/cpp/CLion-2024.1.4.tar.gz
Aborting...
Failed to build clion
Аноним 05/07/24 Птн 11:02:20 3212301 323
Аноним 07/07/24 Вск 12:49:23 3214183 324
сап, ананасы. подскажите актуальный стек для Котлин Андроид девелопера. везде разное пишут, я ваще хз что из этого правда.
перекатываюсь из Пайтон Бэкенда, по причине того что мобилки больше нравятся
Аноним 07/07/24 Вск 16:59:58 3214421 325
Аноним 08/07/24 Пнд 00:18:58 3214778 326
>>3214421
Там какая-то дедсадовская песочница шарпистов и джавистов
Аноним 08/07/24 Пнд 02:11:12 3214795 327
>>3214183
Ну что тебе сказать то...
Вот примерно общий список:

View xml, jetpack compose
Room,
Degger/hilt, koin,
Retrofit2,
Rxjava, coroutines.

Редко, но бывают в вакансиях рус/бел компаний:
Firebase, glide, picasso
Аноним 09/07/24 Втр 07:38:14 3215941 328
>>3214778
Тогда можно создать отдельный тред для конкретного языкосрача. Ходить троллить по языковым тредам не надо.
Аноним 10/07/24 Срд 22:04:50 3217750 329
Есть книги или Ютуб курсы по корутинам, flow? На Ютубе покрывают 100 там за раз за 10 минут, дока (гайдлайн) не раскрывает некоторых особенностей. Если что, работаю с корутинам уже года два, но хочется на более глубокий уровень копнуть.
Аноним 11/07/24 Чтв 20:00:56 3218767 330
>>3217750
Плати бабки на юдеми индусам
Аноним 11/07/24 Чтв 21:21:54 3218801 331
>>3218767
Нашел нормальную книгу в списках в шапке, Kotlin Coroutines Deep dive
Аноним 12/07/24 Птн 19:21:09 3219639 332
Почему тред еще жив...
Аноним 13/07/24 Суб 19:14:58 3220288 333
>>3214183
Советую okhttp, coil, compose, ktor, maven, gradle. При найме скорее всего будут мучать явой и спрингом. Вообще не понимаю зачем тебе вкат в андроид. Это очень специфичное направление.

Я перешел на андроид чтобы переписать старое энтерпрайз приложение, написанное на смеси фреймворка питона и костылей, на современный котлин без костылей и легаси. ИТ отдел до этого пол года ковырялся в костылях, и пришел в такое хтоническое состояние, что с благодарностью отдал мне приложение под ключ "один в один, и чтобы можно было фичи добавлять".

Коллеги скуфы буквально утята ИТ: как выучили 1 язык в молодости, влюбились в него, и с тех пор ни одного нового ЯП не учили. В каждом кабинете свой язык в фаворе, как же я проигрываю с сего факта. А мне выучить новый ЯП не сложно, ведь все равно больше трех за год не использую, и это совсем не много.
15/07/24 Пнд 12:43:42 3221740 334
>>3219639
А почему пост без саги?
Аноним 15/07/24 Пнд 19:04:08 3222053 335
kotlin developer.png 4Кб, 182x101
182x101
Аноним 18/07/24 Чтв 16:56:07 3224522 336
Гугл решил перенести разработку из андроид студии в свою IDE - IDX. https://habr.com/ru/news/829462/
Интересно как это скажется на JB
Аноним 20/07/24 Суб 21:57:42 3226144 337
>>3212016
не лезь блять дебил сука ебаный
Аноним 20/07/24 Суб 21:59:12 3226148 338
>>3214183
не лезь блять дебил сука ебаный
Аноним 21/07/24 Вск 12:07:17 3226525 339
>>3224522
Никак почти. Вот представь ты в винде. Есть нативный word, есть веб word. Кто пользуется веб word когда под рукой лежит нативный? Да никто. Веб вордом пользуются лишь те кто на линуксе сидят и им нужна 100% совместимость с word документом.
Аноним 23/07/24 Втр 22:12:53 3229229 340
image.png 60Кб, 959x485
959x485
image.png 14Кб, 445x215
445x215
Компилятор говна поел, нахуй он создает var4?
Я хочу писать гениальный красивый код(и нихуя не понятный), но меня калит, что компилятор не оптимизирует. Надеюсь K2 лучше будет
Аноним 24/07/24 Срд 16:37:35 3229956 341
Есть ли реальные кейсы использования ковариантности и контравариантности? Жэпэтэ кроме собак и кошек ничего высрать не может нормального.
Аноним 24/07/24 Срд 16:42:48 3229961 342
>>3229229
Ну так ты не поймёшь чисто смотря в джава код,
смотри в джава-байт-код.
Аноним 24/07/24 Срд 17:07:04 3229984 343
>>3229229
Какое же говно на скрине с котлином, вместо понятного создания коллекции я как понял какая-то мапа и понятного принта какая-то ебатория из "выразительного кода". Я помню на руби можно было также изящно и выразительно писать, но зато потом хуй кто прочитает и потому от него в перспективе все массово начали отказываться когда стали поддерживать долгоживущие проекты.
Аноним 24/07/24 Срд 17:08:32 3229986 344
== = ===
equals() = ==

Если в лоб сравнивать синтаусис котлина и джава то это нелогично.
Из какого языка котлин стырил ===?
Аноним 24/07/24 Срд 17:09:00 3229987 345
Аноним 24/07/24 Срд 22:09:31 3230218 346
>>3229986
Шиз, спок. В джаве неудобное сравнение было, поэтому в котлин сделали удобно, шоб как у людей
Аноним 24/07/24 Срд 22:17:16 3230222 347
>>3229984
Это не мапа, я на рандом хуйнул шизо код, который не имеет смысла.
Насчет читаемости мб ты прав, можно и обычным способом писать.
Это чисто для выебонов, чтоб не писать вот так:
println(Pair(a, setOf(StringBuilder("dsf"))))
Ибо нехуй простым смертным мой код читать
Аноним 24/07/24 Срд 22:19:31 3230223 348
>>3230222
Локальные переменные для слабых
Аноним 24/07/24 Срд 22:44:14 3230229 349
>>3229956
Ну, я использую для коллекций всех доступных источников и вывода на экран
Аноним 25/07/24 Чтв 02:16:01 3230314 350
Аноним 25/07/24 Чтв 16:09:22 3230881 351
>>3230314
Не, у меня уже нету этого в коде.
Я думал, что у меня до сих пор в коде есть это чудо, но оказывается уже переписано на интерфейсы/абстрактные классы для меньшего связывания кода.

Слишком специфичная вещь
Аноним 25/07/24 Чтв 16:17:29 3230900 352
image.png 467Кб, 1280x720
1280x720
Охуел когда узнал что inner function/variable воспринимается в jvm как public. Вот что пишет об этом сам Елизаров:
https://youtrack.jetbrains.com/issue/KT-29227/Provide-package-private-visibility-modifier-or-another-scope-reducing-mechanism
>Package private was introduced before Java 1.0, at a time when no one could predict that we would be writing millions of lines of code in Java. It was thought that packages would be akin to modules, so you should put all the related things into one package/module. However, the reality turned out to be much more complicated and people routinely write self-contained modules comprised of multiple packages nowadays.
>There has not been much progress with package-private. This issue is pretty popular, according to our latest language features survey, but we plan to be working on more popular issues first. Moreover, if you drill down into the details of the survey, you find that this particular issue exhibits a peculiar pattern -- the more a person is experienced in Kotlin programming, the less they are likely to want package-private visibility.

Буквально насрал себе в штаны и делает вид что так и задумано.

Обновился с 1.9.24 до 2.0.0 и не ощутил никакого чуда с ускорением в 2 раза, только с градлом поебался. Набросили жирных беливов как Стив Джобс, на том и порешали. Литералли дрочат в присядку, после чего высираются килотоны ответов на реддите в тредах типа "Is Kotlin worth to learn in 2024?". Зато теперь можно проверить что котик может мяу:

class Cat {
fun purr() {
println("Purr purr")
}
}

fun petAnimal(animal: Any) {
val isCat = animal is Cat
if (isCat) {
// In Kotlin 2.0.0, the compiler can access
// information about isCat, so it knows that
// animal was smart-cast to the type Cat.
// Therefore, the purr() function can be called.
// In Kotlin 1.9.20, the compiler doesn't know
// about the smart cast, so calling the purr()
// function triggers an error.
animal.purr()
}
}

fun main() {
val kitty = Cat()
petAnimal(kitty)
// Purr purr
}
Аноним 25/07/24 Чтв 16:19:11 3230903 353
image.png 467Кб, 1280x720
1280x720
Охуел когда узнал что inner function/variable воспринимается в jvm как public. Вот что пишет об этом сам Елизаров:
https://youtrack.jetbrains.com/issue/KT-29227/Provide-package-private-visibility-modifier-or-another-scope-reducing-mechanism
>Package private was introduced before Java 1.0, at a time when no one could predict that we would be writing millions of lines of code in Java. It was thought that packages would be akin to modules, so you should put all the related things into one package/module. However, the reality turned out to be much more complicated and people routinely write self-contained modules comprised of multiple packages nowadays.
>There has not been much progress with package-private. This issue is pretty popular, according to our latest language features survey, but we plan to be working on more popular issues first. Moreover, if you drill down into the details of the survey, you find that this particular issue exhibits a peculiar pattern -- the more a person is experienced in Kotlin programming, the less they are likely to want package-private visibility.

Буквально насрал себе в штаны и делает вид что так и задумано.

Обновился с 1.9.24 до 2.0.0 и не ощутил никакого чуда с ускорением в 2 раза, только с градлом поебался. Набросили жирных беливов как Стив Джобс, на том и порешали. Литералли дрочат в присядку, после чего высираются килотоны ответов на реддите в тредах типа "Is Kotlin worth to learn in 2024?". Зато теперь можно проверить что котик может мяу:

class Cat {
fun purr() {
println("Purr purr")
}
}

fun petAnimal(animal: Any) {
val isCat = animal is Cat
if (isCat) {
// In Kotlin 2.0.0, the compiler can access
// information about isCat, so it knows that
// animal was smart-cast to the type Cat.
// Therefore, the purr() function can be called.
// In Kotlin 1.9.20, the compiler doesn't know
// about the smart cast, so calling the purr()
// function triggers an error.
animal.purr()
}
}

fun main() {
val kitty = Cat()
petAnimal(kitty)
// Purr purr
}>>3230314
Аноним 27/07/24 Суб 17:36:50 3232901 354
Аноним 27/07/24 Суб 17:44:17 3232906 355
>>3232901
36:27
Забавно, что с использованием
param
.let(::doSomething)
код наоборот читается снизу вверх, а не сверху вниз
Аноним 27/07/24 Суб 22:13:55 3233237 356
>>3230903
Этот неуч путает comprise и compose. В словарь не смотрит даже.
Аноним 27/07/24 Суб 22:18:34 3233241 357
>>3229986
Groovy. Как всегда. Всё хорошее в петухлине — из Groovy, всё остальное — от дьявола.
Аноним 28/07/24 Вск 00:11:10 3233292 358
Почему для котлина используют componentN для декомпозиции, а не геттреры которые бы вызывались в порядке автогенерирования?
Аноним 28/07/24 Вск 07:20:25 3233391 359
Upd:
>>3233292 я на реддите это спросил, а не стал дожидаться ответа двача.
componentN не привязан к дата классу, его можно вызвать и без геттеров. Но зачем нужен код с компанентами без геттеров это уже другой вопрос.
Аноним 28/07/24 Вск 07:37:31 3233395 360
>>3233391
Я попросил claude-3-5-sonnet придумать пример код чтобы компаненты не были привязаны к конструктору.
UPD2:
class Point(private val x: Int, private val y: Int) {
operator fun component1(): Int {
return y - x // Пример: возвращаем разницу y и x
}

operator fun component2(): Int {
return x + y // Пример: возвращаем сумму x и y
}

operator fun component3(): Double {
return Math.sqrt((x x + y y).toDouble()) // Пример: возвращаем расстояние от начала координат
}

override fun toString(): String {
return "Point(x=$x, y=$y)"
}
}

fun main() {
val point = Point(3, 4)
val (diff, sum, distance) = point

println("Original point: $point")
println("Difference (y - x): $diff")
println("Sum (x + y): $sum")
println("Distance from origin: $distance")
}

Какой вывод, то что они имеют похожий функционал это такое совпадение, потому что если смотреть эти особенности по отдельности они разные по функционалу.
Аноним 28/07/24 Вск 20:16:00 3234045 361
for ((key, value) in map) {
println("Key: $key, Value: $value")
}

Это вообще как работает? (key, value)
Если глянуть в байт код там не вызывается componentN, там напрямую
String key = (String)var3.getKey();
int value = ((Number)var3.getValue()).intValue();

Как вообще это работает (key, value) , как я могу сделать так чтобы мои методы подсавлялись?
Аноним 28/07/24 Вск 20:58:14 3234114 362
>>3234045
Пхех, вот тебе не насрать?
Компоненты в data классах нужны для деструктуризации, но они не нужны для деструктуризации коллекций, и кортежей.
В данном случае скорее всего берется элемент мапы. Элемент мапы - это Pair из ключа и значения. Как я уже сказал, деструктуризация для кортежей работает без компонентов, так что первое значение Pair подставляется в key, а второе значение Pair подставляется в value.
Как компилятор это определяет я хз, да и пофиг мне
Аноним 28/07/24 Вск 21:02:35 3234125 363
>>3234045
Свои методы ты не подставишь так, потому деструктуризация нужна не для методов, а чтоб определенную структуру распихать по значениям в скобках, это просто сахар для удобства.
Это работает для коллекций (a,b,c) = listOf(1,2,3)
Для кортежей (a, b) = 1 to 2
И для дата классов, т.к. у них есть компоненты.
Аноним 28/07/24 Вск 21:28:16 3234155 364
image.png 71Кб, 429x333
429x333
>>3234125
Понятно, один и тот же вид, а на деле под капотом разные вещи.
Маска это один синтаксис в котлине, остальная часть то что в байткоде.
Аноним 29/07/24 Пнд 02:44:18 3234291 365
>>3233241
А почему груви не взлетел?
Аноним 30/07/24 Втр 13:24:05 3235438 366
Сап аноны!
Я всегда писал на Java. Сейчас стартуем новый проект. Всё стандартно: spring boot, postgres, Kafka и компания. Руководство говорит, ты техлид тебе и карты в руки. Есть возможность начать делать с нуля на котлин. Отговорите от этого, или наоборот, аргументы за приведите. Я не ради холивара спрашиваю, к котлину нормально отношусь, хочу для себя разобраться, стоит оно или нет.
Аноним 30/07/24 Втр 19:34:15 3235883 367
>>3235438
Зависит от того насколько крупный проект.
В идеале чем более однородный тех стак - тем лучше, зоопарки не нужны.
Аноним 30/07/24 Втр 19:35:17 3235884 368
>>3234291
Маловато хайпа оказалось.
Почему Kotlin-Native не взлетел, а Go взлетел?
Аноним 30/07/24 Втр 20:53:55 3235957 369
>>3235884
Кста хороший вопрос. Я понимаю котлин jvm тормозной для бэка, но native почему не зашел?
Скорее всего котлин никогда не позиционировался как язык для бэкенда. Его рекламят как прикладной язык, более лучшую джаву, и основной язык для android разработки.
Аноним 30/07/24 Втр 20:57:06 3235958 370
>>3235438
Хз, на котлин приятнее писать, полная совместимость с жабой. Loom вроде доступен из котлина, я хз зачем на джаве писать, если можно то же самое писать на котлине.
Некоторые шизы скажут, что suspend функции и корутины нинужны, и мб для бэка они действительно нинужны, но ты можешь их просто не использовать, да и тенденция сейчас на котлине писать вместо джавы новые проекты.
Аноним 30/07/24 Втр 20:59:35 3235959 371
>>3235958
Серьезно, есть хоть одна причина писать на джаве, а не на котлине, если котлин - более удобная джава, которая может использовать все фишки обоих языков? байткод вроде один и тот же
Аноним 30/07/24 Втр 21:01:05 3235960 372
Кстати там K2 компилятор вышел, дальше будет ещё лучше. Оптимизация, новые фишки хуё-моё, умный каст
Аноним 30/07/24 Втр 21:12:01 3235969 373
Я придрочился в railway программингу на котлине, и теперь я хочу ещё больше функциональщины, вот прям хочется pipeline-ы, где можно подставлять в любое место параметр из предыдущего вызова, и подобные штуки.
Котлин дает немного подышать функциональным стилем, но не даёт вдохнуть свободно, чтоб почувствовать тру fp стиль. А это комбинирование парадигм чисто визуально выглядит некрасиво в коде, так что приходится себя ограничивать, и создавать локальные переменные, как узник старого доброго ооп и императивщины.
Фулл ФП языки конечно я не сильно люблю, мне нравится, когда язык мультипарадигменный - это удобно. Но увы, такие языки не дают всю возможную функциональщину.
Мимо под пивом
Аноним 30/07/24 Втр 22:00:51 3235997 374
>>3235959
Да, например:
- Стандартизированный стак, у меня компания стандартизировалась на джаве и спринге
- Техлид не любит котлин, потому что ему 50+ лет
- Вы пишете на джава 5
и т.д.
Аноним 30/07/24 Втр 22:24:51 3236018 375
>>3235884
>а Go взлетел?
0. Гугл
1. Простой как мясорубка, можно посадить пхпшника битриксоида после го тура. И то что ты пишешь можно сделать одним способом, никакого сахара только недавно дженерики завезли
2. Компилируется в бинарник, никакой ебли с виртуальными машинами. Закинул артефакт в докер и оно шуршит.
3. Быстрый почти как си, но не нужно ебаться с памятью есть ГЦ.
4. Рост популярности микросервисной архитектуры на смену копролитам. Не нужны все фреймворки, орм и прочая залупа. В гошке их нет ну почти нет но зато есть пиздатая стандартная библиотека, где без лишних зависимостей в пару строчек поднимается сервис.
5. Все из коробки и компилятор и управление зависимостями и форматирование и дохуя всего. Да и вообще по девопсу с ним все легко и просто.

Собственно мне кажется из-за этого он и взлетел
Аноним 30/07/24 Втр 23:26:42 3236058 376
>>3236018
Так у тебя по всем пунктам Kotlin-Native проходит
Аноним 30/07/24 Втр 23:31:43 3236064 377
>>3236058
Как минимум первые два не подходят и на счет последнего огромный вопрос
Аноним 30/07/24 Втр 23:34:46 3236068 378
>>3236064
Ну а кто котлин всем в глотку запихивал? Гугл же, со своим андроидом. Без гугла он бы так и был студенческой поделкой каких-то русских из питера.
Аноним 30/07/24 Втр 23:36:41 3236070 379
image.png 1599Кб, 1180x730
1180x730
>>3236068
Просто значит у котлина лучше нетворкинг.
Аноним 30/07/24 Втр 23:40:09 3236072 380
>>3235997
> Техлид не любит котлин, потому что ему 50+ лет
Просто покажи что есть кнопочка конвертировать с Java на котлин в intellij + можно смотреть байткод который декомпилирован на джава, то есть можно код с джавы гонять и обратно. Так можно изучить котлин по быстрому. И все скрытые автогенерации становятся сразу понятны и предсказуемы.
Аноним 30/07/24 Втр 23:48:35 3236079 381
>>3236072
Ты не понял. Он знает, это никак не меняет то, что код у тебя останется на котлине, а не на джаве
Аноним 30/07/24 Втр 23:49:54 3236080 382
>>3236079
Ну и что? Через сутки привыкнет к котлину.
Это как пиво или кофе, сначала вкус отвратительный, а потом пьют как воду.
Аноним 30/07/24 Втр 23:53:52 3236086 383
>>3236080
Не, это какой-то аргумент каложоров.
Но ему все равно ничего не докажешь.
Аноним 31/07/24 Срд 00:07:44 3236089 384
>>3235997
Если легаси, то понятно, что не каждый дед станет переписывать джаву на котлин, особенно если там древняя джава. Такую контору лучше дропать.
Я писал про новые проекты.
Аноним 31/07/24 Срд 04:26:23 3236179 385
>>3236086
>аргумент каложоров
Логотип явы это буквально кружка кофе с паром, стоит задуматься.
Аноним 31/07/24 Срд 14:57:55 3236620 386
Screenshot 2024[...].png 23Кб, 788x97
788x97
>>3235960
У меня время компиляции на андроид уменьшилось в лучшем случае на 10% с переходом на К2. По-моему какая-то хуета, а не новшевства. Пусть свою хуйню переписывают. И касты ваши нахуй никто не испльзует.

Сейчас жидбрейнс с горящей сракой пилят мультиплатформу в надежде вырваться из андроид загона как будто что-то плохое. Пик буквально я.
Аноним 31/07/24 Срд 15:09:40 3236630 387
>>3236018
Невозможно запустить через прокси (squid) на работе, так что
/0
Аноним 31/07/24 Срд 16:46:06 3236713 388
>>3236620
Но улучшилось же. Там прикол не только в скорости компиляции.
Офк котлин в основном для андроида, но что плохого остальные платформы развивать? Лишним не будет, один хуй там щас добавлять особо нечего, всё есть уже.
Аноним 31/07/24 Срд 17:45:26 3236739 389
Аноним 31/07/24 Срд 17:51:45 3236748 390
>>3236739
Зайди в готред со своим списком, тебе добрых слов скажут
Аноним 31/07/24 Срд 17:54:41 3236751 391
>>3236748
заходил, стараются максимально игнорить
Аноним 31/07/24 Срд 19:50:42 3236850 392
>>3236751
Потому что не пользуются этим говном
Аноним 01/08/24 Чтв 05:17:42 3237103 393
>>3236620
Не взлетит, на макоси свой котлин (swift) с глубокой интеграцией в систему, на винде дотнет.
Остается только линукс к которому еще придется изобрести фреймворк с с гуем типа qt.
Аноним 01/08/24 Чтв 06:25:35 3237109 394
>>3105288 (OP)
Напиздел на собесе, что знаю Kotlin, через неделю выхожу на работу, как быстро познать весь этот сахарок чтобы не спалиться?
Сейчас прохожу бесплатные вводные уроки на hyperskill, есть что-то полезнее?

синьёр пиздабол джавист
Аноним 01/08/24 Чтв 07:27:42 3237129 395
>>3237109
Открываешь доки по котлину, есть кнопочка конвертировать с Java на котлин в intellij + можно смотреть байткод который декомпилирован на джава, то есть можно код с джавы гонять и обратно. Открываешь gpt-4o, copilot в браузере. Осторожнее на теме variance жпт галюционирует, вот это вообще лучше в нейросетях не спрашивать.
Аноним 01/08/24 Чтв 16:25:38 3237498 396
>>3237109
просто скажи что ты предпочитаешь писать ясночитаемый код, без сахара
Аноним 01/08/24 Чтв 16:31:45 3237505 397
>>3237129
Это херня всё, код максимум разве что рабочий, но видно что человек так писать не будет
Аноним 01/08/24 Чтв 19:44:54 3237634 398
>>3237505
Код гонять сюда-туда нужно чтобы понимать

Из джава в котлин
1)Как бы выглядит например наследование (просто пишешь на синтаксисе джава и узнаешь как это делается на котлине, повторяешь)

Из котлина в джава
2)Что генерируется под капотом.
Когда именно автогенерит геттер и сеттар, что он генерит при data классах, как выглядит когда при делегировании при ключевом слове by, что делает spread operator при vararg, когда ты декомпилируешь в джава весь этот сахар становится предсказуемым.
Аноним 02/08/24 Птн 17:19:29 3238435 399
>>3105288 (OP)
Пиздец попробовал этот кал. Из всех современных языков самый уебищный и писать на нем НЕВОЗМОЖНО. Нахуя эту залупу придумали?
Аноним 02/08/24 Птн 21:06:01 3238701 400
>>3238435
>Писать невозможно
Хейтер лямбд итт в треде?
Аноним 02/08/24 Птн 21:38:12 3238756 401
>>3238435
Хуя долбоёб, котлин буквально самый удобный и простой среди прикладных языков.
Ты откуда такой, шиз? Приведи пример удобного языка умоляю не говори джава/c#
Аноним 02/08/24 Птн 21:59:22 3238783 402
Аноним 02/08/24 Птн 22:06:06 3238796 403
>>3238783
Зачем сравнивать объекто-ориентированный язык с процедурным программированием? Я имею в виду про основной стиль программирования, формально эти языки поддерживают другие стили, но это лишь формально.
Аноним 04/08/24 Вск 06:22:08 3239946 404
>>3105288 (OP)
Meh, щас бы старое лого для шапки использовать
Аноним 04/08/24 Вск 16:36:31 3240335 405
>>3109193
Ты чё-то раскукарекался. На Groovy можно писать (да и все пишут по факту) именно со статической типизацией. Но можно и с динамической. И там это выглядит органично, в отличии от петухона, где эта типизация прикручена через очко и выглядит максимально уёбищно
Аноним 04/08/24 Вск 17:06:45 3240406 406
image.png 93Кб, 1600x800
1600x800
>>3133348
А правда ли, что Ktor не нужен и подлежит забвению? Пишу на Котлин 4 года и ни разу не видел Ktor в глаза (только Spring). Расскажите хоть, надо ли оно или уже нет?
Аноним 04/08/24 Вск 18:49:49 3240595 407
>>3240406
На мелких проектах тестил (очень лёгкая логика)

Плюсы:
Простая документация
Легко поднять MVP проектов
Легко внедрить другого человека в код (даже если никогда не писал на кторе или джаве/котлине впринципе)
Легковесный

Минусы:
Есть баги, даже бывают жёсткие (а разрабы походу жёстко их игнорируют)
Есть несмешные моменты с затупом в виде "открытых классов", которые на самом деле iternal.
Авторизация может нае#нуться. если захочет. Как фиксить? Даунгейд версий.

Впринципе, сейчас писать смысла нет. Они сейчас "переосмысляют" фреймворк и делают совершенно новую 3-ю версию (короче. как с котлином 2 история). Ждём выхода, потом багфиксы и там уже глянем
Аноним 04/08/24 Вск 18:58:34 3240609 408
image.png 13Кб, 128x120
128x120
Аноним 04/08/24 Вск 19:56:59 3240710 409
Аноним 05/08/24 Пнд 07:01:36 3240910 410
>>3238783
Два чая этому господину
Аноним 05/08/24 Пнд 07:08:26 3240911 411
>>3237109
Я поначалу создавал проект на Котлине и копипастил туда код со stackowerflow/perplexity на яве с конвертацией в котлин. Потом читал доку по коду который был перед глазами. Если колеги спросят за твой мув скажи что тебе впадлу бойлерплеты писать, а так ты и сам все это знаешь.
Аноним 05/08/24 Пнд 07:31:44 3240912 412
>>3236713
Конкретно в юзеркейсе андроид мне ничего кроме нормальной навигации наверное ее никогда не будет и быстрой компиляции не нужно. Вообще больше нет никаких пожеланий. А то что 3,5 романтика едят кактус маргинальной мультиплатформы это буквально капля в море, и попытка влезть на поле, где все уже поделено. Кстати Елизаров обладает талантом с серъезным, как у Мишустина, ебалом оправдывать любые странные решения команды Котлин.
>>3237103
>на макоси свой котлин (swift)
>на винде дотнет
>Остается только линукс к которому еще придется изобрести фреймворк с с гуем
Все так.
Стоит отдать должное, красноглазые дегенераты настолько упиваются своими срачами из-за графических либ, что разрабы серъезного софта просто пилят на электроне чтобы не влезать в говно по колено Так что на линукс проще влезть через электрон или jvm.
05/08/24 Пнд 13:16:52 3241101 413
>что разрабы серъезного софта просто пилят на электроне
Шиз, спокуху оформи)
>нормальной навигации
Никак не привязано к платформе, нормальные решения существуют
Аноним 05/08/24 Пнд 15:27:30 3241167 414
>>3240912
>Электрон
Он зашкварился, самый главный зашквар это дискорд.
Аноним 05/08/24 Пнд 20:03:53 3241499 415
17226636310290.png 56Кб, 1500x720
1500x720
Надо вообще шапку новую писать, вот фото лого актуального. К примеру ультимейт не имеет смысла писать из-за санкций. Во вторых

Это ссылка уже не референс
https://kotlinlang.org/docs/reference/

Придумайте новую шапку и проверьте ссылки на актуальность, не копипастите бездумно
Аноним 05/08/24 Пнд 20:05:04 3241501 416
>>3241499
Это если что я оп треда, он сюда вроде заглядывает.
Бамплимит тут 500 тредов
Аноним 05/08/24 Пнд 20:05:26 3241504 417
>>3241501
*Я говорю опу треда
Аноним 05/08/24 Пнд 21:14:59 3241587 418
Вместо того чтобы язык нормальный запилить дрочат на брендинг и меняют логотипы. А язык как был неюзабельным гавном так им и остался.
Аноним 06/08/24 Втр 05:18:13 3241734 419
>>3241587
Они это в 2021 поменяли, это просто оп взял старую иконку, я не знаю зачем.
Аноним 06/08/24 Втр 09:55:56 3241880 420
17228774342540.png 56Кб, 1500x720
1500x720
Кстати если просто взять голый компилятор в терминале kotlinc против javac, он будет медленнее немного, почему так?
Аноним 06/08/24 Втр 10:14:37 3241913 421
>>3226525
Я постоянно пользуюсь гуглодоками, ибо 100500 машин, а там лежат нужные записи и все унифицировано. я даже верю что они бэкапы делают, в отличия от меня
Аноним 06/08/24 Втр 10:20:01 3241923 422
>>3229984
Там все понятно, у нас есть определенная натренированность к привычному нам коду,если гибкости мозгов не хватает, то нужно просто попрактиковать котлин и будет норм.

мимо кодер работающий с дюжиной языков.
Аноним 06/08/24 Втр 10:22:11 3241927 423
>>3234291
Динамикодресня. Нельзя делать овермагические языки на динамикодресне, просто лютая магия где даже IDE не поможет.
Аноним 06/08/24 Втр 10:30:43 3241949 424
>>3235438
Попиши на котлине, потом на джаве будет казаться моветоном.
Так что определенно да, но ты ириски там смотри, а не двачеров спрашивай.
Аноним 06/08/24 Втр 10:37:31 3241960 425
>>3235884
С хера он взлетел?
Котлин нейтив больше про разработку на айфоне.

Го очередно узкая ниша бэк-микропенисов, больше там ничего нет. Чудо, если появиться свой прокси язык, аля котлин или ts, поверх этого позора. Там подводных камней больше чем в js, так что не верь что в него можно вкатиться после го-тура, маркетинговый булшит.
Аноним 06/08/24 Втр 10:46:05 3241970 426
>>3239946
Это местный безработный из джава треда, пытается хейтить котлин. Он реально думает, что хейтерством на двачах решает судьбу котлин.
Возможно тяжелая форма нарцисса, увы.
Аноним 06/08/24 Втр 10:49:53 3241974 427
>>3240595
>Они сейчас "переосмысляют" фреймворк и делают совершенно новую 3-ю версию (короче. как с котлином 2 история)
Набрать студентов и пытаться ими делать языки, компиляторы и флагманские проекты. Такая шиза, что даже руководитель выгорел и ударился в психологию.
Аноним 06/08/24 Втр 10:51:59 3241978 428
>>3238783
Давайте уже решим, что языки в которых нету многопоточного программирования - это детские/несерьезные языки. Ну не все пишут круды.
Аноним 06/08/24 Втр 10:55:34 3241984 429
>>3241167
Бизнесу срать на твой юношеский максимализм, главное что теперь реально визуал выглядит везде одинаково, а не как раньше.
Аноним 06/08/24 Втр 11:00:29 3241995 430
9000.png 299Кб, 1250x1250
1250x1250
5.png 231Кб, 1250x1250
1250x1250
888.png 253Кб, 1200x1200
1200x1200
>>3241587
Да и новое лого говно, автор не умеет в градиент, тупо несемтричный около красный кончик.

И маскот спиздили у шиза с котом я тот шиз старых тредов
Аноним 06/08/24 Втр 11:29:44 3242029 431
>>3241974
Так и есть, так и есть...
Жаль, что из-за этого помер Wasabi :(
P.s. wasabi это был веб фреймворк для котлина, но потом они решили (заставили) объединиться с командой котлина ради ктора
Аноним 06/08/24 Втр 13:09:36 3242155 432
>>3242029
>(заставили)
Поподробнее пожалуйста. это же драма, на двачах любят обсасывать драмы
Аноним 06/08/24 Втр 14:47:35 3242253 433
>>3232901
Неожиданно нормальное интервью, спб.
Аноним 06/08/24 Втр 15:22:03 3242274 434
>HarmonyOS
Как бы так не вышло, что мы не стали бы писать все на тайпскрипте.
Аноним 06/08/24 Втр 15:51:02 3242298 435
>>3242274
У китайцев же свой язык вроде нативный будет для этого. Но то, что ts поддерживается - это кал конечно, и кринж
Аноним 06/08/24 Втр 16:42:24 3242335 436
Аноним 06/08/24 Втр 16:57:27 3242348 437
>>3241970
Оп треда это безработный джавист и поэтому сделал такую плохую картинку?
Аноним 06/08/24 Втр 16:58:44 3242350 438
>>3241995
Красный кончик это отсылка на джаву
Охохоххо, шутка
Аноним 06/08/24 Втр 17:04:09 3242354 439
>>3242348
Он взял лого с гугла, не зная что лого обновилось давно потому что весь его кругозор это Немчинский и он кинул трольную картинку про npe, которая, якобы, вертит на одном месте все победы котлина с наллами реально редкая херня и котленист такое бы не кинул даже в знак самоиронии
Аноним 06/08/24 Втр 17:05:12 3242355 440
>>3242350
Типа все еще не отмылся??
Аноним 06/08/24 Втр 17:08:13 3242357 441
>>3242155
Я не знаю истории, но достаточно популярные фреймворки типо wasabi и еще один (я забыл название, но помню, что там было около 3 к звезд) закрыли т.к. пришел ктор и правдой/неправдой заставили пахать над ктором.
Что в итоге? Ктор баганный, ишью не фиксятся будто бы (одно почили, другое сломали и всё в рамках одного проблемного места) и называют себя "прогрессивным веб фреймворком".
Недавно вот искал баг с тем, что не работает post запрос. В тоннах логов и импортов я все же нашел ошибку - ошибка была в том, что идея по умолчанию импортировала iternal апи POST, а не открытую. Как ты понимаешь, анончик, это НИГДЕ (насколько помню) НЕ БЫЛО указано. Там был простой путь импорта, но он отличался от импорта Get. Я скопировал импорт Get и заменил Get на Post. Я минут 40 баг искал, пока не понял.
Еще была проблема с сериализацией через kotlinx.serialization, но это уже другая история...
Аноним 06/08/24 Втр 17:13:22 3242364 442
>>3242357
Кстати, вообще не понимаю, нахрена они пытаются в хттп клиенты. Там уже есть свои фавориты в лице okhttp и прочих
Аноним 06/08/24 Втр 17:14:45 3242367 443
>>3242335
Опа, СЮДА
Всем до связи, я пошел искать китайского счастья
Аноним 06/08/24 Втр 18:25:11 3242453 444
3F3F3F3F3F3F3F3[...].jpg 26Кб, 500x313
500x313
Маскот Аноним 06/08/24 Втр 18:51:12 3242493 445
d68b0ba99f612a3[...].jpg 110Кб, 780x926
780x926
Зачем этому языку нужен маскот? Где он вообще появляется? Где они используют? Единственный пример который мне помнится это слон у пхп.
Аноним 06/08/24 Втр 18:59:21 3242507 446
>>3242493
Нарисуй rule34 с ним, я хз
Аноним 06/08/24 Втр 20:29:42 3242620 447
>>3242493
Потому что у жид брейнса на каждого кнопкодава по 10 маркетолухов отсюда и все брендинги, лого и маскоты
Аноним 06/08/24 Втр 20:57:24 3242668 448
>>3241960
>С хера он взлетел?
вижу все больше и больше вакух на го, его уже не остановить
>Котлин нейтив больше про разработку на айфоне.
Это свифт
>Чудо, если появиться свой прокси язык, аля котлин
Это кстати было бы интересно, сделать котлин бэкэнд для го, компилить котлин в го
Аноним 06/08/24 Втр 21:04:17 3242687 449
>>3242668
>Это кстати было бы интересно, сделать котлин бэкэнд для го, компилить котлин в го
Ты ебанутый?
Аноним 07/08/24 Срд 01:24:12 3242806 450
Аноним 07/08/24 Срд 06:24:52 3242868 451
>>3242668
>сделать котлин бэкэнд для го, компилить котлин в го
Ты не поверишь, такие фантазии были, но у го не только кривой дизайн языка, там и рантайм наглухо неповоротливый.

>вижу все больше и больше вакух на го, его уже не остановить
Языку овер 10 лет, а ты все вкатух видишь. То что ты под кроватью там находишь у себя никак на общую статистику не влияет, а микросервисы завтра могут переписываться на что угодно, нулевой капитал кода.
Аноним 07/08/24 Срд 11:03:08 3243004 452
>>3242687
>>3242806
Что не так? На Го больше работы и продуктов чем на этом игрушечном языке
Аноним 07/08/24 Срд 11:14:08 3243018 453
>>3243004
Игрушечный язык это питон
Аноним 07/08/24 Срд 11:38:48 3243039 454
>>3243004
А знаешь на каком языке ещё больше работы? На джаве.
Угадай во что компилируется котлин.
Нахуя его в го компилить, если можно сразу на го писать?
Аноним 07/08/24 Срд 12:47:01 3243094 455
>>3243004
У котлина своя ниша уже занята и это андройд, на рынке жвм бэкенд это спринг. Нахера им переписывать компилятор и писать новый (который будет транслировать в go)? Они сколько лет пытались внедрить код котлина спринг, а теперь из-за соевых дауничей захотят сменить/добавить новый способ написания бэкенда? Ей богу, они даже сейчас иногда тупят люто с компилятором в жвм, им еще натив поддерживать и котлин/жс. Если ты настолько конченный и дрочишь на циферки, ну бери котлин/натив, там вообще прямой доступ к памяти есть и можно связывать код с плюсами и растом.

Еали для тебя синтаксис = уровень "игрушечности" языка, то ты просто маленький идиот, который даже банальную оптимизацию не нюхал.

Кстати, работы на джаве достаточно, просто требуется либо опыт, либо офис онли, либо то и другое. Если тебя не взяли на работу, то это не значит, что работы нет вообще.
Аноним 07/08/24 Срд 13:08:55 3243106 456
>>3243004
>Что не так? На Го больше работы и продуктов чем на этом игрушечном языке
Как раз на питоне работы больше.
Аноним 07/08/24 Срд 14:34:46 3243167 457
17117162869081.jpg 492Кб, 960x914
960x914
>>3242354
И в чём этот мем не прав?
Аноним 07/08/24 Срд 19:06:00 3243432 458
Kodee Аноним 07/08/24 Срд 19:09:43 3243436 459
image.png 1653Кб, 900x844
900x844
image.png 92Кб, 168x300
168x300
Вы меня встретите на #KotlinConf, а потом я пойду играть в ролевые игры с дуалинго в костюме #Klee.
Аноним 08/08/24 Чтв 01:27:30 3243615 460
1000024810.png 36Кб, 257x238
257x238
>>3243436
Они даже костюм костыль но мделали
Аноним 08/08/24 Чтв 06:18:08 3243639 461
Анчоусы, а чего, есть какие-то слитые курсы, книги? Хочу учить Котлин 2
Аноним 08/08/24 Чтв 07:13:11 3243658 462
>>3243639
Зачем? Бери ютуб и учи или ты уже перешёл на рутуб? Тогда сочувствую.
Аноним 08/08/24 Чтв 08:32:01 3243667 463
>>3243658
Жду ссылку на норм курс по Котлин 2. На рутуб еще не ступил ногой, но уже в говне
Аноним 08/08/24 Чтв 09:09:36 3243677 464
>>3243667
>Жду ссылку
Ну ищи. Я не чатжпт.
Аноним 08/08/24 Чтв 09:59:22 3243708 465
image.png 167Кб, 1901x875
1901x875
image.png 119Кб, 1906x655
1906x655
>>3243639
Ставишь сортировку по сидам и смотришь что люди раздают.
Если в ангельский умеешь, то вообще проблем не будет, тонна инфы включая офф мануалы.
Аноним 08/08/24 Чтв 12:48:53 3243851 466
>>3243708
Анон, что за ресурс?
Аноним 08/08/24 Чтв 13:13:13 3243864 467
>>3243851
ты 2006 года рождения?
Аноним 08/08/24 Чтв 13:16:59 3243867 468
>>3243864
2003
Если это рутрекер, то кто этим говном пользуется, когда есть «Тапочек»
Аноним 08/08/24 Чтв 13:30:00 3243877 469
Аноним 08/08/24 Чтв 13:33:09 3243881 470
>>3243867
Я только рутрекером пользуюсь, когда фильм скачать в супер-дупер 4к вместо 720 в ваших интернетах или adobe от KpoJIuKа самое то. Чем рутрекер плох?
Аноним 08/08/24 Чтв 15:32:28 3243945 471
Аноним 08/08/24 Чтв 15:33:48 3243947 472
>>3243881
Не знаю, я больше тапочкам доверяю. Раньше так вообще закрытая регистрация там была. Щас вроде как рутрекер стали
Аноним 08/08/24 Чтв 16:26:47 3244001 473
https://www.youtube.com/watch?v=MWw1jcwPK3Q

Почему Version Catalogs нет как в андроид студио для котлин проектов в intellij idea?
Долбаёб из андроид треда который утверждает что всё есть сразу нахуй иди.
Аноним 08/08/24 Чтв 20:14:46 3244147 474
>>3244001
Просто еще не добавили поддержку этого в идею.
Можешь сам сделать это, просто в папку с градлом сделай файл libs.versions.toml (вроде так) и все будет как в андройде
Аноним 08/08/24 Чтв 21:31:02 3244192 475
>>3244147
>Просто еще не добавили поддержку этого в идею.
Они походу это в плагин андроид запихали чтобы он генерил именно в version catalogs.
Аноним 08/08/24 Чтв 22:44:14 3244255 476
>>3244192
Возможно. Просто захардкодили, а динамически подключать либы в визарде в файл зависимостей от проекта (ну там спринг проект, ктор проект) еще не научились.
Аноним 08/08/24 Чтв 23:18:57 3244279 477
А как в котлине работать с mapstruct? Пробовал как в Java, в результате, проект не собирается с ошибкой, что не найдена реализация интерфейса маппера.
Аноним 09/08/24 Птн 03:19:39 3244326 478
Аноним 09/08/24 Птн 09:28:47 3244409 479
Есть String Templates и конкатация через плюс, зачем котлин вообще поддерживает конкатацию через плюс?
val message = "Привет, меня зовут " + name + ", мне " + age + " лет"
val message = "Привет, меня зовут $name, мне $age лет"

Если второй сопосб круче то зачем оставляют первый?
чтобы делать так?
val message = "Привет, меня зовут" +
" $name, мне $age лет"


А почему он просто не может просто так сделать

val message = "Привет, меня зовут
$name, мне $age лет"

Очень странные решения, я не понимаю, дублирование функционала
Аноним 12/08/24 Пнд 06:56:56 3246865 480
Аноны, а старые курсы (2021-2022) подойдут для вката или нужно дрочить что-то новое в мире курсов?
Аноним 12/08/24 Пнд 06:58:02 3246866 481
P.S. хочу вкатиться не столько для работы, сколько для себя. Чтобы хуячить ботов или чет на ведроиде
Аноним 12/08/24 Пнд 07:57:32 3246874 482
Есть String Templates и конкатация через плюс, зачем котлин вообще поддерживает конкатацию через плюс?
val message = "Привет, меня зовут " + name + ", мне " + age + " лет"
val message = "Привет, меня зовут $name, мне $age лет"

Если второй сопосб круче то зачем оставляют первый?
чтобы делать так?
val message = "Привет, меня зовут" +
" $name, мне $age лет"


А почему он просто не может просто так сделать

val message = "Привет, меня зовут
$name, мне $age лет"

Очень странные решения, я не понимаю, дублирование функционала
Аноним 12/08/24 Пнд 07:58:51 3246875 483
>>3246865
Ты думаешь тут хоть кто-то смотрел курсы, а не читал документацию?
Аноним 12/08/24 Пнд 08:37:28 3246886 484
>>3246875
90% смотрели курсы, 5% купили курсы за 50к+ и 5% смотрели документацию
Аноним 12/08/24 Пнд 08:48:07 3246889 485
Вопрос в том, стоит ли смотреть старый материал или нет
Аноним 12/08/24 Пнд 09:42:49 3246909 486
>>3246889
Ну глянь. А вот по андроиду старый не советую. Там постоянно что-то меняют. Вот смотришь видео по старому курсу, а этот метод уже зачеркнут и deprecated помечен. Или в самой ide что-то меняется. Чем свежее тем лучше.
Бамп бамп Аноним 12/08/24 Пнд 11:23:06 3246996 487
17212417263830.mp4 727Кб, 576x1024, 00:00:05
576x1024
Есть String Templates и конкатация через плюс, зачем котлин вообще поддерживает конкатацию через плюс?
val message = "Привет, меня зовут " + name + ", мне " + age + " лет"
val message = "Привет, меня зовут $name, мне $age лет"

Если второй сопосб круче то зачем оставляют первый?
чтобы делать так?
val message = "Привет, меня зовут" +
" $name, мне $age лет"


А почему он просто не может просто так сделать

val message = "Привет, меня зовут
$name, мне $age лет"

Очень странные решения, я не понимаю, дублирование функционала
Аноним 12/08/24 Пнд 12:12:36 3247047 488
image.png 627Кб, 493x830
493x830
Коллеги, жизненно?
Аноним 12/08/24 Пнд 12:13:29 3247051 489
Аноним 12/08/24 Пнд 13:21:30 3247132 490
>>3247051
Даже моя туалетная бумага полезнее чем твой ответ. Ой, точнее, оно по жизни полезнее чем ты весь
Аноним 12/08/24 Пнд 13:23:19 3247137 491
1000034382.mp4 2574Кб, 720x960, 00:00:14
720x960
>>3247047
Коллега, жизненно? Это обычные девушки котлин программиста.
Аноним 12/08/24 Пнд 13:25:30 3247139 492
>>3247051
🐓 с андроид треда, ты? Узнал тебя, хорошие у тебя отцы.
Аноним 12/08/24 Пнд 13:46:09 3247164 493
>>3246996
Раньше в бйткоде джавы метод через + был такой:
Создать строку "Привет, меня зовут"
Создать новую строку с "Привет, меня зовут name"
Опять создать строку с "Примет, меня зовут name, мне"
И т.д.

Стрингбилдер позволял не пересоздавать, а дополнять уже существующие строки.
В котлине же, для скуфов оставили варианты и через +, и через стпингбилдер, но под капотом все равно будет стрингбилдер.

Вариант через $ вроде как сразу генерирует строку со значениями и там под капотом просто строка.
Понятно Аноним 12/08/24 Пнд 13:55:57 3247176 494
1000035337.png 475Кб, 1024x1280
1024x1280
>>3247164
Понятно
Ну это как кнопочные телефон которые называют бабушкафоны.
Аноним 12/08/24 Пнд 14:44:32 3247224 495
>>3246996
Если то же самое, то почему ide подсвечивает сложение строк и советует через ${} делать? Они шизы?
Аноним 12/08/24 Пнд 14:46:15 3247227 496
>>3247137
Ахаха, добро пожаловать в наш тред, уважаемый шиз.
Кем работаешь?
Аноним 12/08/24 Пнд 14:54:16 3247232 497
>>3247224
Есть некоторые спорные моменты в их философии языка.
Аноним 12/08/24 Пнд 15:04:35 3247252 498
>>3247224
Если это значение, которое уже по умолчанию имеет то значение, которое тебе надо, то пишем через $.
Пример:
val age = 10
println("I'm $age years old")

Если это значение. которое имеет какие-то доп. херню для норм значения, то надо писать через ${}.
Пример:
object AgeRest {
const val age = 10
}

println("i'm ${AgeRest.age} years old")
Аноним 12/08/24 Пнд 15:06:33 3247258 499
Вроде тут одни сеньеры-наносеки 500к, а такие тупые вопросы задают....
Аноним 12/08/24 Пнд 15:11:39 3247262 500
>>3247258
ты путаешь с /b разделом
Перекат Аноним 12/08/24 Пнд 15:12:23 3247264 501
Аноним 12/08/24 Пнд 15:14:23 3247266 502
>>3247132
Не рвись, вкатунец)
Аноним 12/08/24 Пнд 18:37:15 3247462 503
>>3247252
я вообще не об этом...
Я про то, что под капотом сложение через + и вставка через $ делается одинаково через string builder, если не ошибаюсь. Но ide подсвечивает, когда ты пытаешься складывать, и просит поправить.
Аноним 12/08/24 Пнд 18:37:58 3247463 504
Аноним 12/08/24 Пнд 23:10:25 3247636 505
>>3246996
Хорошо, продолжайте наблюдение. Мы с вами свяжемся.
Аноним 13/08/24 Втр 15:51:13 3248161 506
>>3247047
Были такие ощущения. Допили бы они скрипты, было бы интересною
Аноним 13/08/24 Втр 16:04:25 3248179 507
Котлин стали куесосить, это радует. Старые мои треды просто протухали, если я ложил болт.
Кидайте новости и контент, аноны, безработных вкатунов на шарпах не кормите. после того как жаба получили свои шарпы, с синтаксисом на порядок круче, у них какая-то истерика пошла, хотя мы не пересекаемся вообще, хотя я не против юнити на котле
Аноним 25/08/24 Вск 02:57:09 3255919 508
>>3246865
В андроид разработке с 99% вероятностью, ты уже не запустишь скрипт который скачал с гитхаба без правок. Основы можешь по книженциям и курсам и понять, но по факту это мусор. Только документация + свежий отсортированный по времени stackoverflow.
Настройки X
Ответить в тред X
15000
Добавить файл/ctrl-v
Стикеры X
Избранное / Топ тредов