Kotlin #2 /kotlin/ 3105288 В конец треда | Веб
Вся разработка на котлин, кроме андроид и 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
изображение.png397 Кб, 900x900
2 3105760
>>105288 (OP)

>+Современный синтаксис (реально удобный).


>+Совместимость со всей jvm инфраструктурой.


>+Возможность писать статический DSL прямо на самом языке.


>+Удобные лямбды и наличие простых функции.


>+Удобный тулинг в том числе и на бесплатной IDE (комьюнити версии)


>+Возможность нативной сборки, сборки в js, андроид и ios.


>+Корутины


+Вендорлок от жыдбрейнс
+Работает поверх джавы, можно легко пересесть с игрушечного языка на нормальный
3 3105868
>>105760
Почему джавист плачет за маской, но текст вроде как за джаву? Шизофазия профдеформация у джавистов?
4 3105911
Шарп.
16578132809960.jpg266 Кб, 720x1096
5 3106029
>>105911
Зачем он нужен, когда запретили вижуал студио? Нугет еще не забанен?
6 3106042
>>106029
Так и идею точно также запретили
7 3106044
>>105868

>Почему джавист плачет за маской


Это котлинодебил нацепил маску своего сахара поверх джавы
8 3106072
>>106044
Но на картинке джавист притворяется котлом, переделывай картинку, а то засмеют
sage 9 3106076
>>105288 (OP)

>Современный синтаксис (реально удобный).


Groovy.

>Совместимость со всей jvm инфраструктурой.


Groovy.

>DSL прямо на самом языке


Groovy.

>Удобные лямбды


Groovy.

>Удобный тулинг в том числе и на бесплатной IDE


Groovy.

>Возможность нативной сборки


GraalVM.

>сборки в js


ClojureScript.

>андроид и ios


Flutter.
>>105760

>Вендорлок


Это окончательно перечёркивает всё перечисленное автором.
image.png668 Кб, 640x582
10 3106077
>>106076

>Groovy


>Groovy


>Groovy


>Groovy


>Groovy

11 3106132
>>106072

>Но на картинке джавист притворяется котлом


Вот, начинает доходить потихоньку. Вы по сути те же джависты, только синтаксический сахар поверх прикрутили, гордо именуя крутым языком, волосы покрасили и тыквенный раф пить начали, но основная суть не изменилась
12 3106196
>>105288 (OP)

>котлин


Как-бы нахуй не нужен. Тем более елизаров и жемеров свалили, а поддержка в IDE не дотягивает и даже до сотой части того, что предлагает джава плагин в IDEA. Был бум котлина где-то 2-3 года назад и даже в сбере (сбербучую, кста) писали что-то на котле, но ныне все переписали на последнюю джэву, т.к. там уже есть все нужные фитчи и не нужно ебаться с корутинами, которые все равно почти никто не умеет правильно готовить
13 3106236
>>106076
>>105760

> вендорлок


На их оф. сайте написано, что это опен-соурс под лицензией Apache 2.0 , разве это не означает, что я могу взять котлин и сделать с ним что захочу? При чем тут жедбрейнс?
show.png2 Кб, 256x50
14 3106242
>>106042
Там у них отладчик проприетарный и прибит гвоздями к обоим visual studio (code). Что как бы намекает на лукавость кроссплатформенной разработки и честного попенсорса
15 3106247
>>106044
Но плачет джавист? Типа, за эти годы он пытался подрожать котлину, но так и остался позади? Или что?

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

Честно не понимаю какой смысл писать на джаве, когда есть котлин, это как писать на вижуал бейсеке вместо шарпа. Или на объектив-си вместо свифта.
16 3106250
>>106076

>Groovy


Динамикодресня.

>Вендорлок


С каких пор удобство стало вендерлоком? Хочешь блокнот - бери блокнот.
17 3106252
>>106196

>все переписали на последнюю джэву


Тоже перешли наконец-то с 7 джавы на 8.
18 3106295
>>106132
Жабаскуф, спок. Тут аргументация даже не нужна, когда от жабы буквально рвотный рефлекс. Не трясись, твой язык морально устарел, гибкие зумеры - синьеры скоро забудут о твоем языке, т.к. все новые проекты пишут на go/c#/kotlin/python/elixir/rust, что угодно, только не джава.
мимо KMP господин
19 3106296
>>106252
Проиграл, жиза
20 3106453
>>106295
Не думаю, что c# кому-то нужен, тоже старое перепичканное говно, где дефолто-стантарт это только либы мс, а вне этого мало кто пишет попенсорсное.

Хотел скачать старую комьюнити версию вижлы для старого ноута чтобы в дороге потыкать, но был послан нахер за 7 винду.
21 3106457
>>106453

> был послан нахер за 7 винду


Ну и правильно, хоть в чем-то шарпомухи базовички
22 3106496
>>106457
Продвигать винду через лок бесплатной ide, верх тупости, такое придумать могли только зумеры.
17117103945910.mp41,6 Мб, mp4,
684x960, 0:08
23 3106508
Устроился джава разработчиком, сегодня давали первую зп, что-то мне у вас в джавовом интерпрайзе не очень понравилось, может на котлин перекатиться?
24 3106584
>>106295

>go/c#/kotlin/python/elixir/rust


Точнее так: go/python/elixir/rust, что угодно, только не JVM и C#.
show.png1 Кб, 256x50
25 3106805
>>106584
Экзотические помои в том числе и раздутый питон.

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

Хера у жабадауна бомбит, если котлин делает его jvm сильнее.
26 3107389
>>106508
Думаешь на котлине полную миску насыпят?
27 3107453
>>106805

>котлин делает его jvm сильнее


На самом деле нет. Это как со скэйлой, которая померла. Но она хотя бы после себя оставила тормозной спарк и кафку. Спарк еще где-то используют, а кафку переписали на джэву, лол
28 3108062
>>106076
Двачую тебя, братишка. Вот прям Groovy реально недооценён. В последнее время его даже принято обсирать почём зря. А он хороший. Как дополнение к Java он прекрасен, да и самостоятельно тоже.
29 3108204
>>106236
Пойди да сделай, потом расскажешь что получилось
30 3109193
>>108062

>В последнее время его даже принято обсирать почём зря. А он хороший.


Потому что динамо дристня уровня ЖС. Но в ЖС это поняли давно и начали делать статическую типизацию. А вот говноедов которые любят груви понять невозможно.
sage 31 3109349
>>109193
Ты же не удивляешься, что кто-то на петухоне хуярит? А Groovy вполне можно компилировать статически при желании, в производительности будет на уровне Java при той же лаконичности.
32 3109512
>>109349
На петухоне писать без типов уже давно дурным тоном считается
33 3109533
>>109512
Тем не менее пишут, еще и в промышленных масштабах
34 3109644
>>109349

>Ты же не удивляешься, что кто-то на петухоне хуярит?


Вопрос не в том, кто и как хуярит, а в best practices. Для фронта сейчас best practices использовать TypeScript, для питона 484.

>А Groovy вполне можно компилировать статически при желании, в производительности будет на уровне Java при той же лаконичности.


И как мне сделать так, чтобы в грейдл скриптах нормально работали подсказки по коду?
35 3110769
>>107453
Какая написана на java + Scala.
image.png13 Кб, 402x138
36 3112106
Так, я чет не понимаю?
Почему идея говорит Redundant 'asSequence' call
Мне говорили, что для последовательных преобразований надо последовательность использовать, которая как stream в жабе работает.
37 3112116
>>112106
А, это потому что groupBy мапу возвращает, там же никак не применить всё за один проход
38 3112267
>>109644

>И как мне сделать так, чтобы в грейдл скриптах нормально работали подсказки по коду?


Явно указывай типы, вот например для тасков и конфигов
39 3112471
>>112267
Почему люди добровольно соглашаются писать на языках с динамической типизацией? Это же прямой путь к багам.
40 3112482
>>112471
это путь к баблу
41 3112493
>>112482
Только потому что какие-то "персонажи" сделали тот или иной язык популярным и теперь тот же питон стандарт в научной среде. Новичок не выбирает на чем ему писать, долго пишет, привыкает что говнокод это норма, что баги это норма, что проще написать самому, чем разобраться в чужом и он начинает это говно ещё другим предлагать ведь раз он ест значит и другим нужно попробовать.
42 3113035
>>112471
Груви - это язык со статической типизацией, ты не можешь переменной присвоить значение другого типа.
Это так же язык с неявной типизацией, так же как и Котлин, где можно все на варах сделать, кроме разве что возвращаемого значения функции.
43 3113052
>>113035
Точнее он "optionally typed", как и джава, как и котлин
Через defы можешь инту присвоить строку, но это все равно что в джаве писать на обджектах, а в котлине на эни.

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

Но если ты явно задаешь тип переменной, то груви так же выдаст тебе ошибку компиляции
44 3113086
>>113052

> пример кода


Жесть, я не думал что такое будет валидно
45 3116275
>>113086

>Жесть, я не думал что такое будет валидно


Нормальный код. Просто подставь туда, более осмысленный тип:

CharSequence name = "Duke";
name= new StringBuilder(name);
System.out.println(name);
46 3116359
>>113086
Полиморфизм, все наследуются от одного родителя и к нему могут быть приведены.
У котлина есть еще специальный нижний по наследованию тип, там есть кейсы, но без гугла не вспомню.
47 3116414
>>116359
Да, но выглядит прям не очень. Как будто пайтон.
48 3116449
>>116414
Ты с обжектом мало что можешь сделать, там хэши и приведение строки и примитивы синхронизации (в котлине выпилили).

Так что причем тут твой петухон, типизация не теряется, не путай полиморфизм с динамикодресней.
49 3116461
>>116449
Ты можешь привести обжект к нормальному типу через перебор

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

Так что я вполне могу представить программу всю написанную на обжектах и будет оно выглядеть на питоновский скрипт
50 3116578
>>116461
Ты проверил на тип и работаешь с ним, динамикодрисни не случилось, а если случиться, то мистер эксепшен тебе объяснит почему ты не развиваешься как программист и путаешь полиморфизм и динамикодресню.

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

Даже если спуститься до уровня твоего интеллекта и попробовать использовать как динамикодресню, то лучше когда есть такая возможность в типизированном языке, чем будет симуляция типов в динамикодресне.
51 3116614
>>116578
Лол, тебе говорили что ты душный?
52 3116622
>>116461
>>116578
Так в питоне ты тоже можешь проверить тип переменной
type(i) is float
type(i) is int
53 3116681
>>116622

>Так в питоне ты тоже можешь проверить тип переменной


Но не можешь ограничить тип переменной. Т.е. в джава/котлин ты говоришь, что тип Iterator и компилятор с рантамом тебе это гарантируют. А в питоне, у тебя только хинты.
54 3116710
>>116622
Там проверка и приведение типа, котлин просто сахарит это место.
Кстати, поймал очень приятных трах на час в питоне, когда по ошибке присвоил в существующую переменную и динамикодрисня вежливо это съела, создав плавающую ошибку.

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

Типизация, даже кривая как в го, будет куда лучше потому, как проверка на этапе компиляции, а не в рантайме, в ветке if'ов, где крашится в лунную ночь, когда цветет сакура.
55 3116806
>>116710
Языки без статической типизации это самотыкающий велосипед, но ведь пишут на них что удивительно. Питон повсюду
56 3117357
>>116806
Писал промышленный код, с phpdoc для типизации (давно еще), все равно заставляли тесты писать и получалось, что ты и в функции чекаешь чтобы лишнее гавно не прошло, потом еще тесты пишешь и тоже по кругу одно и тоже проверяешь и это затрахивает.
Так что можно, но нафиг.
57 3117374
>>117357
Всё правильно делали. Лучше заехать инженера чем потом читать про очередной упавший самолёт
58 3117584
>>117374

>но ведь пишут на них что удивительно. Питон повсюду


Смысл в том, чтобы нормально писать на динамикодрисне, нужно три раза делать одно и тоже. а не про покрытие тестов
59 3129989
Чет тред падает, как только джавадебил срыгнул. Давайте хоть обсудим korge и вообще, может ли существовать геймдев на котлине
60 3130003
так и до обсуждения граальвм можно докатиться
61 3130012
>>130003
Так хоть какой-то пиар языка и (возможно) придут хорошие разрабы и напишут либы... Надеюсь...
62 3130153
>>130012

>придут хорошие разрабы и напишут либы


пишите сами
63 3130156
>>129989

>и вообще, может ли существовать геймдев на котлине


Не только может, но и уже существует
https://github.com/utopia-rise/godot-kotlin-jvm
64 3130234
>>129989
На Kotlin можно же писать для Java ME? Только платформа похоже совсем мертвая.
На Android можно запускать такие игры через эмулятор.
65 3130239
>>129989

> Геймдев на котлине


