14:02
Sergey Zolotov
есть джава
14:03
Ruslan Ibragimov
После груви на джаве скучно будет 😂
14:03
Anton Arhipov
есть и другие эзотерические поделки
14:04
Sergey Zolotov
щас градл затянет себе котлин вместо грувей. на спринге всякие тулы с груви на котлин переделают. и збс)
14:04
Алексей Жингеровский
да
14:05
Sergey Zolotov
да пох. один хер буду юзать котлин
14:05
Anton Arhipov
ну если чувакам очень нравится, то почему бы нет
14:05
Sergey Zolotov
29% для "ненужного языка" как по мне неплохо
14:06
это можно сказать активная часть сообщества, которая тусит в твиттере и юзает спринг
14:07
Anton Arhipov
пффф.
14:07
я думаю, половина на самом деле не используют спринг, а голосуют просто за свой любимый яп
14:08
Sergey Zolotov
а еще скалисты ж голосовали за джаву 100%
14:10
Ruslan Ibragimov
Я на самом деле не ожидал что будет столько людей за джаву.
16:54
Влад Гаевский
проголосовал за джаву
Roman Pihariev invited Roman Pihariev
Sergey Y. invited Sergey Y.
Сергей Греков invited Сергей Греков
Pavel Onuchin invited Pavel Onuchin
Konstantin Yamshinskiy invited Konstantin Yamshinskiy
20:37
Михаил
че то народу маловато( это наверное нули не вмещаются?
Vadim Kotov invited Vadim Kotov
20:37
Виталий Бендик
Здесь один Руслан на несколько сотен тянет :))
20:38
Vadim Kotov
А что-то у вас лого Котлина старое
20:38
У меня значок с ним есть из 2012 года)
Sasha Tainyuk invited Sasha Tainyuk
20:48
Алина Долгих
Это ж наоборот - молодое
Alexander Chooley invited Alexander Chooley
Andriy Savchenko invited Andriy Savchenko
Vladimir Be invited Vladimir Be
21:16
Ruslan Ibragimov
Откуда столько людей
21:17
Алина Долгих
А мы думали ты позвал
Max Rovkin invited Max Rovkin
21:26
Max Rovkin
Ого как меня встречают
Discipuli invited Discipuli
Evgeny Shishkin invited Evgeny Shishkin
21:54
Sergey Zolotov
👍 привет котлинистам
Alexey Zubkovskiy invited Alexey Zubkovskiy
Andrey T invited Andrey T
Ruslan Mikhalev invited Ruslan Mikhalev
22:23
Ruslan Mikhalev
Быть может отсюда?
22:23
Ruslan Mikhalev
Sergey Zolotov 09.01.2017 18:12:51
22:23
Ruslan Mikhalev
Еще как вариант =)
23:02
Андрей
Да не.
@bendik позвал, поэтому он точно знает откуда
23:02
Алексей Жингеровский
Ну вот, помню времена когда в чате было 5 человек... Сейчас уже не то...
23:03
Sasha Tainyuk
Хуже стало?
23:03
Михаил
А я помню времена когда в чате было 30 человек. Согласен - уже не то
23:03
Алексей Жингеровский
Лучше!
23:05
Михаил
Есть вопрос по котлину с подковыркой)
23:05
Можно ли в котлине изменить val проперти класса?
23:26
Михаил
Или это слишком просто?)
23:29
Ruslan Mikhalev
Ну по сути это final переменная же
23:30
Так что должно быть просто
23:30
Ruslan Ibragimov
Скорее всего речь про геттер
23:31
Ruslan Mikhalev
Не понял.
23:32
Ruslan Mikhalev
val = final переменная + final геттер
23:32
Михаил
val a : Int = 5
get() {
field = 8
return field
}
23:33
Михаил
Ну уровне байткода там просто записывается новое значение в поле
23:35
Андрей
тебе нужно что-то типа джавовского рефлекшена, изменить финальную переменную? Или это в твоем классе должно так работать?
23:36
Михаил
Не. Это реальный пример
23:36
Bahdan
Запилите голосовалку кто откуда - надо знать кого благодарить
23:36
Михаил
Просто такая фича о которой нигде не сказано
23:37
По крайней мере ни на оф сайте ни в Kotlin in action
23:38
Ruslan Mikhalev
По моему контракт это не рарушает
23:39
Михаил
Ну имхо довольно неявная вещь. Вроде final, но оказывается не совсем
23:41
Ruslan Mikhalev
Это же проперти, а ты переопределил геттер
23:42
Разве что нет возможности обойти геттер, как в груви, через @
23:42
Ну раз так в байткоде, то видимо нет
23:52
Виталий Бендик
Об этом писал Артем Зиннатуллин
00:49
Михаил
а есть рефы?
00:49
guga
И первый выпуск подкаста. 😂
00:51
Ruslan Ibragimov
Мне кажется истерика на пустом месте
00:52
Михаил
это не истерика
00:52
Ruslan Ibragimov
Ну тогда было много шума
00:52
Михаил
ничего такого не вижу в этой вещи
00:53
А, уже дали ссылку)
Sergei Kuprin invited Sergei Kuprin
Valeriy Andrikeev invited Valeriy Andrikeev
DigitalKoi Taras invited DigitalKoi Taras
Ilya Gulya invited Ilya Gulya
Vladimir Be removed Vladimir Be
Alexey Sulatskov invited Alexey Sulatskov
Shushper invited Shushper
Alex Okruzhko invited Alex Okruzhko
Sergey Lebedev invited Sergey Lebedev
10:10
Sergey Lebedev
Может кто пошарить Котлин в действии?
10:30
Discipuli
В смысле?
Roman Ismagilov invited Roman Ismagilov
10:37
Ruslan Mikhalev
книжку просит видать
10:38
Алексей Жингеровский
Она не дорого стоит, могу пару глав показать если интересует, для завлечения
10:42
Sergey Zolotov
что есть в книге чего нет в доках?
10:45
Виталий Бендик
Там сплошь и рядом параллели с Java
10:45
А не просто описание синтаксиса
10:46
Ruslan Ibragimov
Я думаю манниг и так главу дает полистать
Andrey Bondarenko invited Andrey Bondarenko
11:01
Discipuli
А какова Ее цена?
11:03
guga
Так это же хорошо, котлин себя и позиционирует как better java.
11:05
Виталий Бендик
Так и я о чём?) Это на вопрос чем отличается от доков)
11:24
1400 со скидкой. Скидка на сайте котлина
Denis Vlasov invited Denis Vlasov
11:27
Discipuli
Где купить не подскажете?
Dmitriy Volkovskiy invited Dmitriy Volkovskiy
Ыгорь Кыо invited Ыгорь Кыо
Constantine invited Constantine
Yoshi Azazzello invited Yoshi Azazzello
17:21
Sergey Zolotov
о набежали тролли
Igor Ramazanov invited Igor Ramazanov
17:24
Ruslan Ibragimov
Скала нужна, только не в этом чате) Давай не будем троллить скалистов.
17:25
dima 💻
Руслан, а джава нужна?
Deleted Account invited Deleted Account
Roman Romanov invited Roman Romanov
Nikolai Mitropolskii invited Nikolai Mitropolskii
Уйкучу @ invited Уйкучу @
Виталий Бендик invited Евгений Асташев
ViTO Rossonero invited ViTO Rossonero
Evgeny Petrikov invited Evgeny Petrikov
18:21
dima 💻
его походу только контакты инвайтить могут
Alexander Stefanenkov invited Alexander Stefanenkov
06:04
Deleted Account
=( блин
06:05
никакизх обсуждений котлина, а я бы просто почитать хотел бы
10:52
Valeriy Andrikeev
Котлин настолько хорош, что ни у кого не вызывает проблем никаких абсолютно. JetBrains надо было писать Android SDK
10:55
Ruslan Mikhalev
Это все потому что он не нужен.
10:58
Sasha Tainyuk
Потому не осилил?))
11:01
Ruslan Mikhalev
Что там осиливать. Микс между упрощенной скалой и упрощенным груви
11:06
Sasha Tainyuk
Ну тогда где аргументы почему не нужен?)
11:08
Nikolai Mitropolskii
Вот груви, пожалуй, действительно не нужен. да
11:09
Ruslan Mikhalev
Какие аргументы? На рынке он невостребован. Потому не нужен. Считается? =)
11:09
Nikolai Mitropolskii
Нуу вакансий по андройду на котлине в целом хватает на самом деле
11:10
Sasha Tainyuk
Версия 1.0 появился безгоду неделя, так что рано что то говорить. Плюс под андроид вполне заходит.
11:16
Ruslan Mikhalev
С андроидом повезло, да. Рантайм котлина очень легкий, против > 5 метров скалы.
11:19
Sasha Tainyuk
Повезло? Не думаю. Адроид для них одно из приоритетных направлений. Так что при разработке это был не последний пункт.
11:23
Sergey Zolotov
те кто кричит "котлин не нужен" это потому что есть скала?
11:23
Nikolai Mitropolskii
Иными словами всё как надо сделали ребята. Рантайм легкий, оверхеда нет, учится легко. Что ещё нужно для счастья?
11:23
Sergey Zolotov
видимо много динамики и фп, и чтобы отличался от всех языков
11:25
Nikolai Mitropolskii
Ну Котлин вроде как ставил своей целью не особо отличаться, а наоборот впитать наиболее удачные идеи + добавить немного приятных фишечек
11:25
Sergey Zolotov
если я хочу взять спринг и хибернейт, а потом возьму скалу - на меня как на идиота будут смотреть
11:25
скала как better java это ж для нубов, нужно постигать дзен ФП
11:26
Nikolai Mitropolskii
Да... в глазах хипстеров плохо будете выглядеть... хотя с хибернейтом вы в любом случае будете плохо выглядеть)))
11:27
Алексей Жингеровский
У меня на работе холивар случился знатный когда заговорил что надо бы уже котлин на андроид тянуть.
11:27
Sergey Zolotov
какие были аргументы против?
11:27
Алексей Жингеровский
жесткие штыки, блин.
Основной поинт - official support from google
11:28
Sergey Zolotov
как этот саппорт должен выглядеть то?
11:28
Nikolai Mitropolskii
И часто вы кидаете гуглу свой код?)
11:28
Sergey Zolotov
ART ведь пофиг на чем у вас код
11:30
Nikolai Mitropolskii
Ну короче реально странный аргумент. Тем более если без Котлина то на андройде сразу становится очень грустно, со всякими этими ретролямбдами...
11:30
К ретролямбдам гугловский суппорт как относится?))
11:34
Valeriy Andrikeev
Гугл сам ретролямбду рекомендует (где то видел в туториалах)
11:35
Sasha Tainyuk
А как он должен к ним относиться?
11:35
Valeriy Andrikeev
А насчёт Котлина, думаю что JetBrains переписав половину IDEA на Котлин врядли его забросит в обозримом будущем
11:36
Так что гугл-саппорт тут не особо нужен
11:36
Max Rovkin
у гугла есть jack который позволяет java 8 без ретролямбды использовать, хотя принцип тот же получается
11:36
Nikolai Mitropolskii
Ну не знаю... также как к Котлину, наверное...
11:36
Алексей Жингеровский
JB не переписал пол идеи на котлин
11:36
Sasha Tainyuk
Вот котлин уже затащили в сдк, биндинг написан уже на котлине.
11:36
Алексей Жингеровский
глянь github
11:37
Sergey Zolotov
был случай в мире пхп, когда на пхп был застой и реально долго развивался, фейсбук плюнул и сделал свой язык на основе пхп, который компилировался и запускался в своей виртуальной машине
потребление памяти и по скорости там почти в 2 раза шустрее чем обычный пхп был. завезли туда статическую типизацию, асинхронность и кучу плюшек которых не хватает в пхп
народ к этому пока присматривался, пхп успел обновиться до мажорной версии с новым движком, где по скорости он не уступает тому что выпустил фейсбук, по фичам тоже начал догонять и в итоге мягко говоря то что сделал ФБ для обычных юзеров стало не нужным... и сейчас как-то даже ФБ подзабросил свою разработку
11:37
Алексей Жингеровский
просто бля, используют React Native который бета-бета в проде а котлин видетили не надёжно, ггг))
11:37
на самом деле просто в вопросе не разобрались, ну и есть может личные причины. Буду продолжать разговаривать
11:38
Nikolai Mitropolskii
Так я не понял, это к тому что Котлин не нужен или что Джава 8 и Скала не нужны?
11:39
Sergey Zolotov
к тому что народ с подозрением относится к котлину, к скале относился. а после скалы мы получили в джаве что? лямбды, стримы и че там еще зашло
11:39
дефолтные методы в интерфейсах
11:40
guga
ну лямбды ещё в 7ке были на слуху
11:40
Sergey Zolotov
вот как вышла джава 8, сказали - нах нам скала)
11:40
guga
а стартовали кажись в 6ке
11:41
Nikolai Mitropolskii
Вот этого я как раз вообще не понимаю. По мне так с точностью до наоборот. Если вы всеравно хотите переходить на это всякое стрим-апи, то чего тогда не взять нормальную Скалу или тот же Котлин.
11:42
Sergey Zolotov
для обычных задач стримов хватает ведь
11:43
Max Rovkin
в котлине они мощней, ведь там можно писать extention func
11:43
Nikolai Mitropolskii
Да блин, когда-то и джава 6 хватало, причем не так давно. Вопрос же в удобстве
11:43
Sergey Zolotov
ну это больше проблема стримов, они хреново расширяются
11:43
Sasha Tainyuk
Вообще, отвечая на изначальный вопрос, то надо идти в слак. Там даже король иногда тусит)
11:43
Max Rovkin
в котлине правда они на зываются не стримами, а как-то по-другому
11:43
guga
вопрос в другом, где потом найти разрабов
11:44
Max Rovkin
нормальный разраб на котлин пересядет за два дня
11:44
Sergey Zolotov
это экстеншен методы для коллекций, не больше
11:44
Nikolai Mitropolskii
Вот тоже неправильный вопрос. Я не уверен что для джава 6/7 разраба перейти на джава 8 со стримами проще чем перейти на Котлин.
11:44
guga
котлин — да, со скалой сложнее
11:45
Я не трогал котлин в проде, но разве там всё так очевидно?
11:45
Max Rovkin
в принципе да
11:46
Ruslan Mikhalev
Да и в скале в принципе тоже, если придерживаться Java-style
11:46
guga
Хм,
@HeapyHop, пришло время паззлеров, паззлеры сами себя не сделают.
11:46
Sergey Zolotov
тонкая эта грань..
11:46
Nikolai Mitropolskii
Да всё более чем очевидно. причем все эти мепы и фильтры на уровне компилятора разворачиваются, в отличии от джава 8 и скалы - где всё это полезет в рантайм
11:47
guga
в другом чатике уже говорил о этом, что нету поддержки нового рантайма, и это не очень хорошо
11:47
А с другой можно ранать на старых рантаймах
11:48
Sergey Zolotov
я наверное чет не понимаю, но ты ж можешь стрим апи юзать на котлине
11:48
Nikolai Mitropolskii
поподроблее пожалуйста. Джава 8 лямбду можно и на котлине написать
11:49
guga
Прошу прощения, я давно смотрел на котлин, где-то год назад, тогда он разворачивал лямбы в обычный класс
11:49
Max Rovkin
это на java 6
11:50
Nikolai Mitropolskii
ну в целом это не очень большая трагедия, если ещё не поправили - то поправят. На клиентский код это вообще никак не влияет
11:50
Max Rovkin
так да, однохерственно на java 6 писали анонимные классы вместо лябмд
11:51
Nikolai Mitropolskii
Так блин на Скале!! (где вообще всё из лямбд) так делали вплоть до середины прошлого года. И ничего... и ещё хрен знает когда большинство проектов перейдет на 2.12
11:52
Ruslan Mikhalev
Столько достаточно? =)
11:53
Max Rovkin
если для андроида это терпимо, где вся подобная шляпа играет роль, то для большой джавы это вообще ерунда
11:53
Nikolai Mitropolskii
Ну молодец. вбросил и народ понабежал)
11:54
Sergey Zolotov
котлин же еще инлайнит местами лямбды?
11:54
всякие map/filter разворачивает как минимум
11:54
Nikolai Mitropolskii
Да. поэтому актуальность обсуждаемого вопроса весьма сомнительна
12:05
Ruslan Ibragimov
Мы уже делали в ЕПАМ пазлеры, и я друзьям показывал. Если человек чуть пописал на котлине, то его тяжело запутать)
12:05
guga
там просто такие же грабли как и в джаве?
12:06
Ruslan Ibragimov
Ну не, там инлайн например
12:13
Nikolai Mitropolskii
Ретюрн в лябдах в котлине - это да, печаль. Вообще надо, наверное, его на уровне компилятора было запретить делат без метки
12:13
Ruslan Ibragimov
Да все там логично обычно)
12:13
Sergey Zolotov
неочевидно сразу просто
12:13
а вообще IDE начнет ругаться сходу
12:13
Ruslan Ibragimov
Просто для тех кто не писал выглядит непонятно
12:14
Sergey Zolotov
потому что сингнатура метода не будет совпадать с тем что возвращаешь из лямбды
12:14
Ruslan Ibragimov
Вот именно, основаная фишка пазлеров на котлине, это то что тебе код на слайдах показывают, а не в idea)
12:14
Nikolai Mitropolskii
Да нихрена - после той же джавы 8 или скалы, в которых ретюрн из лябда возвращает из лябды. То что ретюрн вернет тебя из функции - таки весьма анекспекткд бехевиор
12:18
Михаил
Там есть вполне четкие правила.
12:20
Nikolai Mitropolskii
Я не совмневаюсь что у компилятора есть четкие правила во что компилировать код)) Но как бы мне от этого не легче)
12:21
Михаил
В джаве тоже веселухи хватает. Например тот же switch
12:21
Nikolai Mitropolskii
А что с ним не так? break? ну к этому уже все привыкли со времен Си
12:22
Ruslan Ibragimov
Т.е. ты еще не привык что в лямбда последний стейтмент = ретурн? А ретурн только в инлайн?
12:22
Или в чем там на практике проблема?
12:23
Nikolai Mitropolskii
Ну проблема если я не хочу последний стейтмент, я хочу несколько ретюрнов из лябды в разных местах этой лябды
12:24
Nikolai Mitropolskii
метками?
12:24
Михаил
Да например)
12:24
Nikolai Mitropolskii
Ну блин, это не круто
12:25
не, я не спорю с тем что это решается и обходится, но это коряво, в идеальном языке так не должно быть
12:25
Ruslan Ibragimov
А, понял, тогда тебе просто лямбды не подходят, пиши анонимные функции
12:26
Nikolai Mitropolskii
Это как?
12:26
Ruslan Ibragimov
Вместо лямбды пишешь fun (...
12:27
Ruslan Ibragimov
Я с телефона, не очень удобно писать полноценный пример
12:27
Nikolai Mitropolskii
А, ну блин. джаваскрипт какой-то получится
12:28
Ruslan Ibragimov
Лично мне никогда не приходилось делать return@
12:29
Nikolai Mitropolskii
Ну я на самом деле тоже только один раз делал return@, и вообще мне не нравится эта идея, так как читабельность не ахти с метками
12:30
Sergey Zolotov
анонимные функции юзай да, вроде еще в референсах это было написано
12:31
Nikolai Mitropolskii
Ну блин, реально как в жаваскрипте - функции со стрелками, функции без стрелок. То есть выход есть, но мне не нтавится так
12:32
Михаил
да и насколько это частый кейс?)
12:32
Sergey Zolotov
>One thing missing from the lambda expression syntax presented above is the ability to specify the return type of the function. In most cases, this is unnecessary because the return type can be inferred automatically. However, if you do need to specify it explicitly, you can use an alternative syntax: an anonymous function.
12:33
Nikolai Mitropolskii
Ну не особо. Я не говорю что это прямо боль-боль. Но неприятно, в таком, практически идеальном ЯП
12:34
Roman Pihariev
ребятки, есть наиболее быстрая и юзабельная страта по изучению Kotlin? или референсов на сайте разрабов с головой?
12:34
Sergey Lebedev
Ребят, немного не в тему, но все же:
Ребят вопрос по рх: есть либа, которая слушает определенный протокол, считай есть бас из которого приходят евенты добавился и удалился девайс, в UI нужно отобразить все девайсы доступные в сети, что для этого лучше использовать? Я пришел к Subject<List<Device>>, есть советы?
12:34
Sergey Zolotov
с головой хватает
12:34
Nikolai Mitropolskii
Дока на сайте) там изучать особо нечего. Но вообще ещё книжка есть
12:35
Михаил
есть и еще одна боль. например лямбды не конвертятся в sam интерфейсы, когда sam параметр конструктора
12:35
Roman Pihariev
понял, эспеэсик
12:35
Roman Pihariev
спасибо!
12:37
Михаил
если язык заинтересовал, то имхо лучше потратить денег и купить kotlin in action. отличная книга, покрывает наверно все возможности языка(пока не столкнулся просто с тем что она не покрыла)
12:39
Roman Pihariev
а есть ссылочка со скидончиком каким-нибудь?)
12:40
Deleted Account
непонятно почему книга для котлина не бесплатна
12:41
Roman Pihariev
спасибо!
12:41
Nikolai Mitropolskii
Потому что написать хорошуюк книгу - непростая работа
12:41
Михаил
самый прикол, что эта книга от разрабов котлина))
12:41
Алексей Жингеровский
Это ж не груви пазлеры делать
12:55
>you will get used to using lots and lots of ! characters to override the null checks and allow NPEs to rampage through your systems.
😃
12:55
Deleted Account
поэтому джетбрейнс даст денег автору
12:56
Sergey Zolotov
авторы и так в jb работают
12:56
Nikolai Mitropolskii
А кто даст денег джетбрейс?)
12:56
Deleted Account
но это же им нужно
12:56
чтобы язык популярный был
12:56
вон, свифт книга бесплатна
12:57
Nikolai Mitropolskii
Ну у каждого свой путь популяризации, такими темпами можно ещё и доплачивать начать за использование котлина))
12:57
Sergey Zolotov
это хитрый план как заработать денег на языке 😃
12:57
Nikolai Mitropolskii
вот-вот))
12:57
Deleted Account
я не думаю, что труды окупились
12:58
Nikolai Mitropolskii
Ну частично окупились - лучше чем совсем не окупились)
12:59
Luger Parabellum
непонятно, кто будет книгу покупать. Я удовлетворюсь документацией, ковырянием гитхаба и примеров. Скорее всего, люди с опытом так и поступят. А , допустим, какой-нибудь студент\начинающий вряд ли купит книгу - а привлекать то как раз их и надо.
12:59
Deleted Account
тогда это сомнительно с точки зрения пиара и бух учета
13:00
Artyom
не нужна никакая книга чтобы котлин использовать.
документация отличная, куча примеров.
просто берешь и используешь для задач. для начала можно параллельно с java. и все – бесшовный переход
(юзал почти с первых билдов)
13:00
Deleted Account
это все так говорят,, что достаточно только доки
13:00
Sergey Zolotov
всегда есть открытые исходники еще)
13:00
Deleted Account
но это когда у тебя есть задача и хочешь ее сделать
13:00
Sergey Zolotov
я так в stdlib копался
13:00
Deleted Account
а когда ты такой, типа хочу язык программирования изучить, пока не знаю что делать, лучше книга
13:01
Artyom
если нет задачи, то никакой язык программирования вообще не нужен
13:01
Deleted Account
ну как бы, если ты студент
13:01
Artyom
ну так всё равно надо же придумать что-то – эксперимент, проектик, приложение
13:02
Luger Parabellum
именно этот кейс они и не учли - книга на них впервую очередь должна быть нацелена, но вряд ли студент будет ее покупать. А чувак с опытом ограничиться докой
13:03
Nikita Kononenko
перекатился на котлин с M13 еще под ведроидом. документации хватило вполне, сейчас тоже достаточно => книги не нужны :D
13:03
Deleted Account
ну и плюс есть как бы люди, которым нужно сесть и почитаьь в транспорте
13:03
дока оч плохо читается)
13:25
dima 💻
а тут все в продакшене котлин в основном для дроида юзают?
13:40
Artyom
у меня еще пара веб сервисов на нем и разные утилитки
13:43
Ruslan Ibragimov
Люди пришли с андроид чата, понятно что подавляющее большинство будет именно с ним использовать
13:43
Ilya Gulya
У меня сигнальный сервер для WebRTC ещё на нём
13:46
Igor Ramazanov
у нас бекенд на котлине
13:47
взяли вскоре после релиза
13:47
а релиз по-моему в феврале был
13:48
Ruslan Ibragimov
А какой стек?
13:48
Igor Ramazanov
spark (который веб-сервер, а не скаловский), mongodb
13:48
embedded jetty короче
13:49
бекенд для казуальной игры
13:49
котлин нравится хорошей совместимостью с джавой и простотой поддержки и обучения
13:50
dima 💻
ну это же не из-за того, что вы котлин взяли?😂
13:50
Igor Ramazanov
блин, я просто рассказываю как у нас
13:52
хотя душа наверное к скале, кложе и эрлангу с эликсиром лежит
13:52
просто котлин оказался прагматичным выбором
13:52
кстати есть вопрос один
13:54
если есть стандарт POSIX, который определяет API для системных вызовов, если я правильно понимаю, то почему нельзя переносить приложения между разными UNIX системами, или можно, а я просто не в курсе?
13:54
ведь в конце концов любое приложение строится на абстракции операционной системы, используя ее системные вызовы - открыть файл, сокет и все такое
13:54
ведь если есть стандарт, то и API один и тот же?
13:58
Ruslan Ibragimov
Если у тебя динамическая линковка, то все твои вызовы типо open, malloc, etc. идут через glibc. Это справедливо для большого количества софта. Проблема в том, что есть не совместимые реализации
13:59
Но я не настоящий строитель, так что не верь мне😄
14:02
Igor Ramazanov
спасибо!
14:03
Ruslan Ibragimov
Можно прочитать про BSD системы
14:03
И их совместимость с линуксами
14:32
Deleted Account
Тут про posix
14:34
Ruslan Ibragimov
Ну а glibc это что по твоему
14:39
Deleted Account
Posix разный бывает
14:39
Это же не только библиотека
14:40
Ruslan Ibragimov
Это понятно
14:40
Просто с чем сталкивался, то и рассказал
14:50
Дядька какой-то сказал что писать тесты лучше
14:52
Sergey Zolotov
ну он всего лишь сказал что язык не должен думать за программиста)
14:58
Если вдруг кто-то не записался
14:59
Nikolai Mitropolskii
Анкл Боб прогает на Котлине?
15:00
Ruslan Ibragimov
Как минимум на вебинаре
15:37
Nikolai Mitropolskii
Крутяк
15:48
Sergey Lebedev
Админ, запинь новость, что бы не потерялась
15:50
guga
ну можно было и без пуша, а то испугал меня.
15:51
Ruslan Ibragimov
Сорри, не знал что он еще сообщение отправит
15:57
Алексей Жингеровский
пацаны
15:57
если в котлине класс с primary конструктором, и пару полей с дефолтными значениями, как в java сделать норм апидля этого ?
15:58
что бы котлин добавил конструкторы сам
15:59
Михаил
Вроде только секондари конструкторы.
16:08
Ruslan Ibragimov
Там аннотация есть, которая тебе конструкторов насоздает
16:12
Михаил
она вроде только для методов с дефолтными параметрами работает. или я ошибаюсь?
16:13
Ilya Gulya
А как же для nullable?
16:14
Ilya Gulya
Оверлоады для методов с nullable аргументами
16:14
Ruslan Ibragimov
@java.lang.annotation.Target({ElementType.METHOD, ElementType.CONSTRUCTOR})
16:15
class GetRequestBuilder<T> @JvmOverloads constructor(data: T, test: String = "")
16:15
Михаил
тогда вопрос. эта аннотация работает для праймари конструкторов?
16:16
Ruslan Ibragimov
Забей, джависты привыкли старадать
16:17
guga
👺 а это было обидно
16:17
Ruslan Ibragimov
Правда же
16:18
Зачем портить красивый котлин код, ради тех, кто и такое схавает)
16:19
Т.к. тут много андроидщиков, вот новость: With Mockito 2.6, Mockito tests can now be run on any Android device or emulator. It is activated by including the mockito-android dependency. Mockito works the same when run on Android or on a developer machine. Future releases of mockito-android will be aligned with mockito-core.
16:22
Ruslan Ibragimov
На конструктор аплаится
16:22
Все правильно говоришь
16:22
Алексей Жингеровский
а бля
16:24
Ruslan Ibragimov
Ну так у тебя инспекция сработает что он нахер не нужен, но идея правильная
16:24
Алексей Жингеровский
мне он нужен
16:24
на методы развесил а на класс не вешается, от уже...
16:43
Михаил
может кто подскажет. запилил допустим либу на котлине в intelij. собрал в джарку. но когда подключил jar в студии нажимаю на ctrl+click, чтоб перейти k исходникам, то мне показывает декомпилированный класс файл, а не исходник
16:43
как правильно настроить проект, чтоб исходник показывался?
16:53
Ruslan Ibragimov
когда джарку собираешь, нужно еще сорцы собрать
17:09
Михаил
то есть сорцы рядом с джаркой положить?
17:10
Ruslan Ibragimov
Не уверен что идея поймет
17:10
Но там можно выбрать файл с сорцами вроде можно было
17:11
Или сделать install джарки в mavenLocal
17:11
Для gradle нужен maven плагин
20:52
Nikolai Mitropolskii
Ну ему там всё правильно написали: types are tests!
22:34
Тут подкаст записывается
00:24
Nikolai Mitropolskii
То ли я туплю, то ли... Это нельзя никак записать короче:
annotations.find { it is Resource } as? Resource
?
00:28
Ruslan Ibragimov
.map { it.annotationClass }
00:28
T::class.annotations - это холдеры
00:30
Nikolai Mitropolskii
Не, в annotations уже что надо лежит, вопрос нет ли чего-то вроде скаловского collectFirst чтобы не писать два раза Resource
00:40
Ruslan Ibragimov
.filterIsInstance<Resource>()
.firstOrNull()
00:43
Nikolai Mitropolskii
Ну это лишний список создаст, не айс
00:43
Ruslan Ibragimov
из одного элемента
00:44
на скорость не влияет)
00:44
(автомобильная шутка)
00:44
Discipuli
Кстати, кто-то замечал, что студия не всегда корректно подменяет циклы на эекстеншэны Kotlin
00:44
Nikolai Mitropolskii
Ну да, ладно, и на этом спасибо.
00:45
Ruslan Ibragimov
Я думаю стоит писать в багтрекер
00:46
Nikolai Mitropolskii
Долго думал причем тут вижал студия)) тяжело быть не андройд)
Не, не замечал, очень редко пишу циклы)
00:48
Ruslan Ibragimov
Talking Kotlin #1
00:49
Nikolai Mitropolskii
Крутяк! Спасибо)
00:49
Михаил
ни у кого нету такого бага, что проект сконфигурирован под котлин, но каждый раз при запуске студии вылазит
00:50
Discipuli
Этот дифект не потрит жизнь вовсе
00:52
причем я в слэке отписал по этому поводу. меня просто проигнорили. и судя по поискам в гугле этот баг у них уже больше года тянется
00:52
Discipuli
Народ, как по правильному в Intellij называетс штука умной подстановки и замены блоков кода (если я верно выразился)?
00:52
Ruslan Ibragimov
Live Templates
00:53
Если я правильно понял
00:54
Михаил
а какая задача?
00:54
Discipuli
В смысле?
00:55
Правильно озаглавить issue в баг трекере)
00:55
типа multi select чтоль?
00:56
Nikolai Mitropolskii
А вот, кстатиговоря, нифига. ArrayList резервирут мест на десять элементов
00:56
Виталий Бендик
типа
sout <SPACE> -> System.out.println()
?
00:56
Михаил
если не нравятся помежуточные коллекции, то можно юзать сиквенсы
00:57
Discipuli
Нет, типа у вас есть for().... а вам студия любезно подсказывает заменить его на map()
00:57
Михаил
нов данном случае не надо так)
00:57
Nikolai Mitropolskii
Да вообще ничего не хочу создавать) проще свой экстеншен метод написать... просто думаю вдруг я просто что-то не дочитал в доке
00:58
Михаил
ну да. это не джава. руки более развязаны)
00:59
Ruslan Ibragimov
Inspections
01:00
Discipuli
А вот теперь гугл говорит, что это оно, спасибо)
01:02
Ruslan Ibragimov
From Slack
01:03
guga
Парни вы что аниме.3gp
01:04
Ruslan Ibragimov
В твиттере была чуть ли не манга в котлиновском стиле)
01:04
(не уверен что правильно употребил манга, в общем аниме в трусиках)
01:09
guga
Да это я просто вспомнил видос начала 2000х
Alex Katsz invited Alex Katsz
09:21
pplcf
скажите, а в каком виде реализуется Local Functions?
09:21
во что оно превращается, если перевести такой код в яву?
Talgat Akunsartov invited Talgat Akunsartov
10:06
Nikolai Mitropolskii
В отдельный класс превратится, только что проверил
Ivan Babanin invited Ivan Babanin
10:11
Sergey Zolotov
класс со статикой
11:35
Ruslan Ibragimov
Влад, не тормози ;)
11:35
Влад Гаевский
а ну да
11:35
сори, я еще не выпил первую кружку кофе сегодня
11:38
Алексей Жингеровский
Влад, боянишь дико
11:39
guga
новости пару дней, так сразу боян?
11:44
Влад Гаевский
ну я просто увидел сейчас что ссылку кидали, обсуждения как такового не увидел
11:47
Anton Arhipov
резонансную статьи не грех и 3 раза вкинуть
11:48
Влад Гаевский
Спасибо, Антон)
11:54
Алексей Жингеровский
Времена-нравы. Это всё javascript повлиял так. На самом деле же добрая "штука" про боян
11:55
Короче, обсуждали в рабочем чатике статью... Почему то вышло мнение что Котлин и Свифт - bad langs.
11:55
Бля, как можно посыл такой получить от статьи.
11:55
Да статья - хороший наброс
11:55
но вывод не такой что языки плохие
11:55
Anton Arhipov
статья просто про то, что пишите тесты, даже если у вас типы есть
11:56
Алексей Жингеровский
ДА
11:56
Алексей Жингеровский
люди хотят увидеть как бы накинуть на язык))
11:56
Anton Arhipov
Вот пишем мы на Java. Вроде с типами. Случается баг. Спрашиваю - тесты на это место есть? нет. Ну а чо тогда удивляемся!?
11:57
Ruslan Ibragimov
Вот пишем мы чисто на котлине падает Null Pointer Exception... Хотя нет, не падает
11:58
Влад Гаевский
Ведь падает Kotlin Null Pointer Exception
11:59
Ruslan Ibragimov
Верно, но он тоже не падает)
11:59
Влад Гаевский
ой, ну рассказывай)
11:59
Ruslan Ibragimov
Пока ты явно не захочешь
12:00
У тебя есть контракт к методам на уровне системы типов
12:00
Anton Arhipov
NPE - всегда ошибка программиста. Если явно захотеть NPE - это значит явно захотеть баг
12:01
Ruslan Ibragimov
Да, только в Котлине явно видно где может упасть NPE, а в джаве он может упасть везде)
12:01
dima 💻
а почему в котлине он не может упасть везде?
12:02
Anton Arhipov
Да - это та замечательная весчь которая есть в Котлине.
12:02
потому что такой дизайн
12:02
Ruslan Ibragimov
Просто язык божественный
12:02
dima 💻
допустим рандом ошибка,база там побилась, данные улетели
12:02
Влад Гаевский
ну не надо говорить что прям не везде
12:02
есть всякие моменты типо lateinit
12:03
Алексей Жингеровский
Легко может упасть на интеропе с java
12:03
Влад Гаевский
и я не помню еще что там с платформенными типами
12:03
Ruslan Ibragimov
Я ж говорю, нужно захотеть словить)
12:03
Я там вводную сделал - на чистом котлине
12:03
Anton Arhipov
!! - это как раз про то, что let there be dragons, или “пускай здесь будет баг”
12:03
Влад Гаевский
ну строго говоря когда ты пишешь lateinit ты можешь и не хотеть словить
12:03
но словить тем не менее можешь
12:04
Ruslan Ibragimov
ты допускаешь что тут может упасть
12:04
Влад Гаевский
ну как бы и да
12:04
Ruslan Ibragimov
просто не пиши lateinit, если можешь не писать
12:04
Влад Гаевский
но и не совсем
12:04
Алексей Жингеровский
Вообще, "язык не должен ограничивать программиста." Дядя Боб.
12:04
Влад Гаевский
я к чему, !! это вот как Антон сказал - прямо напрашивание на баг
12:04
а вот lateinit вроде как не такой выразительный, и не так прямо декларирует что ты готов к npe
12:04
Anton Arhipov
не согласен с ним на все 100%
12:05
Алексей Жингеровский
Да я тоже. Но теперь сложнее спорить когда тебе могут кинуть ссылку на авторитета))
12:05
Anton Arhipov
почему то именно ограничивающие языки становятся популярными гораздо быстрее
12:05
Алексей Жингеровский
Я считаю что язык должен максимально ограничивать. В разумных пределах. Люди глупы
12:06
Влад Гаевский
по сравнению с теми же C\C++
12:06
Ruslan Ibragimov
Компилятор идеален, люди мудаки.
12:06
Алексей Жингеровский
ок, компилятор)
12:06
Anton Arhipov
компилятор - д’Артаньян!
12:07
Влад Гаевский
ну че вы ну
12:07
нормально же общались
13:53
Discipuli
Если так считать, то они и будут глупы
15:58
Nikolai Mitropolskii
По мне так всё что можно переложить на машину - нужно переложить на машину
15:59
Discipuli
Ну дак это уже другой разговор.
16:01
Discipuli
Просто нельзя разсуждать крайностями.
16:01
Nikolai Mitropolskii
Ну компайл-там нуллчек - это не крайность, а удобная фича)
16:04
Discipuli
Дак я и не спорил об этом. Сам люблю такие фичи) как и понимаю, что для некоторых задач строгая типизация бывает избиточной) Т.е. каждой задаче - свое решение и тут спор не имеет смысла.... Не стоит сорить в конфе не по теме)
16:05
Nikolai Mitropolskii
Ну так Боб Мартин первый начал))
16:06
Алексей Жингеровский
Ну
16:07
Ruslan Ibragimov
Так строгая типизация и в динамическом груви)
16:07
Ты наверно про статическую
16:09
Ruslan Mikhalev
Так статическая и в груви =)
16:10
Ruslan Ibragimov
Речь про то что это ортогональные понятия
16:12
Я так и не понял когда я хочу динамическую типизацию
16:12
Discipuli
В груви же и статическая и динамическая)
16:12
Ruslan Mikhalev
я о том же
16:16
Ruslan Ibragimov
Не нужны же языки с динамической типизацией
16:17
Discipuli
Но причем тут groovy, я высказал мнение о критичность мышления при высказывания "что языки должны ограничивать", ведь есть язык Ada, Fortran и они были популярны, но чет сейчас мы на них не пишем)
16:17
Я не фанат JS, но даже он имеет место быть
16:19
Ruslan Ibragimov
Я писал много на js и ts
16:19
И могу сказать что на ts намного удобнее писать
16:19
И можно типы прописать для любой библиотеки
16:19
И при этом IDE помогает писать код
16:20
Discipuli
А я писал на Python, в нем динамическая типизация и это очень удобно и IDE так же помогает
16:20
Ruslan Mikhalev
Кстати, тоже спорное высказывание
16:21
Ruslan Ibragimov
У "строгой" типизации нету определения, так что да)
16:22
не знаю как в питоне, но в js идея практически ничего не понимает про код
16:22
Discipuli
Не так написал, согласен с уточнением
16:22
Sergey Zolotov
как человек пишущий на php, скажу - динамическая типизация это боль
16:24
Discipuli
А на Python занимаются и машинным обучением. Как сказал мне один человек, работающий в этой области: "мы не пишем на java, так как бы писали все раз в 10 так медленнее"
16:25
Ruslan Ibragimov
Ну джава плохой язык потому что он статически типизированный, и при этом без тайп инференса
16:25
Sergey Zolotov
статическая типизация и вывод типов 👍
16:25
Ruslan Mikhalev
Node js юзают и не жалуются. Я до сих пор удивляюсь, что он так взлетел
16:26
Sergey Zolotov
код читать сложно, писать еще сложнее(ide работает против тебя)..
16:26
Discipuli
Ну если ты хочешь запилить небольшой проектик, то почему бы и нет)
16:26
Ruslan Mikhalev
У нас все фронты на ноде
16:26
Правда идут потом через микросервисы ))
16:26
Ruslan Ibragimov
Так можно взять микро фреймворк на джавке и будет проще и быстрее)
16:26
guga
Кстати, вот что ваш дядько боб думает о том, что бы проверку сделать на типах и в компаил тайме
16:27
Sergey Zolotov
на котлине ведь
16:27
guga
где-то было задание сделать ХО так, что бы она гарантировано работала после компайла
16:27
Ruslan Ibragimov
Код на котлине, а взять и спарк можно
16:28
Я к тому что любую джавовую либу
16:28
Алексей Жингеровский
помоему нода по больше части как бекенд для фронта только
16:29
Ruslan Ibragimov
Когда нужно реакт отрендерить 👍
16:30
Sergey Zolotov
писать можно на чем угодно, и оно будет работать. вопрос в удобстве
на ноде тебе приходит options обьект, и скажи, какие поля там могли передать не запуская дебагер? столько багов из-за этого..
16:51
Рыженков посоветовал убрать плюсы, так что теперь тут и плюсов нету)
18:34
Ruslan Ibragimov
> You cannot create an instance of [by.bkug.akka.extensions.DebugFileKt$generated_for_debugger_kotlin_rulezzzz$1] explicitly using the constructor (new). You have to use one of the 'actorOf' factory methods to create a new actor. See the documentation.
18:34
> generated_for_debugger_kotlin_rulezzzz
18:36
Алексей Жингеровский
йумор
Arseni Nikalayeu invited Arseni Nikalayeu
23:31
Alex Katsz
Давайте я немного понабрасываю вам в чат котлина
23:31
1 shl 18 + 10 это сколько?
23:32
Alex Katsz
Nariman 14.01.2017 23:26:00
23:32
Alex Katsz 14.01.2017 23:26:34
Runtime.getRuntime().totalMemory(); вызови до этого
23:32
Runtime.getRuntime().freeMemory();
офк
23:32
Nariman 14.01.2017 23:27:41
Solution running... 94447336
Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
at FKt.solve(F.kt:263)
at FKt.access$solve(F.kt:1)
at FKt$main$1.invoke(F.kt:217)
at FKt$main$1.invoke(F.kt)
at FKt.run(F.kt:195)
at FKt.main(F.kt:217)
23:32
написал просто константу в миллион
23:33
Alex Katsz
байт, если что
23:35
Так вот. Если этот сахарок такой классный, почему а) выпилили <<
б) зафакапили привычный порядок операций
23:36
Ruslan Ibragimov
За троллинг можно в бан улететь
23:36
dima 💻
ты суровый очень!
23:37
Alex Katsz
@HeapyHop сижу в прожвм и наблюдаю Ваши срачи чаще, чем мои сообщения вообще :)
23:37
Набросов не делаю, вопрос адекватный
23:40
Ruslan Ibragimov
infix function
23:42
Алексей Жингеровский
в projvm можно, а тут нет?
23:42
Ruslan Ibragimov
Ага
23:43
Алексей Жингеровский
23:46
Ruslan Ibragimov
Теперь вопрос про "привычнее" должен отпасть
23:46
dima 💻
ага, ты уже улетал)
23:47
Ruslan Ibragimov
Если бы в том чатике банили за троллинг, ты должен был бы первым себя забанить ;)
23:47
dima 💻
нет, первым был бы ты
05:47
Deleted Account
нет
Andrey <★ /> invited Andrey <★ />
16:20
Andrey <★ />
Всем джава, почаны)
16:21
Sasha Tainyuk
ага, и тебе привет.)
16:21
Andrey <★ />
О, привет)
16:22
Sergey Zolotov
захотелось немного котлина?)
16:22
Andrey <★ />
А чего не многочлен на аве?
16:22
Интересно что у вас и как. А то спаривал котлин с гредлом пол дня. Не справился(
16:23
Igor Ramazanov
на офф сайте же все написано
16:23
а, или ты хотел скрипты для гредла на котлине написать?
Aleksey Fomkin invited Aleksey Fomkin
16:23
Aleksey Fomkin
Всем привет! Это чат о языке Scala?
16:24
Andrey <★ />
Скрипты для гредла на котлине. Груви тормоз)
16:24
Sergey Zolotov
так оно еще в бете
16:24
Igor Ramazanov
по-моему уже нет, кажется
16:25
Cap Dev
Знакомые лицца)
16:26
Andrey <★ />
Фуф, а то я завис)
16:27
Sasha Tainyuk
да он настолько популярный, что приходиться гуглить)
16:27
Andrey <★ />
Если в гугле он есть, что уже неплохо. Я уж подумал, что это на мою работу намёк.
16:28
Ruslan Ibragimov
В Альфе
16:28
Sergey Zolotov
а ну возможно. там 0.5 версия вроде щас
16:28
Ruslan Ibragimov
Пример можно посмотреть в awesome-kotlin/generator
16:29
Ruslan Ibragimov
Или в соседнем репозитории kotlin-akka)
18:30
Anton Arhipov
“I consider the static typing of Swift and Kotlin to have swung too far in the statically type-checked direction” зря он так себе могилу роет
18:32
Ruslan Ibragimov
А он со скалой дружит? Очень интересно было бы послушать как он закопал бы зависимые типы)
18:35
Anton Arhipov
после его статьи, мне начинает казаться что он скалу даже не смотрел
18:35
а может и не слышал о ней :)))
18:38
Ruslan Ibragimov
> Do you want to have to change every line of code every time anything at all changes?
Конечно нет Дядя, мы хотим ловить баги на проде)
18:39
Это Егор стайл, привел бы что-ли пример из жизни
18:46
Михаил
разве в продуктах от джет бреин нету Refactor... которая в том числе может сразу везде тип менять?
18:47
Ruslan Ibragimov
Конечно есть
Nikita Sokoloff ✌️ invited Nikita Sokoloff ✌️
18:51
Ruslan Mikhalev
Может он в виме сидит
18:51
Ruslan Ibragimov
В емаксе
18:51
Ruslan Mikhalev
И багов у него нет
18:52
Ruslan Ibragimov
Он же на лиспе пишет
18:52
Когда я не пишу код, у меня тоже багов нет 😄
Виталий Бендик invited Fedor Sokovikov
21:20
Ruslan Mikhalev
Чем мерил? =)
21:21
Ruslan Ibragimov
да не, просто gradle инициализируется несколько секунд.
21:21
Правда тут kotlin script не спасет
21:21
Ruslan Mikhalev
Ога
21:21
Ruslan Ibragimov
потому что кор все равно на method_missing написан
21:22
и как я вижу парни страдают от того что груви нагенерил
21:22
Ruslan Mikhalev
Самое смешное, что ну большинства даже gradle daemon не стоит
21:22
А жаловаться все горазды )
21:22
Ruslan Ibragimov
Потому что еще пол года назад он тек
21:22
Да и до сих пор наверняка течет на некоторых проектах
21:23
Есть мавен и есть гредл. И оба говно)
21:24
Ruslan Mikhalev
ант!
21:24
Ruslan Ibragimov
make
21:31
guga
у котлина же тоже что-то есть, kobolt?
21:31
Ruslan Ibragimov
kobalt, да
21:32
очень приятная, но по понятным причинам его никто не потащит в проект
21:32
хотя писал Цедрик, автор TestNG
21:33
Sergey Zolotov
есть же gradle и kotlin script
22:33
Ruslan Mikhalev
Чет посмотрел на kotlin в gradle
22:34
Михаил
время покажет.
22:34
вообще котлин че то решили сразу в куче направлений развивать
22:34
и возникает такой же вопрос ко всему котлину
22:35
Ruslan Mikhalev
По сути в плагинах это костыли для поддержки Groovy Runtime
22:35
вроде delegateClosureOf методов
22:38
Ruslan Ibragimov
это фиксится, ибо наследие груви
22:38
Ruslan Mikhalev
А как ты пофиксишь это?
22:38
Это все плагины же фиксить надо, не?
22:38
Ruslan Ibragimov
но плюсы такие, что можно потерпеть ибо наконец-то писать скрипты можно без боли
22:39
Ruslan Mikhalev
Я и так их писал без боли
22:39
Ruslan Ibragimov
Да везде, файл на половину желтый
22:39
нихера не автодополняется
22:40
Ruslan Mikhalev
А, это
22:40
Ну это в огород JetBrains
22:40
Ruslan Ibragimov
ну-ну
22:41
Ruslan Mikhalev
Это без плагинов
22:41
Ruslan Ibragimov
два плагина тамщета
22:41
configure<ApplicationPluginConvention> {
applicationName = "kotbot"
mainClassName = "link.kotlin.scripts.ApplicationKt"
}
configure<ShadowJar>("shadowJar") {
mergeServiceFiles()
}
22:41
и все автодполняется
22:42
причем shadowJar не поддерживает котлин скрипт, поэтому кривовато
22:42
а вот application - поддерживает
22:42
Когда выйдет 1.0 не будет веских причин использовать груви тут
22:42
Ruslan Mikhalev
Ну они на котлин, судя по всему, как минимум написаны
22:42
Ruslan Ibragimov
> Ну они на котлин, судя по всему, как минимум написаны
22:43
нет, на джаве или груви
22:43
Ruslan Mikhalev
Дело в том что замыкание в лямбду ты никак не превраьтишь
22:43
Ruslan Ibragimov
Пример покажи
22:43
потому что я думаю именно это я сделал в shadowJar
22:44
т.е. было
shadowJar {
mergeServiceFiles()
}
22:44
А стало
configure<ShadowJar>("shadowJar") {
mergeServiceFiles()
}
22:45
Ruslan Mikhalev
shadorJar - это же таска?
22:45
Ruslan Ibragimov
Без действий со стороны плагина
22:45
Ruslan Mikhalev
если бы у тебя плагин внутри принимал замыкание
22:45
то было бы другое дело
22:45
сейчас нарою что нибудь
22:45
Ruslan Ibragimov
окей, давай на примере, будет предметно
22:46
метод publish в плагине у публикации в артифактори принимает колжур
22:48
Ruslan Ibragimov
Пишется экстеншен с таким же именем который принимает обычную лямбу и под низом превращает в то что нужно
22:48
т.е. да, тут нужно подпилить.
22:48
Ruslan Mikhalev
Так а кто это делать будет?
22:49
Ruslan Ibragimov
сообщество может делать свои обертки вокруг плагинов
22:49
в gradle могут сказать периписать
22:49
Они и так кор плагины на джаву переписали
22:49
Ruslan Mikhalev
Плагинов то видимо невидимо
22:50
Перепишут опять самые используемые
22:50
Ruslan Ibragimov
из которых 30-40 популярных, остальное подтянется
22:50
Ruslan Mikhalev
А большинство положат болт, потому что пишут на груви )
22:50
и никакой котлин им не нужен )
22:51
Ruslan Ibragimov
Если бы сам gradle не форсил котлин, то так и было бы)
22:51
Ruslan Mikhalev
Короче не понятно все, как по мне
22:51
Чем эта история кончится
22:51
Ruslan Ibragimov
Я уже все новые проекты стартую на kts
22:52
guga
а сколько людей то в твоей команде?
22:52
Ruslan Ibragimov
Не все гладко, но я понимаю что альфа, и можно потерпеть)
22:52
На работу альфо версии не тащу
22:53
Anton Arhipov
А чо, котлин уже по умолчанию в гредле?
22:53
Ruslan Ibragimov
Ну по умолчанию можешь на нем писать
22:54
только в settings скажи что у тебя котлин
22:54
Anton Arhipov
Думаю про «форсить» пока ещё рановато.
22:54
Ну это не по умолчанию тогда
22:54
Ruslan Ibragimov
Так нету умолчания)
22:54
А так разницы никакой
22:55
Anton Arhipov
По умолчанию таки груви
22:56
Если ничего не укажешь - будет груви
22:56
Ruslan Ibragimov
ну там файлы отличаются по экстеншену пока
22:57
Если бы был один файл, то да, согласен
22:57
А так, на чем будешь писать то и будет
22:58
Anton Arhipov
А, то есть от расширения он сам решает что используется? Или если kts, то в сеттингах надо таки указать чтото?
22:58
Ruslan Ibragimov
Насколько я понял - пока так, потому что альфа
22:58
Потом они скорее уберут дабл экстеншен
22:59
В целом там пока нету тактики)
23:01
Anton Arhipov
Там лучшего варианта как бы нет. Все равно нужен какой то маркер, чтобы указать, на чем скрипт написан
23:02
Ruslan Ibragimov
почему, просто делаешь по-умолчанию котлин с gradle X, а для груви нужно указать ключик)
23:04
Ruslan Mikhalev
Самый оптимальный вариант прямо в файле это разруливать
23:04
Ruslan Ibragimov
нету самого оптимального
23:05
потому что в файле если определять тебе нужно и котлин и груви запустить, и посмотреть кто не упадет при разборе файла
23:06
Ruslan Mikhalev
Тебе не надо парсить весь файл для этого
23:06
Возьми первую строчку
23:06
а-ля //#/usr/bin/env groovy
23:07
Ruslan Ibragimov
ну значит людям придется писать маркер
23:07
Ruslan Mikhalev
Просто странно это хранить где то в другом месте
23:07
Ruslan Ibragimov
что тоже не оптимально)
23:07
Ruslan Mikhalev
Кинул другому человеку скрипт - у него уже не взлетает
23:08
Надо уточнять, что где то еще надо будет ему что то прописать
23:08
Проходили же уже это
21:59
Михаил
В котлине есть String.valueOf() или доллар фореве?
22:00
Ruslan Ibragimov
toString?
22:02
Ruslan Mikhalev
А куда ему деться?
22:02
Михаил
ToString работает как-то иначе чем в джаве?
22:03
Ruslan Ibragimov
Да
22:03
Михаил
Кул. Насколько я понял это как-то захардкожено в компилятор?
22:03
Ruslan Ibragimov
Ага
22:04
Михаил
Ибо у чисел я не нашел переопределенного ту стринг
22:47
Ruslan Mikhalev
Захардкожено в компилятор?
22:47
Разве это не экстеншн?
22:48
Здравый смысл подсказывает, что должен быть экстеншн
22:48
А значит котлин рантайм, а не компилятор
23:01
Artyom
в байткоде же элементарно посмотреть – что именно компилируется
23:03
Михаил
INVOKESTATIC java/lang/String.valueOf (I)Ljava/lang/String;
23:03
осталось понять есть ли экстеншн
23:03
Ruslan Ibragimov
Экстеншен
23:06
Михаил
то есть бесмысленно искать функцию в std-lib?
23:06
Ruslan Ibragimov
Не уверен, я по памяти говорю
23:17
Ruslan Mikhalev
Я бы так и сделал, если бы не был в магазине. Поэтому просто отписался в чат
23:18
Михаил
ну в стд-либ я не нашел ту стринг
23:19
предполагаю пока, что на уровне компиляции уже ту стринг ковертируется
00:26
Ruslan Mikhalev
Оно
00:27
Раскурить пытаюсь, как это работает
00:27
Но это компилятор, да
00:58
Ruslan Mikhalev
Кому там интересно было?
01:00
Михаил
тут без стопки не разберешься
01:01
Ruslan Mikhalev
Да там ничего сложного
01:02
intrinsics методы, используются при компиляции, когда обходятся экспрешены
01:02
Никак туда не подлезть, так что для простого пользователя безполезно
01:03
Михаил
ну больше интересно для каких типов там переписан toString
01:04
Ruslan Mikhalev
27 BOOLEAN("Boolean"),
28 CHAR("Char"),
29 BYTE("Byte"),
30 SHORT("Short"),
31 INT("Int"),
32 FLOAT("Float"),
33 LONG("Long"),
34 DOUBLE("Double"),
Artyom Selyutin invited Artyom Selyutin
14:07
Ruslan Ibragimov
Чувак, Pavel Dudka: Android Software Engineer @ Apple
14:07
Apple и Android это какой-то оксюморон)
14:07
Sergey Zolotov
да ладно, они ж там портировали какой-то софт на андроид
14:08
Ruslan Ibragimov
Ну я знаю что им приходится писать под андроид, как и MS. Но тем не менее)
14:13
Sergey Lebedev
ну в Германии много позиций где требуют знание обеих платформ
14:23
Max Rovkin
под андроид они минимум пиля apple music
15:39
Sasha Tainyuk
для миграции вроде еще есть.
Kirill Lyubimov invited Kirill Lyubimov
Ivan Fedyai invited Ivan Fedyai
18:39
Ruslan Ibragimov
Дядя разочаровывает :(
18:39
Алина Долгих
чет какт да
18:45
Nikita Kononenko
ойё
18:46
Ruslan Ibragimov
Уже закончилось почти
18:46
Ты ничего не пропустил думаю
18:46
Если смотрел хоть какую-то демку, про решение hello world с TDD
18:47
Nikita Kononenko
а, то есть там ничего прям интересного не было?
18:47
Ruslan Ibragimov
вообще
18:47
кроме того что он подключил jar ручками с папки
18:47
guga
ну на котлин то хотя бы накинул?
18:47
Ruslan Ibragimov
в шоке что так кто-то делает, даже для демо
18:48
"чет у вас тут всё immutable"
18:48
"как это мне аргумент функции сделать мутабельным?"
18:48
А еще у него джава дрявая
19:00
Ruslan Ibragimov
Бреслав!!!
19:01
Anton Arhipov
ну всё. вечер удался. зачем делали вебинар про TDD? можно было про Kotlin делать
19:02
Ruslan Ibragimov
Ну он с Дядей спорит)
19:04
Я уже собрался выключать, а тут такое
19:04
За микросервисы пошел разговор
19:05
Типо вот почему всем нравятся микросервисы, потому что общение между ними динамическое, т.е. у вас там стринга и нету компилятора который проверит типы
19:08
Короче обсуждают наброс) The End
19:08
Nikita Kononenko
обсудили ага
20:33
Михаил
понимаю что глупый вопрос, но все же) как-то можно? мб куда-нить var приписать? или только занести аргумент в новую var переменную?
21:46
Алексей Жингеровский
бля, а где посмотреть теперь?
21:47
Ruslan Ibragimov
На youtube выкинут через недельку, обычно так
21:47
Алексей Жингеровский
тебе это не надо
21:49
"Все аргументы в Kotlin имутабельны" Быт 1:24-31
21:49
Ruslan Ibragimov
Не-не, мы не секта
21:49
Просто никаких мутабельных аргументов)
21:49
Михаил
скорее это никому не надо
21:50
Алексей Жингеровский
"Kotlin – это не религия" Keep 2:13-14
21:51
Алексей Жингеровский
У Баруха стянул картинку?
21:51
Ruslan Ibragimov
(еще один репост картинки)
Арсений Сафин invited Арсений Сафин
Лёша Лазарев invited Лёша Лазарев
Loo Maclin invited Loo Maclin
20:31
Sergey Zolotov
походу аж в марте релиз будет
Vitalii Shkurenko invited Vitalii Shkurenko
Ivan Zolotarev invited Ivan Zolotarev
Толян Корнильцев invited Толян Корнильцев
Pavel Vasilev invited Pavel Vasilev
12:05
Sergey Zolotov
я вот одно не пойму. зачем начали делать kotlin.js? он же обречен на провал
12:06
Михаил
Откуда инфа, что обречен?)
12:07
Sergey Zolotov
чисто мое мнение. есть же typescript, flow
12:07
scala.js сильно взлетела?
12:10
Михаил
Ну имху найдется своя аудитория
12:14
Ruslan Ibragimov
А чем тайпскрипт принципиально отличается от Котлин.жс?
12:15
Sergey Zolotov
а от dart?
12:15
как минимум тем что ts протащили в ангуляры по-дефолту
12:15
Ruslan Ibragimov
Дарт ужасен по синтаксису, почти джава
12:15
Sergey Zolotov
так бы его юзали только в скромных уголках с дотнетом на бекенде
12:15
Ruslan Ibragimov
Не, то что протащили в ангуляр - я рад)
12:16
Так он был бы уделом больших команд, где важна поддерживаемость)
12:16
Ну так это, чем принципиально TS лучше Котлин?)
12:17
guga
А какая разница, взлетит или нет, я практически уверен, что кто-то напилил этот компилятор как 20% проект
12:17
может кому-то пригодится
12:17
Sergey Zolotov
у TS есть популярность и довольно широкая аудитория, смысл им даже смотреть на котлин.жс?
12:18
Ruslan Ibragimov
Ну завтра Kotlin захватит JVM и у него будет сравнимая аудитория
12:18
Ilya Gulya
То, что TS юзают не ребята, которые пишут на JVM
12:18
в большинстве своём
12:19
Ruslan Ibragimov
Ну ясно, т.е. мнения такие:
1. Его хайпят, втаскивают в популярные проекты
2. Он предназначен для JSеров
12:21
От себя могу добавить еще:
1. Любой JS код - валидный TS код -> Как Groovy для Java, только наоборот в плане типов)
2. Очень много крутых фишек в языке, типы. После JS очень хорошо было на нем писать
12:22
Дарт я вообще не вижу смысла рассматривать) Он сбоку, он плохо интеропится с JS, у него синтаксис как у джавы
12:22
guga
и его писал гугл
12:23
Ruslan Ibragimov
Даже гугл не может выдать говно за конфетку
12:23
Хотя с Go получилось 😁
12:25
Я думаю что нужно два-три фактора чтобы взлетело:
1. Kotlin (JVM) должен стать популярным, мейнстримовым
2. Должны появится библиотеки, фреймворки
3. Тулинг - ака нативный webpack например
12:27
Позитивный момент: подогретые TypeScript'ом разработчики с удовольствием перейдут на котлин, если там будут любимые либы и тулинг)
12:27
TypeScript хорош, но на Котлине намного приятнее писать
12:35
Алексей Жингеровский
Ну например:
1. же тема такая что домен легко можно было перенести между фронтом и беком. модели, обработка какая то. Врядли это сработает, но а вдруг.
2. Будет интересный интероп с браузером - будем бомба. Но это есл и будет - то будет не скоро.
3. Вот пример clojure/clojurescript – единая среда единый язык. единые либы. Крутой js интероп и божественные тулинг. Ну вот они и на коне с одним языком на бекенде и фронте
12:36
Ruslan Ibragimov
Вот они и на коне, точне он на коне, он - Тонский)
12:36
Алексей Жингеровский
хыхы)
12:37
Ruslan Ibragimov
О clojurescript я слышу только от него)
12:37
Алексей Жингеровский
Ну т.е. нужен хоришй тулинг и инетроп – тогда можно что то говорить
12:38
Ruslan Ibragimov
интегроп есть, модули есть. можно писать
12:38
Алексей Жингеровский
12:38
Очень задорный рассказ
12:38
Как минимум спикеры ооочень хороши
12:39
Ruslan Ibragimov
Я скорее всего не увижу там ничего нового)
12:39
Алексей Жингеровский
и хорошо показывает где clojurescript уже и куда котину надо
12:39
Ruslan Ibragimov
Кроме скобочек
12:41
Алексей Жингеровский
Ну это ответ на вопрос зачем нужен котлинджс
12:41
точнее чем он может стать
12:42
Sergey Zolotov
ну возможно
12:45
Ruslan Ibragimov
При этом kotlinx.html больше похож на привычные фронтендщику темплейты, чем то что в кложе.
При этом код на котлине похож на TypeScript, что не скажешь о кложе)
12:47
Из плюсов еще: для джавистов\котлинеров, куда привычнее ставить джаву, а не node.js чтобы делать Universal Apps, с Котлином это можно будет делать
13:25
Deleted Account
Подкаст последний скалалаз послушай
13:27
Ruslan Ibragimov
А что там говорили?
13:28
Deleted Account
Про переход на го
14:02
Алексей Жингеровский
Тут вот что я думаю.
Clojure выбирают те кто полностью отдаёт себе отчёт что делает и зачем. Полный стек на кложе вполне себе. Такие компании есть и такие люди есть.
14:02
А вот фронтендеры врядли будут писать на котлине, как и бекендеры врядли будут писать фронт на котлине
14:03
Ruslan Mikhalev
Я бы попробовал
14:03
Пописать фрон на котлине
14:04
Алексей Жингеровский
Вопрос зачем всё же не в том что там кто будет писать, я бы не так ставил. Тут скорее дело в среде. Взял бекенд любимый язык - запустил на nodejs энв. Вроде бы хорошо. Надо логику отдать в браузер – взял бекендер любимый язык - отдал js
14:04
Но это всё не серьёзно и не будет работать то
14:05
Опять повторюсь – будет тулинг и фуллстек на котлине с js инетропом - ну тогда _может_ быть...
14:06
А что сами JB говорят насчёт "ЗАЧЕМ" кроме того что так у всех есть и у нас тоже?
14:06
Sergey Zolotov
говорят "а почему бы и нет?"
14:07
Ruslan Ibragimov
бэкенд, нодджс)
14:07
Алексей Жингеровский
я тоже не знаю зачем но говорят нравится некоторым
14:08
Ruslan Ibragimov
Ну всмысле, kotlin -> js -> nodejs
14:08
Адовая какая-то связка
14:08
Sergey Zolotov
это если взападло jvm юзать?
14:08
Ruslan Ibragimov
У нас же есть крутые серваки, которы намного быстрее ноды, которые удобно дебажить)
14:08
Алексей Жингеровский
ну я честно пытаюсь придумать зачем)
14:09
Sergey Zolotov
а нода вообще на 1 поток работает 😕
14:09
Ruslan Ibragimov
ну как минимум это наконец-то приятный язык (мое имхо) для фронта
14:10
для тех кто устал от джс, тс и т.д.
14:10
а дальше нужно: написать фреймворк который будет все делать. сделать порт реакта и юниверсал рендеринг
14:13
Алексей Жингеровский
ну вот имхо твоё да.
14:13
Они ж живут с диким js
14:13
и до сих пор колются
14:13
Ruslan Ibragimov
ну вот я кложу бы со скалой не брал, дарт в топку, флоу - полумера, тайпскрипт - хорошо, да не очень
14:14
Алексей Жингеровский
я не про кложу и скалку даже
14:14
Ruslan Ibragimov
TS - очень-очень, но там не хватает фич 10 из котлина)
14:14
Алексей Жингеровский
10 фич из котлина?
14:15
Sergey Zolotov
правильно говорить "10 фич из скалы" ведь 😃
14:15
Алексей Жингеровский
14:15
Deleted Account
Почему скалу бы не брал?
14:16
Алексей Жингеровский
скалу берут ещё меньше чем кложу, потому что зачем?
14:16
Ruslan Ibragimov
Ну там data классы, named аргументы, и т.д.
14:16
Deleted Account
На самом деле , какие преимущества даст Котлин.жс для джава разработчика
14:16
Алексей Жингеровский
я выше пытался скзать
14:17
Deleted Account
Ярковыраженных фичей не будет
14:18
Ruslan Ibragimov
1. Удобный язык
2. Шаринг кодовой базы
14:18
Sergey Zolotov
сложно представить когда нужен шаринг кодовой базы между фронтом и бекендом
14:18
Ruslan Ibragimov
Universal Apps
14:19
Михаил
а рынку это нужно?
14:19
куда не посмотришь всем нужны js\php
14:20
Ruslan Ibragimov
ну ангулярщики перешли же на TS
14:20
Алексей Жингеровский
А почему они должны на котлин перейти ?