Без шансов. Уже есть C# для Unity и Blueprints/C++ для Unreal Engine. Остальные движки представлены на рынке в виде нескольких процентов.
66 3130244
>>130239
Да и Unity практически не используется в профессиональном геймдеве. В основном инди разработчиками.
67 3130258
>>130244
Открой любой сайт с вакансиями и обнаружишь, что 60 % это юнити и 35 % это анриал. Потом открой стим дб и отфильтруй игры с 10 000 отзывами по движку и увидишь аналогичные результаты. Игры с 10 000 отзывами это успешно-коммерческие игры.
68 3130341
>>130239
А возможно портировать kotlin на .NET? Или это очень сложно?
image.png1 Мб, 1024x715
69 3130348
70 3130407
>>130341
Да нет, не так уж сложно, но зачем?
71 3130483
>>130341
Ты можешь написать бэкэнд для К2 компилятора, как он есть для LLVM (https://github.com/JetBrains/kotlin/tree/master/kotlin-native) или JS (https://github.com/JetBrains/kotlin/tree/master/js), что я бы сказал сложно, куда сложнее чем просто писать на 2х языках. Но возможно.
72 3130487
>>130341
Но если ты спрашиваешь в разрезе геймдева - учти что в юнити неполный С#, насколько я знаю он не поддерживает некоторые фишки как LINQ например.
Но имхо, если ты идёшь в геймдев, то язык очень сильно теряет значение, в том смысле что тебе все языки геймдева так сильно интегрированы с движками, что это по сути свои отдельные диалекты, где есть правила что и как нужно делать конкретно в этом движке. Так что я бы на переиспользование опыта сильно не рассчитывал.
73 3130841
>>130487
Два чая
show.png1 Кб, 256x50
74 3131630
>>129989
Сам /зк сдох, там топовые темы ели живые, я сам отсюда ливнул, ибо моча трет посты и банит просто от фазы луны, (кстати, особенно в жабо треде). Теперь это раздел двача напоминает шизо-загон из 1,5 инвалида пытающиеся вечно вкатиться.

мимо оп первого треда
75 3131635
>>130239
Шарп там на правах скрипта не боле, есть плагины и на котлин, просто вкатываться, возможно, будет проблемно, а так без разницы чем апи дергать, там вообще древний дотнет и шарп.
76 3131638
>>130341
Был проект, один раз затух, потом возродили вроде, но кажется что затух снова.
Первая ссылка в гугле
https://discuss.kotlinlang.org/t/kotlin-for-net/12801

Смысла в этом не очень много, но шарп выглядит уже на фоне котлина древним куском говна
77 3131744
Ну постите сюда либы интересные типа Arrow, я хз.
78 3132251
>>131744
Ну я недавно нашел https://github.com/anilbeesetti/nextlib библиотеку. Подключает ffmpeg к андройдовскому media 3. Очень удобно, теперь можно не искать, как бы hevc запускать на андройде
79 3132344
>>132251
И какой вес у этой зависимости?
80 3132346
>>132251
Also, зачем тебе h.265? Чем не устраивает h.264?
81 3132365
>>132346
Я накачал тонну видосов, а 98% из них в hevc....
Надо сделать свой плеер под это дело т.к. надо еще доп.инфу выводить.
Вес хз, пока не смотрел. Тупо нашел, завтра смотреть буду и тыкаться
82 3132486
>>132365
Я думал, что они обратно совместимы с h.264. Просто не забывай про размер, а то мы также всякого добавили в ЛИБУ, а потом нервно убирали когда заказчик захо ел размер дистрибутива в 10 раз меньше
83 3132550
>>132486
К сожалению, нет, не совместимы. А про размер спасибо, совсем забыл про это
84 3133348
Доброй ночи, коллеги-красноглазики. Какой опыт работы с Ktor-server у вас? Хотелось бы послушать байки, да с какими багами вы столкнулись во время перехода со spring
85 3133391
>>105288 (OP)
Котлин кал, настолько лаконичен, что просто нахуй нечитаем
86 3133515
>>133391
Пример в студию
87 3133884
>>133348
Там вроде обертка над нетти, ничего проблемного не ожидается.
По гига-чад тестам не так все быстро, но зато даже сорцы нетти читаемы (оч давно в это долбился, никакого говно-магического бинаря, а если читаемо, то все гибко).
show.png256x50
88 3133889
Кто-нибудь игрался с вебассембле на котле? Что там на нем есть, какие впечатления?
хотел говноигрушку для браузера сделать, дергать DOM как-то напрягает
89 3135027
>>133889
Таблетки пей
90 3136012
Как на Котлине обстоят дела с фрилансом?
91 3136559
>>136012
Ты куда звонишь, сынок ебаный?
Какой нахуй фриланс, чел
92 3136567
>>133884
Спасибо, как раз хотел начать пилить свой стартап.
А то, что он не blazing fast пофиг. Лучше стабильность и читаемость, чем выжигать глаза об rust/c++.
93 3136620
>>136012
Разве что Андроид.

Ну и в целом - вы заебали! На беке Котлин это Джава + вируальные потоки + МНОГО САХАРА. Любой нормальные джава разраб справится.
94 3136685
>>136012
Ты лучше проси как дела в целом с работой
95 3136763
>>136685
Ну и как дела с работой в целом?
96 3137261
>>136763
Всё плохо, котлин только в андроид разработке нужен, а там вкат закрылся ещё в 2023
97 3137607
>>137261
"Вкат закоылся", типо, для косакеров с курсов от СкиллКокса или для любых, не мидлов?
98 3139462
>>137607
Что мидлам и сенькам делать в мобильной разработке? Они гребут сотыги в банках.
99 3139487
>>139462
А банкам, мобильные приложения конечно же не нужны.
image.png150 Кб, 800x467
100 3144895
Не сдох еще этот ваш Котлин? Не понимаю, зачем он нужен.
101 3145015
Делаю приложение для телефонов на складе. Старая приложуха написана коллегами на киви(из питухона в апк). Производительность хромает, ну и обновление многочисленных зависимостей сборочницы это особый адок. Переезжаем на котлин+компоуз. Сразу появились подводные камни:
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, это я понял. Нужна аналитика по тому насколько одни способы хранения данные эффективнее других, и какие объекты, в частности канвасы, в байткоде быстрее исполняются.
16741239950070.jpg186 Кб, 604x604
102 3145016
Делаю приложение для телефонов на складе. Старая приложуха написана коллегами на киви(из питухона в апк). Производительность хромает, ну и обновление многочисленных зависимостей сборочницы это особый адок. Переезжаем на котлин+компоуз. Сразу появились подводные камни:
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, это я понял. Нужна аналитика по тому насколько одни способы хранения данные эффективнее других, и какие объекты, в частности канвасы, в байткоде быстрее исполняются.
103 3145067
>>145015
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
104 3145226
>>145067

>Coil


Какая годная штука!

>UIState и Флоу


В виду простоты приложения использую более простой подход. Сделал простой класс для навигации и имею функцию, которая через when вызывает конкретный экран/функцию. Данные у меня не мутабельные, и хранятся вне компоуза, просто в массиве дата классов. Правда пока решил слепить в кучу класс навигации, название экрана, и placeholder для данных. Это чистый анти-паттерн, от которого многие начнут хмурить брови, но я вам скажу что если вы будете писать по 50+ экранов так как доки завещали, то вы быстро устанете
fun Draw(nav :Navigator, data: Models(), screenTitle: String)
Пока у меня все в одном
fun Draw(meta: MetaClass)
И данные в placeholder я не чищу, а просто перезаписываю на новые когда получаю новый json. Это бизнес логика, требующая быстрой расширяемости при максимально примитивной архитектуре, и чтобы за пару минут объяснить коллегам питонистам свои магические пассы в приложении.

>https://www.youtube.com/@PhilippLackner


Буду смотреть
105 3145330
>>145226
Понятно. Удачи тебе
106 3145970
>>145015

>Пока единственная идея это хранить скаченые пикчи файлами в отдельной папке, и проверять наличие пикчи перед скаичванием по URL.


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

>4) Есть в сети годные гайды как увеличить производительность кода?


Тебе сначала нужно померить где именно производительность страдает, а не вслепую оптимизировать.
Если сеть хромает - и большие списки, логично асинхронно подгружать данные только для тех элементов списка что юзер видит. Ну и пережать картинки на сервере/сделать отдельные превью картинки, чтобы меньше загружать.
а вот это

>val вместо var, object вместо class, Imutable и Stable


в твоём случае ничего не сделает, я вообще не уверен в каком случае это хоть что-то сделает
иммутаблы - так это точно просадка производительности, но наверное все же не на твоих объемах
17118912982720.jpg366 Кб, 811x1068
107 3146678
>>145330
Спасибо! Все что сложнее формошлепства на компоузе не без подводных. Неспешно прощупываю кэширование пикч. Бодался с Койлом пока не обнаружил что начиная с 28 (вроде) сдк http уже не работает, и требуются https ссылки. Койл, самая популярная библиотека по кэшированию пикч из сети котлина, тупо игнорирует неприятное и работает не возвращая ошибки при сетевых ошибках. "Нет файла по адресу в сети, да и хуй с ним", решили разрабы. Аж самописный костыль вкрутить захотелось!

>3145970


>Андроид? Там же у каждого приложения своя база есть, в ней и храни.


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

>нужно померить где именно производительность страдает, а не вслепую оптимизировать.


Пока получилось написать как получилось, плохенько, а потом уже стал урезать избыточную мутабельность и наследование. Как ни странно, увеличение количество классов и их инстансов заметно снижает скорость кода. То же самое можно сказать о стейтах. Обвесил функции @Stable и @Immutable где возможно, но не знаю что поменялось лол.

>иммутаблы - так это точно просадка производительности, но наверное все же не на твоих объемах


Есть данные по иммутаблам? Пока что я нахожу в интернете только инфоциганские методички без бенчмарков или отсылок к докам явамашины. То-есть буквально аргументация "траст ми бро".
108 3146721
>>146678
1. https://android.libhunt.com/coil-alternatives
2. Какой дебил будет грузить картинки в базу данных? Используй кеш приложения (папка data в android) в качестве хранилища и просто храни в бд ссылки на эти самые картинки, лол.
109 3146932
>>146678

>Есть данные по иммутаблам? Пока что я нахожу в интернете только инфоциганские методички без бенчмарков или отсылок к докам явамашины. То-есть буквально аргументация "траст ми бро".


По пробуй в цикле создавать Integer`ы, а потом int`ы, и сравни разницу. Вот Integer`ы как раз иммутабельны. Тут суть не в иммьютаблах как таковых, а в том что они порождают большой поток аллокаций/мусора (но на болшом объеме данных конечно). А это всегда хуже чем не аллоцировать. Но заметно только на сильной нагрузке.

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


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

>Зачем тогда БД? Чтобы что?


Чтобы кэшировать картинки, ты же этого хочешь? Скачал, сохранил в БД. Потом отобразил. И никакой коил не будет тебе глотать ошибки или требовать https.
https://developer.android.com/develop/ui/compose/graphics/images/loading#disk-loading
110 3146937
>>146678
>>146932
Еще кстати мощная оптимизация, которую ты вероятно с коилом не получишь - упаковать все картинки в 1 файл и скачать разом, обычно это быстрее чем по одной качать (но нужно проверять).
Делаешь архив с превьюшками и архив с нормальными, быстрое качаешь превьюшки, в фоне качаешь нормальные, если долго качается и юзер запрашивает в этом время картинку - подтянуть одну отдельную в фоне. Скорее всего юзер успеет кликнуть максимум на 1-2 картинки пока полный пак не скачается.
111 3146942
>>146678

>Обвесил функции @Stable и @Immutable где возможно


Ты про это?
https://developer.android.com/reference/kotlin/androidx/compose/runtime/Immutable

>The immutability of the class is not validated and is a promise


Это просто подсказка для разрабов и тулов
112 3146977
>>146932
Погоди, в котлине же только ссылочные типы, а примитивные только у джавы, не? Или что ты имеешь ввиду под Integer и int?

Мимопроходил
113 3147167
>>146977
в теории котлин иногда использует примитивные типы под капотом
но это был просто наглядный пример иммутабельности
114 3147399
>>147167
Понял, спвсибо
115 3147541
>>146721
Оказалось что Coil это "Glide у нас дома" (в Котлине). В плане синтаксиса 1 в 1 местами. Еще не подключал глайд к проекту. Папка data не была доступна так как я решил скачивать медиа через DownloadManager, который относительно несложно вкручивается в приложение копипастом, живет отдельной жизнью в системе, не настаивает на https, и в ресурсы приложений доступа не имеет. Это очень странный и тупой инструмент, который подписывается на приложение и живет системе отдельно, сбрасывая медиа в Download (легко посмотреть скаченное из приложения загрузки). Все неплохо, только почему-то файлы виснут в очереди на скачку, а не качаются. Очевидно где-то не проверил настройки сети. От коила и глайда не отказываюсь. Надо же с чем-то сравнивать.
>>146932
БД тема непростая. Знаний у меня в этом мало. Поэтому рискую надолго завязнуть в болоте "просчитался, но где?". Орнул с твоего подхода "прост заведи БД, делов-то на пять минут".
>>146937
Бэкенд с данными не у меня, так что мою идею с упаковкой данных встретили без энтузиазма. Пикчи в основном все по http. Json'ы большие как и запросы из трех джоинов, так что рабочую бизнес логику я не могу поменять. Хочу сделать основу приложения относительно шуструю и расширяемую. А потом уже буду скучать делая 50+ экранов по побразцу, наводя всякую красоту для конечных пользователей.
116 3147589
>>147541
Если ты привык работать с ORM, но тебе чужда Room, то используй Realm.
Выглядит как Exposed, но намного проще и имеются сдк под андройд (exposed еще к проекту подключать минут 10 надо, а тебе так вообще часов 50)
118 3147849
>>147541

>Орнул с твоего подхода "прост заведи БД, делов-то на пять минут".


Ну вообще на уровне записать/считать из одной таблицы данные БД тема очень простая. И не нужно ничего заводить, она есть в каждом Андроид телефоне.
https://developer.android.com/training/data-storage/room

>Json'ы большие как и запросы из трех джоинов, так что рабочую бизнес логику я не могу поменять.


Это я не понял вообще к чему? Что за джейсоны? Что не можешь изменить алгоритм показа картинок?
Ну смотри сам, экономия на спичках тебе сильно много не даст. В любом приложении основные узкие места - это IO, объем передаваемых по сети данных, работа с базой. Чем больше из этого уберешь, тем быстрее будет.
Судя по твоему описанию, проще всего будет на первом старте показывать лоадинг скрин и грузить все картинки в кэш - уж через фреймворки или нет - это тебе видней.
Но если у тебя на бэкэнде скуфы, которым похуй на оптимизацию - это пиздец, тут только сложнее и сложнее кэширование на твоей стороне делать. Кэшировать входищие данные, асинхронно отправлять запросы на бэк, перепосылки, и т.д.
1682553148.jpg296 Кб, 964x768
119 3149477
>>147589
>>147593
>>147849
Ух я постыню накатал конечно
Ты описываешь архитетуру вк или ватсаппа, записывающих в БД гигабайты мусора, которые потом надо в фоне апдейтить, пытаясь хоть как-то сохранить актуальность данных. Да, когда у тебя 2 диалога вк, и через стенку стоит хороший роутер, то все это работает как часы. Я все понимаю, что ты начитался инфоциган на хабре, поставил им лайк, и даже подписался на их телеграмм канал, но не все разработчики вокруг тебя делают мобильные казино и мессенджеры, где с БД только в путь.

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

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

То-есть глобохомо гугл видит идеальное приложение так: на старте в приложении есть только 5 иконок навигации, а остальные 99% процентов приложения скачивается через https в неэффекивную БД написанную индусами, которая по каждому пуку апдейтится чтобы ресурс ссд и внутрення память максимально страдали. В оперативке крутятся только телеметрические зонды, а placeholder для хранения изменяемых данных это в вовсе утерянная технология древних, запрещенная самим гуглом. Так как бд приложения это вечнорастущий файл без бэкапа, то он со временем вероятность словить фейл стремительно растет, и никакой рут не поможет среднему юзеру вытащить свои файлы когда будет краш, так что лох в панике побежит покупать новый телефон, да подписываться на платные облака чтобы больше не терять свои картинки с котиками, еот, или гомониграми (на случай важных переговоров в авточате). Работу с файлами приложенями полностью запретят и назовут опасным антипаттерном.
1682553148.jpg296 Кб, 964x768
119 3149477
>>147589
>>147593
>>147849
Ух я постыню накатал конечно
Ты описываешь архитетуру вк или ватсаппа, записывающих в БД гигабайты мусора, которые потом надо в фоне апдейтить, пытаясь хоть как-то сохранить актуальность данных. Да, когда у тебя 2 диалога вк, и через стенку стоит хороший роутер, то все это работает как часы. Я все понимаю, что ты начитался инфоциган на хабре, поставил им лайк, и даже подписался на их телеграмм канал, но не все разработчики вокруг тебя делают мобильные казино и мессенджеры, где с БД только в путь.

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

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

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

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

>>149477

>Загрузка скаченных в памяти/ассетов файлов это чистокровные костыли от гугла.


Опять же знаешь как правильно - делай как правильно, только зачем тогда за советом приходить?
121 3152494
Возник вопрос про DI. А стоит ли оно того? Думаю игру сделать и вот встрял "нужен ли DI в принципе?". Помимо di реквестирую какую архитектуру/структуру файлов строить (может что новомодное есть)
Мимо мобайл дев
122 3152508
>>152494
В случае игр может иметь смысл. Я не игродел, и больших приложений не делал, но предполагаю что можно делить модули так: логин/юзердата/сессия, оффлайн фичи, онлайн фичи, донат/магазин/оплата. На счет структуры скажу что андроид студио сама тебе сделает дефолтную структуру. В каталоге res (ресурсы) уже есть места куда добавить строковые константы (полезно для локализации), изображения, анимации и шрифты. Еще есть папка ассетов, которая не создается по дефолту в проекте.
123 3152511
>>152494
Хотел спросить пару вещей у мобайл дева:
1) Как из эмулятора АС стучаться в локалку? Не получаю ответ от сервера хоста 10.0.2.2 (апи 34, таргет 24, все сетевые штуки разрешил).
2) Как внутри приложения запускать http сервер чтобы с него брать данные (для теста пока нет нормального сервера)?
3) Почему при скачивании файла обычно возращается его id, по которому мы обращаемся к нему, а вызов напрямую в доках стараются лишний раз не упоминать даже?
124 3152544
>>152511
1. https://developer.android.com/studio/run/emulator-networking TL;DR надо не 10.0.2.2, а 10.0.2.2:<port>
2. Хз, не было такой задачи никогда.
3. Не знаю, но наверное опять с безопасностью проблемы
125 3152559
>>152544
А вообще, я предполагаю, что в андройде сделано для какой-то йоба абстракции и чтобы при смене локации файлов, апи не сломалось.
Ну и как отмечал выше - безопасность тоже.

Андройд слишком сильно завязан на всяких избыточных абстракциях и сильная фрагментация была на ранних этапах
17146380777853.jpg426 Кб, 1920x1080
126 3152564
>>152508
Ну пока идея добавить и сделать слабые связи между ui и service слоем, чтобы можно было быстро фиксить баги, но думаю, что это тупо, не?

Пикча добавлена просто так, не бейте
image.png84 Кб, 800x565
127 3153115
>>152564
Посмотри, здесь описывается архитектура что ты ищешь. Активити+Сервис. В схеме много андроидовских абстракций вызывающих друг друга, и эта лапша из взаимных коллбэков отлично работает на андроиде. Как я понял, сервисы придумали для того чтобы даже после закрытия или краша активити апдейт бд и хитровыебанные запросы на сервер не прерывались неожиданно. Не знаю, три в ряд или мобильную дрочильню с анальной слежкой за сессиями китов ты проектируешь. Очень разные проекты.
https://www.pvsm.ru/android-development/8030
128 3153129
>>153115
О, спасибо, анончик, пойду читать сейчас.
Хочу сделать 2d гача дрочильню с онлайн чатом и боями, вот такие вот дела... Надеюсь продать этот проект кабан-кабанычу и уйти в закат
129 3153183
Есть ли смысл переписать REST сервер 200 строк с питона на котлин? Еще есть вариант на счет го, но синтаксис выглядит как говно.
photo2023-06-1613-40-07.jpg119 Кб, 538x800
130 3153271
>>153129
У меня есть мечта взять старое приложение (chan burauza, для форчана), и скопипастить функционал для ридонли в компоузе. Приложуха старая под старый телефон, и она на новье скорее всего откажется работать.
131 3153392
>>153271
Если хочешь помощи, то конечно помогу
Связь через почту/дискорд?
132 3153410
>>153183
Если хочешь в будущем увеличить сервер, то да.
Ktor/javalin идеально подойдут
133 3153604
>>153183
Странный вопрос - зависит от того чем ты руководствуешься.
Вслепую я бы тоже рекомендовал ктор/джавалин
134 3164234
>>153410
>>153604
Чет-т взглянул на примеры рест апи в котлине и го. В основном их сетевые фреймворки это какая-то утомительная хуйня как паскале, где синтаксического сахара около нуля, и надо всякую типовую ебалу бойлерплейты и роуты прописывать каждый раз. Ненавижу большие бойлерплейты в типовых задачах. На питоне сетевой стек уже тянет на 21 век, уже освоил нормальные декораторы, да еще и разными фреймворками позволяет обмазаться.
1598818341705.jpg347 Кб, 1024x626
135 3164343
В общем, опять выхожу на связь. Еще на той неделе заборол кэширование по 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. Хочется сделать глобальный обработчик по клавишам, и переназначить стрелки, но на компоузе решили не заморачиваться. Придется забыть о планах и ограничиться малым.
136 3164534
>>164234
Не понял, а в питоне роуты ты прописал 1 раз и на всю жизнь?
137 3164554
>>164343

>Затем sleep 300ms чтобы данные точно успели сохраниться


Зачем при такой охуенной синхранизации что-то оптимизировать было? Что значит "данные точно успели сохраниться"?
138 3164592
>>144895
Это какой-то троллинг?
186165540-289afb6a-8def-4c9d-b699-7275f6172606.png11 Кб, 396x295
Сделать котлин презентабельнее 139 3164599
Была проблема парни что в линуксе не было иконки котлина для .kt, а у джавы была, то есть котлин отображался как текстовый документ, не солидно!!!
Я порешал вопрос, в убунту добавили, в поп! ос добавили, в линукс минт добавили, единственное где не удалось мне, это чтобы добавили в Ubuntu Kylin (китайская убунта), потому что там перекати поле в гите. Везде где надо в популярных добавили, моя миссия с иконкой котлина закончена. Самое странное почему это должен был делать именно я? Всем котлинистам было настолько пофиг?
140 3164607
>>164599
Только правда говоря надо ждать пока выйдет минт и поп основанные на 24.04 убунте
141 3164638
Kotlin in Action, Second Edition есть у кого?
KOTLIN 2.0.0 RELEASE 142 3164775
KOTLIN 2 вышел, чекаем полные изменения тут ->
https://kotlinlang.org/docs/whatsnew20.html#smart-cast-improvements
143 3164905
>>164554
Взял много для запаса. Буду понемногу уменьшать во время теста в проде. Надо замерять время обработки запросов при высокой нагрузке, а это еще в будущем
144 3165195
>>164905
Ну вот ты сам и ввел наибольшую проблему, которую тебе предстоит оптимизировать. Даже две в одной - тут тебе и гонка потоков и тормоза уровня лишнего запроса в базу.
145 3165207
>>164775
Как новый компилятор компилировать стал? Шустрее?
146 3165241
>>149477

>At first I was like


>инфоцыгане, гугол, антипаттерны, мусор, архитектура, тонкий клиент, неэффективно!


>>164343

>but then


>коллеги, жду в слипе 300 мс, авось данные придут


чет прямо с подливой кекнул с этого архитектора
147 3165282
>>165207
Не тестил скорость, только фичи некоторые.

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

Кроссплатформенный код тоже удобно сделан теперь, но компоуз пока что не работает с 2.0.0 котлином, ждем ksp 2 и compose 2
148 3165350
>>165241
В проде используются такие костыли и антипатерны (по менению гугла), что ты разочаруешься в человечестве. Лучше предложи свое решение
149 3165357
>>165350
Ну вот аж несколько библиотек советуют
https://stackoverflow.com/questions/59664411/image-caching-in-android
150 3165375
>>165357

>ColdStorage


Спасибо. Описание заинтриговало. Прям та идея которую я описывал. Впервый раз вообще вижу упоминание проекта, да и в гугле около нуля информации кроме гитхаба. Видимо как обычно шиз одиночка написал, возможно даже гениальный шиз. Последний коммит был в 2020, когда компоуз еще у гугла в яйцах плескался, но надеюсь к современому котлину с компоузом получится подключить.
151 3165413
Нашел фреймворк рест котлин похожий на типичный рест фреймворк на питоне. 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, так что смысла в этом фреймворке мало.
152 3165578
>>165413
Если ты про автоматом установку зависимостей, то многие адекватные фреймворки предоставляют визард (или ультимейт идея)

Кстати, выглядит как будто spring
javalin.PNG24 Кб, 572x238
153 3165949
>>165413
Так это стандартная штука, даже спринг такой же. По-моему пик больше похож на питон, хотя у меня на питоне опыт небольшой

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


Ничего не понял, что ты пытаешься сделать?

>>165578

>Кстати, выглядит как будто spring


Естественно, они оба так выглядят
154 3165953
>>165375
Всегда пожалуйста!
17006650954430.png216 Кб, 604x604
155 3166819
>>165949
Красиво. Так я не понял, жавалин в первую очередь для явы делали или для котлина? Почему в гибабе несколько языков? Я, вот, яву только читать умею, и если подавляющее большинство ответов в мануалах и стаковерфлоу будет на яве, то не осилю.

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

>>165578
Не, я о том что питон почти всегда по дефолту предустаовлен. Достаточно запакетировать сервер с зависимостями, и в таком виде распостранять по локалке. Клиент буквально одной командой поставит не вспотев. На го еще пизже, что даже в голый контейнер можно поставить без рантайми (правда язык ГОвно).
156 3167047
>>166819

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


Вообще для Явы , закос под котлиновский ктор. А какое это значение имеет?
157 3167053
>>166819

>Не, я о том что питон почти всегда по дефолту предустаовлен.


На линуксе разве что, на Винде нет. В любом случае ты и джаву одной командой поставить можешь, через вингет или аптгет
158 3167330
>>167047
Ну технически я начинаю теряться когда импортирую ява зависимость и понимаю что не могу сходу сразу сказать, нужно ли создавать nullable переменную/объек или нет. Если бы либа была полностью в котлине, так мы сразу а гайдах написали что тут используем ?. там !!. Соотв буду попадать на null pointer exception по невнимательности.
159 3168812
>>164775
Ничего особенно интересного нет, увы. Просто улучшили то, что есть.
Хотя я хз что нового можно добавить для котлина. Я бы хотел какой-нибудь синтаксис прикольный, который ещё больше позволит сокращать код. Мб функциональщины побольше
160 3169329
>>105288 (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.
image.png330 Кб, 1276x455
162 3169372
Гугл показали новую навигацию. В этот раз выглядит как говно, ну то-есть как обычно. Когда уже будет что-то адекватное в виде:

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() }
}
163 3169423
>>169372
а что поменялось? Я чёт нифига не понял
164 3169520
>>169329
Спасибо за выжимку
Кто посматривает на васм на котлине (можно перевести и озвучить яндекс браузером).
https://www.youtube.com/watch?v=eEjrlctqTF8&list=PLlFc5cFwUnmxt7Pmn3TGELHdVXVMh7JWi&index=10
165 3169889
>>169520
Да не за что.
Думаю делать такую выжимку, когда выходит несколько интересных обновлений и рассказывать общее. Может по ктору и exposed буду пилить т.к. очень интересный стек.
166 3170101
>>169423
Вроде навигацию, лайфсайкл и ресурсы доступны на большем числе платформ (меньше платформозависимых костылей). Правда такое чувство на данный момент на мультиплатформе пишут 3,5 энтузиаста в надежде на скорую декостылизацию. Житбрейнс и Гугл делают ставку на то что те апи что есть на андроид будут работать везде, и им похуй на рефакторинг на данный момент. Целятся в вебе и айос взлететь залететь, но это пока только на слайдах. В чате в телеге почти все мультиплатформеры пишут в связке андроид+пк, и то часто обмениваются костылями для пк.
167 3170107
>>169889

>Пиши, а то такие треды тонут.

168 3170113
>>170101
Я не понимаю этот дрочь к мультиплатформе. Это преподносится как киллерфича, но на деле просто группировка кода и все же?

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

Или там финансирование жестко свернули или кто-то жестко стал пилить бабло. Даже вот этот котлин 2.0, стыдно показывать, ноль реальных технологий, сахара и либ.
image.png71 Кб, 877x398
169 3170114
>>169520
Ну вы там держитесь))
170 3170115
>>170113
Там даже сравнение типа есть, мол флаттер против мультиплатформы. Я так понимаю это рабочий кросс флатер против пустого котлин-нейтив? Или что? Может кто объяснит, реально не в теме.
171 3170117
А можно ли как-то в init-блоке получить поля класса в том же порядке, в котором они вызывались в конструкторе? Звучит как шиза, но ине нужно чтобы data class хранил в себе порядок переданных полей.

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

>>170115
Посмотрел эти дебаты флаттера с котлином. В общем флаттер это огромные всратые портянки кода, благодаря которым можно делать сложнейшие анимации и все что угодно на любой платформе при предсказуемом результате. Котлин локаничен и прост для вката, но красивых анимаций с виджетами и образцовой мультиплатформеностью от него ждать рано. То-есть флаттер это стабильное могучее кровавое легаси, которое могет в любое ебанутое "сделайте так чтобы красиво было", и писать на нем это наверное полный пиздец, а котлин уже сейчас используется для не особо сложных приложений, и только разрастается до размеров флаттера.
174 3170159
>>170101
Ну, будем надеется!

Кстати, Movavi тоже уже перешла к мультиплатформе
175 3170168
>>170113
В мультиплатформе используется обычный компоуз, но специфичная документация находится здесь. Кстати, не вся т.к. большая часть 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) -> // код} это котлиновская версия
176 3170280
>>170120
Я тут использовал некий класс Person, но вообще идея была в том чтобы хранить URL-параметры для API где их порядок важен. Чтобы в одном классе инкапсулировать всю тайпчеки и преобразования и не таскать мапу из функции в функции. Но альтернатив, видимо, нет.
177 3170321
Есть ли смысл учить котлин если не знаешь Java ?
178 3170369
>>170321
Тебе по факту джаву знать на уровне синтаксиса надо, а это 6 часовой курс на ютубе от условного индуса.

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

Почему говорят что в котлине нет подстановочных знаков? Есть же вариативность. Это потому что это как-то концептуально другое или это надо воспринимать буквально что нет знака "?", поэтому wildcard собственно нет.
180 3170708
>>170321
Если у тебя вкат с нуля, то стоит, просто потому что там база си-синтаксиса. А так не нужно, большую часть времени там API либ дергается, ровно как и в котлине и в других языках.
181 3170960
>>170380
А разве это не одно и то же?

Погуглил, посмотрел, вроде одно и то же
182 3170982
>>170321
Стоит в первую очередь учить котлин. А жабакод достаточно подтянуть до уровня "умею читать". Причины:
- чистая ява вызывает непреодолимую тягу писать абстрактными классами, а так же сеттерами и геттерами
- на яве много годных статей, которые не всегда есть в котлине
- в доступе тонны примеров на яве, который можно копипастить в андроид студио, и он будет сам конвертироваться в котлиновский
- знание жабы сейчас нужно только чтобы пройти интервью, а на работе уже будет переписывание на котлин либо поддержка жабы
- на андроид есть библиотеки на яве, которые не портированы на котлин, но достаточно лишь создать экземпляр класса явы не вдаваясь в детали
183 3171046
>>170982

>в доступе тонны примеров на яве,


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

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

Это начинать с нуля не очень, котлин специфичен по синтаксису, все другое будет непривычно. Как и котлин после джавы.
17133441385991.mp47,9 Мб, mp4,
640x360, 6:35
184 3171457
>>170960
Если это действительно одно и тоже, то документацию делал какой-то недалекий красноглазик.
Интересные библиотекифреймворкиETC 185 3172064
Решил бампнуть тред интересными библиотеками для 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.
186 3172111
>>171046

>Ох уж эти легаси примеры


Ты удивишься, но примеры из явы 1.8 до сих пор везде работают, а с тех пор не поменялось примерно нихуя. Буквально копипащу рандомный ответ из стаковерфлоу и жду пока ИДЕ соберет код в котлин. Работает в 90% случаев кроме тех 10% когда надо правильно nullable типы переопределить. Жаба - рай для легаси кодера. Обратка даже пизже чем у дельфи, хотя это тот еще некроязык (там придумали диалекты чтобы ухудшить совместимость кода, чем как обычно навалили себе в штаны в стиле дельфи).
187 3172138
>>172064

>Coil


Насосался с ним, и больше не хочу его трогать даже палкой. Работает как черная коробка, которую почти невозможно отдебажить или проверить на ошибки без прыжков над головой. Не работает в эмуляторе потому что так захотели разрабы. Даже повторного запроса при неудачном подключении и нормального stack trace нет, какой уж там production-ready. Вечная бета. Я просто делаю запрос okhttp3, сохраняю через context и показываю обычным Image, что полностью исключает обосрамсы и позволяет обрабтать любую внештатную ситуацию. Используй такой же костылек, и вернешься к койлу лет через 5-10 когда его допилят.

>PreCompose


Скоро библиотеки с навигацией будут выходить каждый месяц. Опенпосусники обезумели в соревновании кто больше создаст одинаково кривых навигаторов по примеру гугла. Даже я свой навигатор написал (не либа, а стейт + класс навигатор) для внутренних нужд.
188 3172252
>>172138

>precompose



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

При передаче метода, может ли быть вызван метод 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 как всегда
190 3173221
>>173124
Я не понимаю просто, это прикол от разрабов? Я провёл мини тест системы и понял, что запросов не чётко 4 или 3, а вариативно от 3 до 8 где-то. Какого... ну не может же быть это из-за того, что я криво объект сериализации написал и он не работает? Хммм
191 3173294
>>173221
Дебагер запусти и по шагу смотри где у тебя там что много дергается и как.
Я не совсем понял что у тебя за беда.
192 3173299
Это правда, что в котлине асинхронный код тормозит сильно?
Посмотрел тут, цифры что-то печалят.
https://programming-language-benchmarks.vercel.app/problem/http-server
193 3173382
>>173294
Да уже посмотрел. Оказывается, что у меня объект не успевал сериализоваться и тут же шел за "новой" порцией. Зачем? Да хз вообще. Сейчас просто удалил весь код, буду с нуля переписывать. Эх...

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

Ну как пример
javalinhotspots.PNG62 Кб, 1134x355
196 3173709
Как так котляны? Перфтестнул джавалин и в результате четверть процессорного времени ушла про проверку нуллов
оправдывайтесь
197 3173837
>>173709
Ну, есть такое, да. Поделать ничего нельзя, только если gc менять или еще как то шаманить.
198 3174613
>>173709
JVM/CLR будет делать ровно тоже самое, если бы не было проверок то падало рандомно с сигфолтами. Вроде как jit может выпиливать это.
199 3174654
>>174613
Так в том то и дело что это джвм и есть. И без котла она так не делает
200 3174674
>>174654
Откуда тогда VM решает бросить НПЕ когда получает аналл? То есть, там тоже есть проверки. Без проверок сигфолт будет.
201 3174708
>>174674
Вроде там джвм подписывается на событие разыменования нулевого указателя, типа page fault exception.
У всех остальных указателей этой проверки нет
Так что это далеко не одно и то же
202 3174721
>>174708
А какая разница? Ну типа так и так есть где-то под капотом действие, которое определяет что "ты" есть на самом деле (нулл или не нулл).

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

Я не удивлюсь что проверку делает котлин и где-то под копотом еще VM повторяет это.
203 3174724
>>174721
Хотя может я и не прав, просто это фундаментальная проблема. Я не знаю можно ли это сделать бесплатно на системном уровне и почему тогда котлин не решает эту проблему как решает VM
204 3174725
>>174721

>А какая разница?


По перформансу как видишь огромная. Что у тебя проц железом обрабатывает, а что джава функция с ветвлением постоянно вызывается
205 3174745
>>174725
Я хз как там сделано, я к тому, что там под капотом есть оверхед, иначе давно бы стерлась грань между управляемыми и не управляемыми языками, просто ты этот оверхед не видишь в статистике.

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

Не факт даже, что нуллабилити можно сделать проще, даже со своей VM.
206 3175181
>>169329
Забыл дополнить:

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"
206 3175181
>>169329
Забыл дополнить:

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"
207 3175502
>>173709
Забавно что альтернатив нету.

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

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

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

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

Жаба после котлина противна, ну вот я писал и понял что мне бы тут просто не помешал сейчас этот сахар из котлина и везде думаешь как хорошо было бы тут котлин итд, проще котлин взять.
208 3175753
>>175502
О, мощный коупинг пошёл. Чего же тебе в джаббе не хватает, что ты готов к таким падениям производительности?
209 3175784
>>175753
Лично мне в джаве не нравится синтаксис (слегка специфичный, скажем так), что лямбды вне функции нельзя вынести, нет нулл сафети, нет лямбд let, apply, also, нет компоуза, нет удобного дсл

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

Но это не значит, что я вообще не люблю джаву. Я на ней пишу и мне нормально впринципе, просто слегка неудобно. Всё таки котлин сделал своё дело и 98% времени пишу на котлине
Мимо
210 3175792
>>173124
>>173382
>>173394
Обвешай реквест самописными коллбэками и не выполняй вызов повторно пока не получил нормальный ответ. Ожидай до таймаута, либо обвешай все слипами в when до победного, либо крути while с прерыванием до достижения нужного значения каунта. Первый раз реквесты пишешь что-ли? Твой незаурядный план без костылинга не исполнишь.
211 3175805
>>175784

>что лямбды вне функции нельзя вынести


можно же, в поля например записать
212 3175814
>>175753
Как можно зарекаться о производительности, когда вы пишите на срыге? Взяв джаву и срыг, ты буквально поделил где-то на 10-15. да мой сладких, все уже знают
о techempower
2024-04-04 183421-КОМНАТА ОЖИДАНИЯ СМУТЫ - Twitch.png902 Кб, 1661x616
213 3175825
>>175502

>Го это вообще просто звездос


Для меня главным красным флагом в этом языке является то как на хабре пишут о нем в статьях. В стиле сначало было очень неудобно от горячего баттплага, а потом гомосексуализм стал приносить удовольствие, даже не знаю как описать почему полюбил гомогейский синтаксис, в общем стал ценить говно.
214 3175922
>>175814
Ну вот я пишу на джавалине, проблемс?
215 3175924
>>175805
не, я про то, что условный Runnable надо писать так
new Thread(() -> { // code } ), когда как на котлине это
Thread { // code } и никаких скобочек не надо
216 3175928
>>175792
да я вроде всё сделал, теперь не срабатывает ложных вызовов. Я просто сильно удивился, что ктор шлёт запросы БЕСКОНЕЧНОЕ КОЛИЧЕСТВО, пока не сможет получить/сериализовать объект.

Ну как избавился... я надеюсь, что теперь не будет такого. Всё таки ктор это та еще чёрная магия, надо тестить его работу более подробно. В данный момент лень, потом займусь.
Ktor.png745 Кб, 1190x925
217 3182833
Ладно, это не помогло...
https://stackoverflow.com/questions/78200965/android-ktor-client-making-infinite-calls

Ктор просто сломан. Дело даже не движке CIO, а где-то в обёртке.

Прикрил - как ктор чуть сервак не задосил :)
218 3182834
>>182833
Забыл дописать:
Он как бы данные получает, но не отдаёт их какого-то фига и дальше продолжает срать запросами.
219 3182856
>>106132
От джавы да устаешь, хотя немного всего больше года поработал, была бы норм зарпла, но только у с мидлов и синьоров, но не дослужидся еще, у котлиа тоже синтаксис не сильно короткий, чуть лучше джавы, бэк на спринге котловом вроде хорош.
220 3183595
>>182834
Накатай ишью им, я вообще не пойму о чем ты, но скорее всего ты где-то обосрался.
221 3183601
>>182856
Я уже ставлю жирный плюс за отсутствие ;
Я 20 лет работал писарем точки с запятой, мне хватило.
sage 222 3183647
>>183601
Groovy.
223 3183661
>>183595
Пытался сделать запрос к серверу, он начинает срать запросами к серверу, без ведомых на то причин. Есть вероятность, что это и вправду я, но когда тестил со сломанным сериализатором, он отправлял 5-6 запросов и только потом сериализовывал, хотя вся логика сериализации была в одном запросе:
httpClient.get().body<T>
Какого хрена? Хрен знает.
Или может быть, что где-то корутины неправильно написал и они шлют меня нахер. Короче, ищу баги у себя пока, а потом и ишью напищу (пока занят, нет доступа к пк)
224 3184183
>>106805

>Хера у жабадауна бомбит, если котлин делает его jvm сильнее.


Котлин делает джвм тормознее миллионами рантайм проверок на нулл и тормознутыми корутинами
show.png2 Кб, 256x50
225 3184839
>>184183
Джит выпилит все это говно за раз, но тебе эти проверки надо будет писать ручками
Ты вообще видел какая жаба тормозная без прогрева?
226 3184846
>>184839
Это с прогревом
Джит ничего не удаляет
Велкам ту реал ворлд
227 3184847
>>184846
я имею в виду если этот код используется, джит его не удалит
228 3185062
Объясните какой положня у котлина сейчас и чем он лучше джавы?
229 3185171
>>185062
Могу сказать за андройд.

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

Чем лучше джавы?
Есть корутины, которые поддерживаются где-то с 9 джавы.
Есть крутой синтаксис и сам язык обновляется с поддержкой старых версий JDK.
DSL
null safety
экстеншен функции
Компоуз мультиплатформа (это пи... ну хотя-бы можно делать +- несложные программки)
sage 230 3185194
>>185062
Ничем. Его продвижение обусловлено взятками от создателей. Разбирательство уже идёт, попухнут скоро.
image.png42 Кб, 640x640
231 3185199
>>185194
Есть пруфы?
232 3185251
У котлина одна основная проблема -- ему приходится использовать стандартную библиотеку жабы, которая убога до умопомрачения.
233 3185485
>>185251
Это при том, что стандартная библиотека быстрее работает, а не срет миллионом объектов на каждую итерацию как котлиновская
sage 234 3185501
>>185199
Источник надёжный, но проверенный.
235 3185788
>>185251
Я тоже много думал, что если бы jetbrains со старта сделали котлин без jvm параши, только native+js, то сейчас котлин был бы основным конкурентом c# и go (и rust и python), ультимативным языком просто. Но увы.
236 3185833
>>185788
К сожалению, надо было поддерживать кучу андройдовских либ т.к. гугл заплатила за поддержку. Пришлось пилить JVM язык и еще сверху добавили натив, чтоб хоть как то уменьшить бойлерплейт кода (и ускорить/снизить потребление).
JS компиляцию вообще не понимаю, вроде никто из нормальных людей этим не пользуется (или я чего то не знаю?)
image.png5 Кб, 558x66
237 3185837
Я попросил в шапку чтобы нас добавили и вот
238 3185892
>>185788

>Я тоже много думал, что если бы jetbrains со старта сделали котлин без jvm параши, только native+js, то сейчас котлин был бы


... уже мертв лет 10.

Без JVM Котлин никому нахуй не уперся. А у самих JetBrains не хватило бы ресурсов тащить его в одиночку. А еще нет фреймворков и библиотек.
239 3185900
Что-то в шапке старое лого, надо бы фиолетовую новую сделать при перекате
240 3186076
>>185251
>>185788
Ну пусть не использует. JVM не требует джавовской стандартной библиотеки
241 3186218
>>185892
Фреймворки и либы есть у котлина, да только они супер баганные. Ей богу, тот же экспоузет. Я затрахался пытаться ловить его ошибки. То базу не может создать, то не создаёт таблицы, то транзакцию не обработает.
242 3186318
>>185837
Молодца
243 3186693
>>186218

>Фреймворки и либы есть у котлина, да только они супер баганные.


Речь шла о том, что если бы был только Kotlin native+JS, то из библиотек там бы только JS были бы. Все эти DI, ORM, Web фреймворки пришлось бы писать заново. Это та же самая проблема с которой сталкиваются все убийцы С++ - под них нихуя нет, и приходится делать биндинги к С++ библиотекам.

Потому JetBrains абсолютно правильно сделали, что выбрали JVM и сделали интероп с Java. Так они получили хороший рантайм с минимумом усилий, огромное количество библиотек и фреймворков, доступ к самой популярной мобильной ОС.
244 3186785
>>186693
Да, тут согласен, что иначе бы они не выжили.

У жб бы хватило сил сделать либы под жс, ну с натяжкой лютой для Native (одна из таких - Skiko), но вот их качество и количество оставляло бы желать лучшего
245 3187196
>>185837
Давайте вместе найдем импостера на этой картинке.
246 3187262
>>187196
Гоферу неприятно?
247 3187325
>>187262
Я бы сказал, что шарпомухе xd
248 3187370
>>187196
очевидно котлин
17183754894600.png541 Кб, 940x460
249 3191811
Что лично ты сделал для продвижения котлина?
250 3191814
>>191811
абсолютно ничего
но и не мешал же
CSharp.png81 Кб, 800x800
251 3191825
>>191811
Ничего. Come home white man.
252 3191918
>>191811
Пишу в этом треде и делаю гуи либу для вин/мак/линукс.
А ты что сделал?
image.png996 Кб, 940x460
253 3192864
>>191918
микроменеджментил добавление иконок для линукса в ubuntu, pop os, linux mint и попросил на главную двача добавить котлин, впихнул пример для callback в википедии на котлине.
254 3192873
>>192864
Неплохо неплохо.

Кстати, в почему в телеге котлин/андройд чаты НАСТОЛЬКО токсичные? Даже двач /б/ не настолько плох. Сидят там 2 админа-шиза и всех новичков либо банят, либо обсирают за вопросы. Какого хрена...
intellij 255 3192875
Какая разница если я нажму yes или no при автоковертации java -> kotlin?
256 3192877
>>192873
А такие есть? Я там не сижу, я сижу на реддите, сабреддиты ты и сам знаешь, конечно там вахтёры сидят на модератарах в андроид сабе, котлин ещё норм.
257 3193129
>>192877
Да, есть
@KotlinLangRu и @android_ru
Тут сидят одни скуфы-токсики и на твой вопрос (даже достаточно интересный) отвечают с высокой долей ЧСВ и указывания на тебя. как на дебила.
Недавно задавал новичок "как сделать дополнительные кнопки для snackbar", так главные скуфы-гейткиперы сидели и тупо засрали человека, почти прямо сказав, что он дебил.
В чате по котлину другая проблема: туда залетают дебилы и пытаются обсуждать что угодно, кроме котлина. Да и посоздавали кучу тредов и в итоге активность дай бог в треде /coroutines/ и /lang/.

Я всё понимаю, тупой вопрос и такое можно нагуглить, но зачем всё таки оскорблять людей?
258 3193130
Кстати, я тут задумался, а вообще живёт ли проект Kotlin/Native? Насколько имеет смысл переводить проект тихонечко с JNI на K/Native?
259 3193148
>>193129
/Би/тарды
260 3193149
>>193129
Зачем ты там вообще сидишь и как ты нашёл эти чатики?
261 3193618
>>193149
Думал спрашивать специфичные вопросы про андройд и майнкрафт, но ни разу так и не спросил
262 3193646
>>193618
А нашел просто в гугле на тему "чат телеграм котлин и андройд"
image.png87 Кб, 640x248
Convert Java to Kotlin| intellij. What difference does it make if I click yes or no? 263 3193924
Я спросил на реддите и мне ответили "It fixes wrong usage of kotlinized java on call-sites", это как и что они имели в виду?

Кто нибудь может объяснить?
264 3193982
>>193924
Мб именно дело в импортах? Типо у тебя при конвертации кода импортируется стандартные импорты джава кор, а когда весь файл - он старается импортировать котлин кор апи (kotlin.math, file и т.д,)
Screenshot from 2024-06-15 11-05-44.png329 Кб, 580x463
265 3194021
>>193982
Zагадка. Ждём gpt-30 чтобы он ответил.
image.png1,8 Мб, 1200x901
Что пизже нативный readLine или Scanner? 266 3194471
val b = readLine()?.toInt()

import java.util.Scanner;
int b = scanner.nextInt();
267 3194689
>>194471
вот это я вступор впал...

По сути, там разница такая, что ты даже не заметишь, но если интересно, то readln это обёртка над jdk вариантом получения строки от пользователя.
268 3194698
>>194689
а, не ответил на вопрос то.
Лучше readLine т.к. просто проще читается и более понятней с ходу, чем scanner джавы.
2ch.png8,9 Мб, 2871x4771
269 3195474
А у вас нет ощущения, что котлин становиться какой-то поделкой, а не языком?

Новых, действительно хороших (а не поделок для 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.

Не знаю, будет ли кто это читать, но всё же интересно ваше мнение. Заранее спасибо!
270 3195482
>>195474
(Я не андроид разработчик)

Не вижу смысла в котлине когда существует современный сишарп.
271 3195582
>>195482

>Не вижу смысла в котлине


Не вижу смысла во всех языках программирования когда есть язык си. Он не улучшается потому что он и так в совершенстве.
272 3195673
>>195582
вот кстати да, думаю на нём начать писать т.к. задолбало, что всё ломается из-за педиков, которые даже код писать (что уж тут про программирование говорить) без гугла не умеют
273 3195908
>>195474

>я не тестил


Только сейчас осознал ошибку: я не тестил сериализацию/десериализацию других типов, кроме json
274 3195971
>>192873
Когда-то был номерной тред про котлин, оп там накатал пасту на этих шизов и просил избегать этих ТГ загонов. Почему эти каналы еще живы, я хз. Хотя это проблема всех чатов, даже в эпоху irc было окружение ЧСВэшников, которые самоутверждались на залетных, хотя порой там были куда более статусные люди, в отличие от фриков канала.

Избегай чаты. На двачах трудно анонировать на самого себя, поэтому в этом треде гадит только безработный жабист, хотя он скорее вызывает жалость.
275 3195974
>>195971
Ну, постараюсь избегать чтоль, раз такое дело
276 3195979
>>195474
Слушая подкасты, у меня сложилось впечатление, что набрали студентов или лоу-скилл, в том числе и организатора, который не мог организовыать и потом вообще выгорел. Как итог, пришлось вместо развития переписывать компилятор, у которого даже внутренней доки не было.

То есть, не имея ресурсов, они поставили немалые такие цели. Но все же, это лучшее решение на jvm. Долбиться об старинные жабо-шарпы мало приятно.
277 3195982
>>195582
Юношеский максимализм до первого сигфолта, с последующей отладкой на месяцы через дампы памяти. Видали мы таких.
278 3195985
>>195482
Жалко он не выстрелил в опенсорсе и вот снова мягкие что-то стали там мутить. Как сказали в шарп треде - колос на глиняных ногах
Найди уже работу
279 3195992
>>195985

>найди уже работу


Я уже ищу, но пока ничего нет :(
280 3195995
>>195982
Ну, посмотрим.
Если и будет так, то все равно время не будет потрачено зря :D
281 3196667
>>195474
У меня сегодня жопа сгорела когда я осознал что String.also{} это говно без задач. Мне надо было строку баркода по чарам проитерировать, путем пересчета проверить валидность и вычислить контрольную сумму. В also нет индекса. Ну и нахуй оно тогда надло если без индекса хватит in String, а для индекса можно взять массив? В общем взял строку и записал массив. Дальше итерировать, обращаясь к index и value внутри цикла проще простого.

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

Ну эт мое понимание
Мимо автор поста
image.png231 Кб, 956x810
Как доказать, что Kotlin — это больше, чем просто разработка под Android? 283 3197404
Реддиторы - пидоры 284 3197448
Я не хочу спорить с реддиторами ибо там карма пикабушная. Суть такая, почему в котлине мы крутим анонимный класс через объект?

Почему мы не можем сделать картинка 2?
То есть потому что котлин нихуя не лаконичный? Это всё пиздежь. То есть каждый раз писать object : это же бред ебаный? Есть какой-то реальный смысл?
285 3198125
>>197448
Потому что Greeter() попадает под токен вызова функции или создания класса, нужна оверпроверка в таких случаях, а ты потом будешь плакать, что так долго компилиться.
286 3198358
>>198125
Создаём ли мы класс?
Да, анонимный, аргумент не засчитан.
Вызов функции.
Ну тут да, оверпроверка.
287 3199721
>>198358
Создания экземпляра, по типу new MyClass(), в общем, это мега тупо докопаться к одному ключ слову, при этом получишь получишь овер-парсинг и проблемы читаемости.
288 3200973
Когда и почему сдох андроид тред?
289 3201318
>>200973
хрен знает, может мало постили?
если хочешь, то возрождай тред
290 3204460
>>200973
Потому что вкатиться почти нереально, одно из самых сложных для вката. Треды создаются по языкам, а андроид - это более узкий тред с конкретным направлением, и языком, который по сути только там и используютю Плюс /pr сам по себе мертв.
291 3204463
Бтв я один жду fleet, чтоб под андроид писать? Меня от андроид студии уже воротит нахуй, каждую неделю эта параша багуется, тупит, проще уже с нуля написать ide, это невыносимо нахуй
292 3204825
>>204463
Как же я тебя понимаю...
Я не думаю, что флит не будет баговать как релиз ветка АС, но на минимализацию я ОЧЕНЬ СИЛЬНО НАДЕЮСЬ.
Кстати, попробуй макчимально новую (feature drop) ветку у АС, она вроде меньше багует, но будь осторожен, настройки слетают
293 3204826
>>204825
Максимально*
294 3205485
>>204463

>багуется, тупит


Проблема виндаблядей
295 3205517
>>106132
Используется jvm != поверх джавы. Нахуя пилить свой байткод и кодогенераторы для всех архитектур когда есть готовые опенсорсные?
Эпл тожп свой свифт на jvm сделал ну и да, оба говно этот синтаксис с вопросами восклицательнями знаками просто вымораживает, какие то говняные комплитеры вместо корутин, вообще весь около-джава мир это такая дрянь редкостная.

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

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

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

fun test(): Runnable { return Runnable { код функции }
299 3208031
>>197448
Потому что обычные скобки для лямбд сделали. Как компилятору понять когда ты лямбду указываешь, а когда интерфейс реализуешь?
Че, самый умный, блядь? Ну и напиши свой Kotlin.
300 3209702
>>106496
Продвигать ide через лок языка на платной ide, верх тупости, такое придумать могли только зумеры
301 3209838
>>209702
язык программирования Гойтлин от компании Жидбрейнс.
302 3210249
>>209702
Котлин честно кроссплатформенный поверх 100500 опенждк и с бесплатной версией IDE-не прибитой к ос, а шарп колосс на глиняных ногах, как бы ты не маняврировал.

ко ко ко, он попенсорс!, только правда пропретарный отладчик онли для вижлы, хотрелоад работающий на винде, мау на винде, хоть изначально ксамарин был кросс, в общем, даже основной кросс гуи ливнул с открытого фонда, ибо мягкие мутили свою муть.
303 3210319
Ну вот и допизделись, можете отправляться в петушиный угол к шарпистам, чтобы качать с торрентов ide без которой невозможно работать и ебаться с кряками
Жыдбрейнс запретил качать ихнее поделие с российских ip и походу Беларусь тудаже
https://habr.com/ru/news/825756/
304 3210327
>>210319
1. Там речь про ультимейт версию
2. Один хрен нельзя было оплатить подписку
3. 95+% котлин кода - это андройд/кмп.
4. Тред джавы на 4 треда ниже
305 3210527
>>210327

>Там речь про ультимейт версию


Я думаю они со временем пофиксят эту проблему

> Один хрен нельзя было оплатить подписку


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

> 95+% котлин кода - это андройд/кмп.


Студию для Андрюши кто разрабатывает?

>Тред джавы на 4 треда ниже


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

>Студию для Андрюши кто разрабатывает?



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

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



У нас тут своя атмосфера, пьём тыквенный раф и ноем, что жб (гугл) опять что-то сломал из-за своих хотелок.
Жаба девелоперы сидят в своей фауне и ждут, когда же у них обновят версию джавы.
sage 307 3211233
>>209838
Ой-вей, таки да.
>>210319
С ними давно всё стало понятно. Их бложик на русском не обновляется уже третий год. Хотя никакие ссанкции не запрещают писать по-русски, но они выслуживаются и лижут чей-то сапожок. Ради чего?
Вот к чему привело отсутствие политруков в вузах. Не заложили БАЗУ, теперь они пьют соевое молоко и гадят. Хотя могли бы пользоваться положением и лоббировать русские интересы.
В общем, это очередной шаг к отжатию компашки чехами. Продавливают их и не останавливаются.
>>210327

>нельзя было оплатить подписку


Можно было тихо активировать вечную лицензию россиянам. Но нет, блядь, подлянку строят.
Flutter вытеснит всё. Но под смарты лучше писать на C++, чтобы эффективнее было. А то до чего дожили: кнопка принятия звонка отрисовывается по пять секунд и тупит. Сколько звонков уже пропустил из-за этого.
>>210527

>https://youtrack.jetbrains.com/issue/GO-14191


>https://youtrack.jetbrains.com/issue/IDEA-313097/Cant-extract-parameter


Не удивлюсь, если Ефремова занималась вебкамом в прошлом.
А вообще, надо собирать их ебальники, пока не шифруются. Не повредит.
https://всезапомним.рф/company/76-jetbrains.html Кто может выйти на них, сообщите, чтобы добавили информацию о новой подлянке.
image.png68 Кб, 225x225
308 3211315
>>211233
Где вообще джетбрейнс сотрудники? Я вроде читал вот типа русские ребята, но что с ними после 2022 они свалили в чехию или куда там?
Или все эти сотрудники буквально сидят где-то в Санкт-Петербурге подключенные к корпоративному vpn?
309 3211317
>>210319
Даже если посмотреть PKGBUILD, все эти snap, flathub, aur они все исходник то берут с сайта интеллидж. В этом и заключается комедия.
310 3211484
>>196667

>Вообще не понимаю чем with, apply, also, run, let лучше традиционных решений.


Очень удобно когда тебе нужно зачейнить вызовы методов, которые не возвращают сам объект, типа несколько сеттеров. Без них придётся писать какие-то обертки. Ну а тут универсальный и однородный подход вместо кучи разных оберток
311 3211486
>>211315
У них удаленка и офисы в некоторых крупных городах Европы. Мне пару лет назад предлагали Мюнхенский офис.
312 3211489
>>211233

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


Потому что не продают в РФ и уже никогда сюда не вернутся санкции хуй кто отменит да и репутацию подмочили знатно, соответственно нет смысла тратить время сотрудников на это, возможно уволили целый отдел, который занимался документацией на русском языке.

>Вот к чему привело отсутствие политруков в вузах.


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

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


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

>Flutter вытеснит всё.


Не взлетает почему-то, наверное что-то с ним не так

>Но под смарты лучше писать на C++, чтобы эффективнее было.


Эффективнее когда хуяк-хуяк и в продакшен, пока ты там памятью управляешь и макросы пишешь на других языках уже выкатят релизную версию

>А вообще, надо собирать их ебальники, пока не шифруются. Не повредит.


Займись этим если руки чешутся "site:youtrack.jetbrains.com EU sanctions" тысячи таких ответов и почти у всех есть ебальник в linkedin вижу ты прям в бой рвёшься
313 3211492
>>211315

>Я вроде читал вот типа русские ребята, но что с ними после 2022 они свалили в чехию или куда там?


Всех вывезли за границу, а кто не поехал уволили
314 3211493
>>211489

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


Это база к сожалению, обычно time to market решает безумно
316 3212016
Если я хочу заниматься мобильной разработкой, то мне же к вам?
317 3212030
>>207807
Поздравляю, если бы ты хотя бы раз открывал документацию, то для тебя это не было бы секретом
318 3212041
>>212016
Да, удачи тебе этим заниматься.
319 3212042
>>212030
Почему-то ни в одном проекте это не встречал, так что да, я был удивлён
sage 320 3212116
>>105288 (OP)
Нинужон, есть джава 21.
321 3212277
>>212016
Ну как бы не совсем. Есть разные языки для мобильной разработки, чисто одного нет. Например порно игры делают на ренпае
322 3212282
>>211495
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
323 3212301
>>212282
Я думал ты про котлин, ide да все оттуда
https://aur.archlinux.org/cgit/aur.git/tree/PKGBUILD?h=clion#n22
324 3214183
сап, ананасы. подскажите актуальный стек для Котлин Андроид девелопера. везде разное пишут, я ваще хз что из этого правда.
перекатываюсь из Пайтон Бэкенда, по причине того что мобилки больше нравятся
325 3214421
Языкосрач тут: https://2ch.hk/pr/res/2973076.html (М)
326 3214778
>>214421
Там какая-то дедсадовская песочница шарпистов и джавистов
327 3214795
>>214183
Ну что тебе сказать то...
Вот примерно общий список:

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

Редко, но бывают в вакансиях рус/бел компаний:
Firebase, glide, picasso
328 3215941
>>214778
Тогда можно создать отдельный тред для конкретного языкосрача. Ходить троллить по языковым тредам не надо.
329 3217750
Есть книги или Ютуб курсы по корутинам, flow? На Ютубе покрывают 100 там за раз за 10 минут, дока (гайдлайн) не раскрывает некоторых особенностей. Если что, работаю с корутинам уже года два, но хочется на более глубокий уровень копнуть.
330 3218767
>>217750
Плати бабки на юдеми индусам
331 3218801
>>218767
Нашел нормальную книгу в списках в шапке, Kotlin Coroutines Deep dive
332 3219639
Почему тред еще жив...
333 3220288
>>214183
Советую okhttp, coil, compose, ktor, maven, gradle. При найме скорее всего будут мучать явой и спрингом. Вообще не понимаю зачем тебе вкат в андроид. Это очень специфичное направление.

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

Коллеги скуфы буквально утята ИТ: как выучили 1 язык в молодости, влюбились в него, и с тех пор ни одного нового ЯП не учили. В каждом кабинете свой язык в фаворе, как же я проигрываю с сего факта. А мне выучить новый ЯП не сложно, ведь все равно больше трех за год не использую, и это совсем не много.
sage 334 3221740
>>219639
А почему пост без саги?
kotlin developer.png4 Кб, 182x101
335 3222053
336 3224522
Гугл решил перенести разработку из андроид студии в свою IDE - IDX. https://habr.com/ru/news/829462/
Интересно как это скажется на JB
337 3226144
>>212016
не лезь блять дебил сука ебаный
338 3226148
>>214183
не лезь блять дебил сука ебаный
339 3226525
>>224522
Никак почти. Вот представь ты в винде. Есть нативный word, есть веб word. Кто пользуется веб word когда под рукой лежит нативный? Да никто. Веб вордом пользуются лишь те кто на линуксе сидят и им нужна 100% совместимость с word документом.
340 3229229
Компилятор говна поел, нахуй он создает var4?
Я хочу писать гениальный красивый код(и нихуя не понятный), но меня калит, что компилятор не оптимизирует. Надеюсь K2 лучше будет
341 3229956
Есть ли реальные кейсы использования ковариантности и контравариантности? Жэпэтэ кроме собак и кошек ничего высрать не может нормального.
342 3229961
>>229229
Ну так ты не поймёшь чисто смотря в джава код,
смотри в джава-байт-код.
343 3229984
>>229229
Какое же говно на скрине с котлином, вместо понятного создания коллекции я как понял какая-то мапа и понятного принта какая-то ебатория из "выразительного кода". Я помню на руби можно было также изящно и выразительно писать, но зато потом хуй кто прочитает и потому от него в перспективе все массово начали отказываться когда стали поддерживать долгоживущие проекты.
344 3229986
== = ===
equals() = ==

Если в лоб сравнивать синтаусис котлина и джава то это нелогично.
Из какого языка котлин стырил ===?
345 3229987
>>229986
*синтаксис
346 3230218
>>229986
Шиз, спок. В джаве неудобное сравнение было, поэтому в котлин сделали удобно, шоб как у людей
347 3230222
>>229984
Это не мапа, я на рандом хуйнул шизо код, который не имеет смысла.
Насчет читаемости мб ты прав, можно и обычным способом писать.
Это чисто для выебонов, чтоб не писать вот так:
println(Pair(a, setOf(StringBuilder("dsf"))))
Ибо нехуй простым смертным мой код читать
348 3230223
>>230222
Локальные переменные для слабых
349 3230229
>>229956
Ну, я использую для коллекций всех доступных источников и вывода на экран
350 3230314
>>230229
Примеры?
351 3230881
>>230314
Не, у меня уже нету этого в коде.
Я думал, что у меня до сих пор в коде есть это чудо, но оказывается уже переписано на интерфейсы/абстрактные классы для меньшего связывания кода.

Слишком специфичная вещь
image.png467 Кб, 1280x720
352 3230900
Охуел когда узнал что 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
}
image.png467 Кб, 1280x720
352 3230900
Охуел когда узнал что 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
}
image.png467 Кб, 1280x720
353 3230903
Охуел когда узнал что 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
}>>230314
image.png467 Кб, 1280x720
353 3230903
Охуел когда узнал что 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
}>>230314
355 3232906
>>232901
36:27
Забавно, что с использованием
param
.let(::doSomething)
код наоборот читается снизу вверх, а не сверху вниз
356 3233237
>>230903
Этот неуч путает comprise и compose. В словарь не смотрит даже.
357 3233241
>>229986
Groovy. Как всегда. Всё хорошее в петухлине — из Groovy, всё остальное — от дьявола.
358 3233292
Почему для котлина используют componentN для декомпозиции, а не геттреры которые бы вызывались в порядке автогенерирования?
359 3233391
Upd:
>>233292 я на реддите это спросил, а не стал дожидаться ответа двача.
componentN не привязан к дата классу, его можно вызвать и без геттеров. Но зачем нужен код с компанентами без геттеров это уже другой вопрос.
360 3233395
>>233391
Я попросил 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")
}

Какой вывод, то что они имеют похожий функционал это такое совпадение, потому что если смотреть эти особенности по отдельности они разные по функционалу.
360 3233395
>>233391
Я попросил 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")
}

Какой вывод, то что они имеют похожий функционал это такое совпадение, потому что если смотреть эти особенности по отдельности они разные по функционалу.
361 3234045
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) , как я могу сделать так чтобы мои методы подсавлялись?
362 3234114
>>234045
Пхех, вот тебе не насрать?
Компоненты в data классах нужны для деструктуризации, но они не нужны для деструктуризации коллекций, и кортежей.
В данном случае скорее всего берется элемент мапы. Элемент мапы - это Pair из ключа и значения. Как я уже сказал, деструктуризация для кортежей работает без компонентов, так что первое значение Pair подставляется в key, а второе значение Pair подставляется в value.
Как компилятор это определяет я хз, да и пофиг мне
363 3234125
>>234045
Свои методы ты не подставишь так, потому деструктуризация нужна не для методов, а чтоб определенную структуру распихать по значениям в скобках, это просто сахар для удобства.
Это работает для коллекций (a,b,c) = listOf(1,2,3)
Для кортежей (a, b) = 1 to 2
И для дата классов, т.к. у них есть компоненты.
image.png71 Кб, 429x333
364 3234155
>>234125
Понятно, один и тот же вид, а на деле под капотом разные вещи.
Маска это один синтаксис в котлине, остальная часть то что в байткоде.
365 3234291
>>233241
А почему груви не взлетел?
366 3235438
Сап аноны!
Я всегда писал на Java. Сейчас стартуем новый проект. Всё стандартно: spring boot, postgres, Kafka и компания. Руководство говорит, ты техлид тебе и карты в руки. Есть возможность начать делать с нуля на котлин. Отговорите от этого, или наоборот, аргументы за приведите. Я не ради холивара спрашиваю, к котлину нормально отношусь, хочу для себя разобраться, стоит оно или нет.
367 3235883
>>235438
Зависит от того насколько крупный проект.
В идеале чем более однородный тех стак - тем лучше, зоопарки не нужны.
368 3235884
>>234291
Маловато хайпа оказалось.
Почему Kotlin-Native не взлетел, а Go взлетел?
369 3235957
>>235884
Кста хороший вопрос. Я понимаю котлин jvm тормозной для бэка, но native почему не зашел?
Скорее всего котлин никогда не позиционировался как язык для бэкенда. Его рекламят как прикладной язык, более лучшую джаву, и основной язык для android разработки.
370 3235958
>>235438
Хз, на котлин приятнее писать, полная совместимость с жабой. Loom вроде доступен из котлина, я хз зачем на джаве писать, если можно то же самое писать на котлине.
Некоторые шизы скажут, что suspend функции и корутины нинужны, и мб для бэка они действительно нинужны, но ты можешь их просто не использовать, да и тенденция сейчас на котлине писать вместо джавы новые проекты.
371 3235959
>>235958
Серьезно, есть хоть одна причина писать на джаве, а не на котлине, если котлин - более удобная джава, которая может использовать все фишки обоих языков? байткод вроде один и тот же
372 3235960
Кстати там K2 компилятор вышел, дальше будет ещё лучше. Оптимизация, новые фишки хуё-моё, умный каст
373 3235969
Я придрочился в railway программингу на котлине, и теперь я хочу ещё больше функциональщины, вот прям хочется pipeline-ы, где можно подставлять в любое место параметр из предыдущего вызова, и подобные штуки.
Котлин дает немного подышать функциональным стилем, но не даёт вдохнуть свободно, чтоб почувствовать тру fp стиль. А это комбинирование парадигм чисто визуально выглядит некрасиво в коде, так что приходится себя ограничивать, и создавать локальные переменные, как узник старого доброго ооп и императивщины.
Фулл ФП языки конечно я не сильно люблю, мне нравится, когда язык мультипарадигменный - это удобно. Но увы, такие языки не дают всю возможную функциональщину.
Мимо под пивом
374 3235997
>>235959
Да, например:
- Стандартизированный стак, у меня компания стандартизировалась на джаве и спринге
- Техлид не любит котлин, потому что ему 50+ лет
- Вы пишете на джава 5
и т.д.
375 3236018
>>235884

>а Go взлетел?


0. Гугл
1. Простой как мясорубка, можно посадить пхпшника битриксоида после го тура. И то что ты пишешь можно сделать одним способом, никакого сахара только недавно дженерики завезли
2. Компилируется в бинарник, никакой ебли с виртуальными машинами. Закинул артефакт в докер и оно шуршит.
3. Быстрый почти как си, но не нужно ебаться с памятью есть ГЦ.
4. Рост популярности микросервисной архитектуры на смену копролитам. Не нужны все фреймворки, орм и прочая залупа. В гошке их нет ну почти нет но зато есть пиздатая стандартная библиотека, где без лишних зависимостей в пару строчек поднимается сервис.
5. Все из коробки и компилятор и управление зависимостями и форматирование и дохуя всего. Да и вообще по девопсу с ним все легко и просто.

Собственно мне кажется из-за этого он и взлетел
376 3236058
>>236018
Так у тебя по всем пунктам Kotlin-Native проходит
377 3236064
>>236058
Как минимум первые два не подходят и на счет последнего огромный вопрос
378 3236068
>>236064
Ну а кто котлин всем в глотку запихивал? Гугл же, со своим андроидом. Без гугла он бы так и был студенческой поделкой каких-то русских из питера.
image.png1,6 Мб, 1180x730
379 3236070
>>236068
Просто значит у котлина лучше нетворкинг.
380 3236072
>>235997

> Техлид не любит котлин, потому что ему 50+ лет


Просто покажи что есть кнопочка конвертировать с Java на котлин в intellij + можно смотреть байткод который декомпилирован на джава, то есть можно код с джавы гонять и обратно. Так можно изучить котлин по быстрому. И все скрытые автогенерации становятся сразу понятны и предсказуемы.
381 3236079
>>236072
Ты не понял. Он знает, это никак не меняет то, что код у тебя останется на котлине, а не на джаве
382 3236080
>>236079
Ну и что? Через сутки привыкнет к котлину.
Это как пиво или кофе, сначала вкус отвратительный, а потом пьют как воду.
383 3236086
>>236080
Не, это какой-то аргумент каложоров.
Но ему все равно ничего не докажешь.
384 3236089
>>235997
Если легаси, то понятно, что не каждый дед станет переписывать джаву на котлин, особенно если там древняя джава. Такую контору лучше дропать.
Я писал про новые проекты.
385 3236179
>>236086

>аргумент каложоров


Логотип явы это буквально кружка кофе с паром, стоит задуматься.
Screenshot 2024-05-26 at 13.13.50.png23 Кб, 788x97
386 3236620
>>235960
У меня время компиляции на андроид уменьшилось в лучшем случае на 10% с переходом на К2. По-моему какая-то хуета, а не новшевства. Пусть свою хуйню переписывают. И касты ваши нахуй никто не испльзует.

Сейчас жидбрейнс с горящей сракой пилят мультиплатформу в надежде вырваться из андроид загона как будто что-то плохое. Пик буквально я.
387 3236630
>>236018
Невозможно запустить через прокси (squid) на работе, так что
/0
388 3236713
>>236620
Но улучшилось же. Там прикол не только в скорости компиляции.
Офк котлин в основном для андроида, но что плохого остальные платформы развивать? Лишним не будет, один хуй там щас добавлять особо нечего, всё есть уже.
389 3236739
>>236018

>Не нужны все фреймворки, орм и прочая залупа. В гошке их нет


https://github.com/uber-go/fx
https://github.com/google/wire
https://github.com/go-gorm/gorm
https://github.com/gofr-dev/gofr
и кто в этот бред еще верит?
390 3236748
>>236739
Зайди в готред со своим списком, тебе добрых слов скажут
391 3236751
>>236748
заходил, стараются максимально игнорить
392 3236850
>>236751
Потому что не пользуются этим говном
393 3237103
>>236620
Не взлетит, на макоси свой котлин (swift) с глубокой интеграцией в систему, на винде дотнет.
Остается только линукс к которому еще придется изобрести фреймворк с с гуем типа qt.
394 3237109
>>105288 (OP)
Напиздел на собесе, что знаю Kotlin, через неделю выхожу на работу, как быстро познать весь этот сахарок чтобы не спалиться?
Сейчас прохожу бесплатные вводные уроки на hyperskill, есть что-то полезнее?

синьёр пиздабол джавист
395 3237129
>>237109
Открываешь доки по котлину, есть кнопочка конвертировать с Java на котлин в intellij + можно смотреть байткод который декомпилирован на джава, то есть можно код с джавы гонять и обратно. Открываешь gpt-4o, copilot в браузере. Осторожнее на теме variance жпт галюционирует, вот это вообще лучше в нейросетях не спрашивать.
396 3237498
>>237109
просто скажи что ты предпочитаешь писать ясночитаемый код, без сахара
397 3237505
>>237129
Это херня всё, код максимум разве что рабочий, но видно что человек так писать не будет
398 3237634
>>237505
Код гонять сюда-туда нужно чтобы понимать

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

Из котлина в джава
2)Что генерируется под капотом.
Когда именно автогенерит геттер и сеттар, что он генерит при data классах, как выглядит когда при делегировании при ключевом слове by, что делает spread operator при vararg, когда ты декомпилируешь в джава весь этот сахар становится предсказуемым.
399 3238435
>>105288 (OP)
Пиздец попробовал этот кал. Из всех современных языков самый уебищный и писать на нем НЕВОЗМОЖНО. Нахуя эту залупу придумали?
400 3238701
>>238435

>Писать невозможно


Хейтер лямбд итт в треде?
401 3238756
>>238435
Хуя долбоёб, котлин буквально самый удобный и простой среди прикладных языков.
Ты откуда такой, шиз? Приведи пример удобного языка умоляю не говори джава/c#
402 3238783
>>238756
питон
403 3238796
>>238783
Зачем сравнивать объекто-ориентированный язык с процедурным программированием? Я имею в виду про основной стиль программирования, формально эти языки поддерживают другие стили, но это лишь формально.
404 3239946
>>105288 (OP)
Meh, щас бы старое лого для шапки использовать
405 3240335
>>109193
Ты чё-то раскукарекался. На Groovy можно писать (да и все пишут по факту) именно со статической типизацией. Но можно и с динамической. И там это выглядит органично, в отличии от петухона, где эта типизация прикручена через очко и выглядит максимально уёбищно
image.png93 Кб, 1600x800
406 3240406
>>133348
А правда ли, что Ktor не нужен и подлежит забвению? Пишу на Котлин 4 года и ни разу не видел Ktor в глаза (только Spring). Расскажите хоть, надо ли оно или уже нет?
407 3240595
>>240406
На мелких проектах тестил (очень лёгкая логика)

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

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

Впринципе, сейчас писать смысла нет. Они сейчас "переосмысляют" фреймворк и делают совершенно новую 3-ю версию (короче. как с котлином 2 история). Ждём выхода, потом багфиксы и там уже глянем
image.png13 Кб, 128x120
408 3240609
>>240595
Спасибо, бро
409 3240710
>>240609
Не за что <3
410 3240910
>>238783
Два чая этому господину
411 3240911
>>237109
Я поначалу создавал проект на Котлине и копипастил туда код со stackowerflow/perplexity на яве с конвертацией в котлин. Потом читал доку по коду который был перед глазами. Если колеги спросят за твой мув скажи что тебе впадлу бойлерплеты писать, а так ты и сам все это знаешь.
412 3240912
>>236713
Конкретно в юзеркейсе андроид мне ничего кроме нормальной навигации наверное ее никогда не будет и быстрой компиляции не нужно. Вообще больше нет никаких пожеланий. А то что 3,5 романтика едят кактус маргинальной мультиплатформы это буквально капля в море, и попытка влезть на поле, где все уже поделено. Кстати Елизаров обладает талантом с серъезным, как у Мишустина, ебалом оправдывать любые странные решения команды Котлин.
>>237103

>на макоси свой котлин (swift)


>на винде дотнет


>Остается только линукс к которому еще придется изобрести фреймворк с с гуем


Все так.
Стоит отдать должное, красноглазые дегенераты настолько упиваются своими срачами из-за графических либ, что разрабы серъезного софта просто пилят на электроне чтобы не влезать в говно по колено Так что на линукс проще влезть через электрон или jvm.
sage 413 3241101

>что разрабы серъезного софта просто пилят на электроне


Шиз, спокуху оформи)

>нормальной навигации


Никак не привязано к платформе, нормальные решения существуют
414 3241167
>>240912

>Электрон


Он зашкварился, самый главный зашквар это дискорд.
17226636310290.png56 Кб, 1500x720
415 3241499
Надо вообще шапку новую писать, вот фото лого актуального. К примеру ультимейт не имеет смысла писать из-за санкций. Во вторых

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

Придумайте новую шапку и проверьте ссылки на актуальность, не копипастите бездумно
416 3241501
>>241499
Это если что я оп треда, он сюда вроде заглядывает.
Бамплимит тут 500 тредов
417 3241504
>>241501
*Я говорю опу треда
418 3241587
Вместо того чтобы язык нормальный запилить дрочат на брендинг и меняют логотипы. А язык как был неюзабельным гавном так им и остался.
419 3241734
>>241587
Они это в 2021 поменяли, это просто оп взял старую иконку, я не знаю зачем.
17228774342540.png56 Кб, 1500x720
420 3241880
Кстати если просто взять голый компилятор в терминале kotlinc против javac, он будет медленнее немного, почему так?
421 3241913
>>226525
Я постоянно пользуюсь гуглодоками, ибо 100500 машин, а там лежат нужные записи и все унифицировано. я даже верю что они бэкапы делают, в отличия от меня
422 3241923
>>229984
Там все понятно, у нас есть определенная натренированность к привычному нам коду,если гибкости мозгов не хватает, то нужно просто попрактиковать котлин и будет норм.

мимо кодер работающий с дюжиной языков.
423 3241927
>>234291
Динамикодресня. Нельзя делать овермагические языки на динамикодресне, просто лютая магия где даже IDE не поможет.
424 3241949
>>235438
Попиши на котлине, потом на джаве будет казаться моветоном.
Так что определенно да, но ты ириски там смотри, а не двачеров спрашивай.
425 3241960
>>235884
С хера он взлетел?
Котлин нейтив больше про разработку на айфоне.

Го очередно узкая ниша бэк-микропенисов, больше там ничего нет. Чудо, если появиться свой прокси язык, аля котлин или ts, поверх этого позора. Там подводных камней больше чем в js, так что не верь что в него можно вкатиться после го-тура, маркетинговый булшит.
426 3241970
>>239946
Это местный безработный из джава треда, пытается хейтить котлин. Он реально думает, что хейтерством на двачах решает судьбу котлин.
Возможно тяжелая форма нарцисса, увы.
427 3241974
>>240595

>Они сейчас "переосмысляют" фреймворк и делают совершенно новую 3-ю версию (короче. как с котлином 2 история)


Набрать студентов и пытаться ими делать языки, компиляторы и флагманские проекты. Такая шиза, что даже руководитель выгорел и ударился в психологию.
428 3241978
>>238783
Давайте уже решим, что языки в которых нету многопоточного программирования - это детские/несерьезные языки. Ну не все пишут круды.
429 3241984
>>241167
Бизнесу срать на твой юношеский максимализм, главное что теперь реально визуал выглядит везде одинаково, а не как раньше.
430 3241995
>>241587
Да и новое лого говно, автор не умеет в градиент, тупо несемтричный около красный кончик.

И маскот спиздили у шиза с котом я тот шиз старых тредов
431 3242029
>>241974
Так и есть, так и есть...
Жаль, что из-за этого помер Wasabi :(
P.s. wasabi это был веб фреймворк для котлина, но потом они решили (заставили) объединиться с командой котлина ради ктора
432 3242155
>>242029

>(заставили)


Поподробнее пожалуйста. это же драма, на двачах любят обсасывать драмы
433 3242253
>>232901
Неожиданно нормальное интервью, спб.
434 3242274

>HarmonyOS


Как бы так не вышло, что мы не стали бы писать все на тайпскрипте.
435 3242298
>>242274
У китайцев же свой язык вроде нативный будет для этого. Но то, что ts поддерживается - это кал конечно, и кринж
436 3242335
>>242298
Хз, но пока мы писали, уже создался тред здесь
https://2ch.hk/pr/res/3242329.html (М)
А что будет завтра с таким ростом популярности?
437 3242348
>>241970
Оп треда это безработный джавист и поэтому сделал такую плохую картинку?
438 3242350
>>241995
Красный кончик это отсылка на джаву
Охохоххо, шутка
439 3242354
>>242348
Он взял лого с гугла, не зная что лого обновилось давно потому что весь его кругозор это Немчинский и он кинул трольную картинку про npe, которая, якобы, вертит на одном месте все победы котлина с наллами реально редкая херня и котленист такое бы не кинул даже в знак самоиронии
440 3242355
>>242350
Типа все еще не отмылся??
441 3242357
>>242155
Я не знаю истории, но достаточно популярные фреймворки типо wasabi и еще один (я забыл название, но помню, что там было около 3 к звезд) закрыли т.к. пришел ктор и правдой/неправдой заставили пахать над ктором.
Что в итоге? Ктор баганный, ишью не фиксятся будто бы (одно почили, другое сломали и всё в рамках одного проблемного места) и называют себя "прогрессивным веб фреймворком".
Недавно вот искал баг с тем, что не работает post запрос. В тоннах логов и импортов я все же нашел ошибку - ошибка была в том, что идея по умолчанию импортировала iternal апи POST, а не открытую. Как ты понимаешь, анончик, это НИГДЕ (насколько помню) НЕ БЫЛО указано. Там был простой путь импорта, но он отличался от импорта Get. Я скопировал импорт Get и заменил Get на Post. Я минут 40 баг искал, пока не понял.
Еще была проблема с сериализацией через kotlinx.serialization, но это уже другая история...
442 3242364
>>242357
Кстати, вообще не понимаю, нахрена они пытаются в хттп клиенты. Там уже есть свои фавориты в лице okhttp и прочих
443 3242367
>>242335
Опа, СЮДА
Всем до связи, я пошел искать китайского счастья
3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F.jpg26 Кб, 500x313
444 3242453
d68b0ba99f612a38d12dd3481a9c7ca7.jpg110 Кб, 780x926
Маскот 445 3242493
Зачем этому языку нужен маскот? Где он вообще появляется? Где они используют? Единственный пример который мне помнится это слон у пхп.
446 3242507
>>242493
Нарисуй rule34 с ним, я хз
447 3242620
>>242493
Потому что у жид брейнса на каждого кнопкодава по 10 маркетолухов отсюда и все брендинги, лого и маскоты
448 3242668
>>241960

>С хера он взлетел?


вижу все больше и больше вакух на го, его уже не остановить

>Котлин нейтив больше про разработку на айфоне.


Это свифт

>Чудо, если появиться свой прокси язык, аля котлин


Это кстати было бы интересно, сделать котлин бэкэнд для го, компилить котлин в го
449 3242687
>>242668

>Это кстати было бы интересно, сделать котлин бэкэнд для го, компилить котлин в го


Ты ебанутый?
450 3242806
>>242687
Двачую вопрос
451 3242868
>>242668

>сделать котлин бэкэнд для го, компилить котлин в го


Ты не поверишь, такие фантазии были, но у го не только кривой дизайн языка, там и рантайм наглухо неповоротливый.

>вижу все больше и больше вакух на го, его уже не остановить


Языку овер 10 лет, а ты все вкатух видишь. То что ты под кроватью там находишь у себя никак на общую статистику не влияет, а микросервисы завтра могут переписываться на что угодно, нулевой капитал кода.
452 3243004
>>242687
>>242806
Что не так? На Го больше работы и продуктов чем на этом игрушечном языке
453 3243018
>>243004
Игрушечный язык это питон
454 3243039
>>243004
А знаешь на каком языке ещё больше работы? На джаве.
Угадай во что компилируется котлин.
Нахуя его в го компилить, если можно сразу на го писать?
455 3243094
>>243004
У котлина своя ниша уже занята и это андройд, на рынке жвм бэкенд это спринг. Нахера им переписывать компилятор и писать новый (который будет транслировать в go)? Они сколько лет пытались внедрить код котлина спринг, а теперь из-за соевых дауничей захотят сменить/добавить новый способ написания бэкенда? Ей богу, они даже сейчас иногда тупят люто с компилятором в жвм, им еще натив поддерживать и котлин/жс. Если ты настолько конченный и дрочишь на циферки, ну бери котлин/натив, там вообще прямой доступ к памяти есть и можно связывать код с плюсами и растом.

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

Кстати, работы на джаве достаточно, просто требуется либо опыт, либо офис онли, либо то и другое. Если тебя не взяли на работу, то это не значит, что работы нет вообще.
456 3243106
>>243004

>Что не так? На Го больше работы и продуктов чем на этом игрушечном языке


Как раз на питоне работы больше.
17117162869081.jpg492 Кб, 960x914
457 3243167
>>242354
И в чём этот мем не прав?
458 3243432
Еле как нашёл через wayback machine
Предыдущий тред: https://2ch.hk/pr/arch/2024-06-26/res/3038653.html (М)
Kodee 459 3243436
Вы меня встретите на #KotlinConf, а потом я пойду играть в ролевые игры с дуалинго в костюме #Klee.
1000024810.png36 Кб, 257x238
460 3243615
>>243436
Они даже костюм костыль но мделали
461 3243639
Анчоусы, а чего, есть какие-то слитые курсы, книги? Хочу учить Котлин 2
462 3243658
>>243639
Зачем? Бери ютуб и учи или ты уже перешёл на рутуб? Тогда сочувствую.
463 3243667
>>243658
Жду ссылку на норм курс по Котлин 2. На рутуб еще не ступил ногой, но уже в говне
464 3243677
>>243667

>Жду ссылку


Ну ищи. Я не чатжпт.
465 3243708
>>243639
Ставишь сортировку по сидам и смотришь что люди раздают.
Если в ангельский умеешь, то вообще проблем не будет, тонна инфы включая офф мануалы.
466 3243851
>>243708
Анон, что за ресурс?
467 3243864
>>243851
ты 2006 года рождения?
468 3243867
>>243864
2003
Если это рутрекер, то кто этим говном пользуется, когда есть «Тапочек»
469 3243877
>>243851

>Анон, что за ресурс?


https://libgen.st
https://rutracker.net
470 3243881
>>243867
Я только рутрекером пользуюсь, когда фильм скачать в супер-дупер 4к вместо 720 в ваших интернетах или adobe от KpoJIuKа самое то. Чем рутрекер плох?
471 3243945
>>243877
Спасибо, любимый
472 3243947
>>243881
Не знаю, я больше тапочкам доверяю. Раньше так вообще закрытая регистрация там была. Щас вроде как рутрекер стали
473 3244001
https://www.youtube.com/watch?v=MWw1jcwPK3Q

Почему Version Catalogs нет как в андроид студио для котлин проектов в intellij idea?
Долбаёб из андроид треда который утверждает что всё есть сразу нахуй иди.
474 3244147
>>244001
Просто еще не добавили поддержку этого в идею.
Можешь сам сделать это, просто в папку с градлом сделай файл libs.versions.toml (вроде так) и все будет как в андройде
475 3244192
>>244147

>Просто еще не добавили поддержку этого в идею.


Они походу это в плагин андроид запихали чтобы он генерил именно в version catalogs.
476 3244255
>>244192
Возможно. Просто захардкодили, а динамически подключать либы в визарде в файл зависимостей от проекта (ну там спринг проект, ктор проект) еще не научились.
477 3244279
А как в котлине работать с mapstruct? Пробовал как в Java, в результате, проект не собирается с ошибкой, что не найдена реализация интерфейса маппера.
478 3244326
>>244279
У котлина по умолчанию все классы финальны, может дело в этом?

Гайд на мастракт в котлине https://www.baeldung.com/kotlin/mapstruct-data-classes
479 3244409
Есть String Templates и конкатация через плюс, зачем котлин вообще поддерживает конкатацию через плюс?
val message = "Привет, меня зовут " + name + ", мне " + age + " лет"
val message = "Привет, меня зовут $name, мне $age лет"

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

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

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

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

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

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

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

Очень странные решения, я не понимаю, дублирование функционала
483 3246875
>>246865
Ты думаешь тут хоть кто-то смотрел курсы, а не читал документацию?
484 3246886
>>246875
90% смотрели курсы, 5% купили курсы за 50к+ и 5% смотрели документацию
485 3246889
Вопрос в том, стоит ли смотреть старый материал или нет
486 3246909
>>246889
Ну глянь. А вот по андроиду старый не советую. Там постоянно что-то меняют. Вот смотришь видео по старому курсу, а этот метод уже зачеркнут и deprecated помечен. Или в самой ide что-то меняется. Чем свежее тем лучше.
17212417263830.mp4727 Кб, mp4,
576x1024, 0:05
Бамп бамп 487 3246996
Есть String Templates и конкатация через плюс, зачем котлин вообще поддерживает конкатацию через плюс?
val message = "Привет, меня зовут " + name + ", мне " + age + " лет"
val message = "Привет, меня зовут $name, мне $age лет"

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

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

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

Очень странные решения, я не понимаю, дублирование функционала
image.png627 Кб, 493x830
488 3247047
Коллеги, жизненно?
489 3247051
>>246996
Хорош тупить
490 3247132
>>247051
Даже моя туалетная бумага полезнее чем твой ответ. Ой, точнее, оно по жизни полезнее чем ты весь
1000034382.mp42,5 Мб, mp4,
720x960, 0:14
491 3247137
>>247047
Коллега, жизненно? Это обычные девушки котлин программиста.
492 3247139
>>247051
🐓 с андроид треда, ты? Узнал тебя, хорошие у тебя отцы.
493 3247164
>>246996
Раньше в бйткоде джавы метод через + был такой:
Создать строку "Привет, меня зовут"
Создать новую строку с "Привет, меня зовут name"
Опять создать строку с "Примет, меня зовут name, мне"
И т.д.

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

Вариант через $ вроде как сразу генерирует строку со значениями и там под капотом просто строка.
1000035337.png475 Кб, 1024x1280
Понятно 494 3247176
>>247164
Понятно
Ну это как кнопочные телефон которые называют бабушкафоны.
495 3247224
>>246996
Если то же самое, то почему ide подсвечивает сложение строк и советует через ${} делать? Они шизы?
496 3247227
>>247137
Ахаха, добро пожаловать в наш тред, уважаемый шиз.
Кем работаешь?
497 3247232
>>247224
Есть некоторые спорные моменты в их философии языка.
498 3247252
>>247224
Если это значение, которое уже по умолчанию имеет то значение, которое тебе надо, то пишем через $.
Пример:
val age = 10
println("I'm $age years old")

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

println("i'm ${AgeRest.age} years old")
499 3247258
Вроде тут одни сеньеры-наносеки 500к, а такие тупые вопросы задают....
500 3247262
>>247258
ты путаешь с /b разделом
Перекат 501 3247264
502 3247266
>>247132
Не рвись, вкатунец)
503 3247462
>>247252
я вообще не об этом...
Я про то, что под капотом сложение через + и вставка через $ делается одинаково через string builder, если не ошибаюсь. Но ide подсвечивает, когда ты пытаешься складывать, и просит поправить.
504 3247463
>>247258
Лично я нищий джун
505 3247636
>>246996
Хорошо, продолжайте наблюдение. Мы с вами свяжемся.
506 3248161
>>247047
Были такие ощущения. Допили бы они скрипты, было бы интересною
507 3248179
Котлин стали куесосить, это радует. Старые мои треды просто протухали, если я ложил болт.
Кидайте новости и контент, аноны, безработных вкатунов на шарпах не кормите. после того как жаба получили свои шарпы, с синтаксисом на порядок круче, у них какая-то истерика пошла, хотя мы не пересекаемся вообще, хотя я не против юнити на котле
508 3255919
>>246865
В андроид разработке с 99% вероятностью, ты уже не запустишь скрипт который скачал с гитхаба без правок. Основы можешь по книженциям и курсам и понять, но по факту это мусор. Только документация + свежий отсортированный по времени stackoverflow.
Обновить тред
« /pr/В начало тредаВеб-версияНастройки
/a//b//mu//s//vg/Все доски

Скачать тред только с превьюс превью и прикрепленными файлами

Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах.Подробнее