@kotlin_lang

Страница 226 из 982
kapehh
30.06.2017
10:35:39
вон чувак говорил что 10 лет так работал)
кто говорит что работал 10 лет? я не работал 10 лет )

и я не пишу говнокода ) последние 5 лет точно

Ivan
30.06.2017
10:37:06
Погодите-ка, разве люди ходят на работу не для того чтоб деньги получать?
Блин, этот аргумент меня всегда убивает, ну само собой ты работаешь не за идею, но делать-то нужно нормально. Если приходит сантехник и делает тебе трубу так что через 2 дня у тебя ниагара - это норм? А что, он деньги свои получил и он в жеке работает, без заказов не останется

Artem
30.06.2017
10:37:12
Погодите-ка, разве люди ходят на работу не для того чтоб деньги получать?
Нет, люди ходят на работу чтобы деньги зарабатывать, а не прлучать))

Google
Artem
30.06.2017
10:39:14
Open source - люди работают за идею)

У нас тут іт фестиваль был, я 2 часа лопатой махал (марс для марсоходов), тоже за идею)

Всех денег не заработаешь) а про карму забывать не нужно)

Sergey
30.06.2017
10:46:32
а вы на котлине поди из-за денег пишете

а не для удовольствия

Quantum Harmonizer
30.06.2017
10:47:18
а вы на котлине поди из-за денег пишете
Я пишу на Котлине потому что это наиболее подходящий инструмент для решения моих задач. На работе я их решаю ради денег, да, а дома — за идею.

Ivan
30.06.2017
11:05:25
Так мой поинт не про деньги и идею, а про то что если тебе не нравится работать руками, то тебе нефиг делать в сантехниках, даже если там крутая зп

Quantum Harmonizer
30.06.2017
11:06:16
Ivan
30.06.2017
11:08:34
Мне нравится работать руками, я б пошёл в технологи или электромонтажники, но в IT платят больше.
Опять-таки, я не говорю что работа в it - это удел элиты, просто это должно в какой-то степени нравиться. А не просто "мне бы быстренько отстреляться с ООП и устроиться на андроид разработчика, а все эти ваши алгоритмы - это не спрашивают, так что нафиг"

Quantum Harmonizer
30.06.2017
11:09:52
Опять-таки, я не говорю что работа в it - это удел элиты, просто это должно в какой-то степени нравиться. А не просто "мне бы быстренько отстреляться с ООП и устроиться на андроид разработчика, а все эти ваши алгоритмы - это не спрашивают, так что нафиг"
Я тоже устраивался по-быстрому, в т. ч. без знания алгоритмов. Всё подтягивал потом, жить же за что-то нужно. Конечно, нужно уметь делать то, что делаешь, и хотеть уметь лучше.

https://www.youtube.com/watch?v=N2PFwCvcyQ8

Google
Ivan
30.06.2017
11:15:50
так можно про любую сферу сказать, но реалии таковы, что всегда большая часть будет на отвали делать, не горя своей сферой
Ну дык это-то и грустно,но, я думаю, никто не может меня обвинять в том что мне это не нравится. А тут прям такой кипишь подняли, как будто я задвигаю что программистами должны быть только дети академиков )

Quantum Harmonizer
30.06.2017
11:16:56
Ну дык это-то и грустно,но, я думаю, никто не может меня обвинять в том что мне это не нравится. А тут прям такой кипишь подняли, как будто я задвигаю что программистами должны быть только дети академиков )
Обвинять, конечно, никто не может. Просто и выбор между местами работы, и между сферами делается на основе уровня зарпламы, мне кажется.

Quantum Harmonizer
30.06.2017
11:24:43
Хотя вот это имеет смысл, хотя я такое не поддерживаю
Ну да, всем нужен человек, который уже всё знает и умеет.

Ivan
30.06.2017
11:42:45
Ну да, всем нужен человек, который уже всё знает и умеет.
Я тут с позиции нанимающегося говорил, мне просто самому приятно всё уметь и чтобы меня считали "находкой", так и самому приятно и чсв поднимается ) Но это всё фломастеры уже

Artem
30.06.2017
12:32:38
хелп var num =15 num = num+5 идея подсвечивает Overload resolution ambiguity. All these functions match.

Daniil
30.06.2017
12:35:03
Случаем какой-нибудь plus из другой либы не заимпорчен?

Artem
30.06.2017
12:35:47
найн(

Alexey
30.06.2017
12:36:17
+1

Daniil
30.06.2017
12:36:34
О, а если у var num явно указать нужный тип?

Artem
30.06.2017
12:37:03
указан

ну..у меня указан...

Alexey
30.06.2017
12:37:12
Artem
30.06.2017
12:37:36
не помогло

вот полное описание что пишет идея Overload resolution ambiguity. All these functions match. public final operator fun plus(other: Byte): Double defined in kotlin.Double public final operator fun plus(other: Byte): Int defined in kotlin.Int public final operator fun plus(other: Int): Double defined in kotlin.Double public final operator fun plus(other: Int): Int defined in kotlin.Int public final operator fun plus(other: Long): Double defined in kotlin.Double public final operator fun plus(other: Long): Long defined in kotlin.Int public final operator fun plus(other: Short): Double defined in kotlin.Double public final operator fun plus(other: Short): Int defined in kotlin.Int

Alexey
30.06.2017
12:38:41
как вариант, у тебя верия котлина в проекте одна, в идее другая я вроде пару раз ловил глюки идеи

Artem
30.06.2017
12:39:05
может быть..щас попробую.

Alexey
30.06.2017
12:39:35
пару дней назад мне идея предлагала установить новую версию

Artem
30.06.2017
12:41:39
нет, не помогло(

Google
Quantum Harmonizer
30.06.2017
12:42:10
А если написать += 5.toInt()?

Eduard
30.06.2017
12:43:21
Или просто тип явно задать?

Quantum Harmonizer
30.06.2017
12:43:36
О, а если у var num явно указать нужный тип?

Artem
30.06.2017
12:43:49
уже пробовал

Overload resolution ambiguity. All these functions match. public final operator fun plus(other: Int): Double defined in kotlin.Double public final operator fun plus(other: Int): Int defined in kotlin.Int

а у всех все норм?)) это знак сверху "не морочь голову, пиши на java"

Alexey
30.06.2017
12:45:56
а что у тебя в импортах класса ?

Artem
30.06.2017
12:48:25
import javax.swing.JFrame import java.awt.* import java.util.ArrayList

я вышел с этого вот так private fun sum( a: Int, b:Int)=a+b

но это же зашквар

Quantum Harmonizer
30.06.2017
12:50:46
можно всё же воспроизводимый пример?

Alexey
30.06.2017
12:51:37
а если скомпилить не из идеи ?

Artem
30.06.2017
12:53:33
после того как я написал ту функцию и применил ее один раз num=sum(num,15) везде все стало норм, если закоментить, сново все красное

Dmitry
30.06.2017
13:01:46
хелп var num =15 num = num+5 идея подсвечивает Overload resolution ambiguity. All these functions match.
я на похожее баг заводил. но там случай сложнее https://youtrack.jetbrains.com/issue/KT-11359

Михаил
30.06.2017
13:04:22
я на похожее баг заводил. но там случай сложнее https://youtrack.jetbrains.com/issue/KT-11359
а как тут компилятор поймет какую ты хочешь версию метода?)

Dmitry
30.06.2017
13:04:36
в джаве понимает

Eduard
30.06.2017
13:04:47
Это вообще пример с сайта

Quantum Harmonizer
30.06.2017
13:04:55
в джаве понимает
В Джаве нет перегрузки операторов.

Михаил
30.06.2017
13:05:14
тут не оператора

в котлине как мне показалось есть траблы с дженериками

Google
Михаил
30.06.2017
13:07:14
уже не раз и не только мне при попытке перенести конструкцию на дженериках из джавы в котлин приходилось страдать, а иногда просто оставлять на джаве

и там не было raw дженерик типов даже

Quantum Harmonizer
30.06.2017
13:09:11
Ну да, есть @Suppress("UPPER_BOUND_VIOLATED"), который нигде не задокументирован но выручает :)

Михаил
30.06.2017
13:11:35
были случаи когда не в этом дело было. котлин почему то не мог сопоставить идентичные типы с дженериками

там правда довольно дженерик хел был, но джава это нормально хавала

Admin
ERROR: S client not available

Михаил
30.06.2017
13:12:52
выручали анчекед касты)

Pavel Shackih
30.06.2017
14:42:25
а это норма, что кнопка Decompile, для класса в котором есть suspend функции, не работает?

Руслан
30.06.2017
14:43:12
Ну у меня так же, да. Я поэтому procyon брал

И еще cfr норм

Не помню что в итоге лучше было

Pavel Shackih
30.06.2017
14:45:52
ясно. спасибо. а когда релиз дефолтной реализации корутин планируется не известно?

Руслан
30.06.2017
14:46:29
ясно. спасибо. а когда релиз дефолтной реализации корутин планируется не известно?
В 1.2-M1 пока нету, в комментариях к посту в блоге написали что может быть в следующих майлстоунах будет. cc @orangyk

Руслан
30.06.2017
14:49:30
Это дополнительная библиотека, и к языку прямого отношения не имеет

Корутины можно использовать без нее

Pavel Shackih
30.06.2017
14:51:00
так это же реализация от авторов. а что тогда использовать? в самом языке только интерфейсы и suspend

Руслан
30.06.2017
14:52:17
Google
Руслан
30.06.2017
14:55:12
так это же реализация от авторов. а что тогда использовать? в самом языке только интерфейсы и suspend
Можно написать нужные корутины самому например :) Я скажем использую с 0.12, полет нормальный. Баги видел (сам не ловил). Но это ожидаемо. Про то, когда выйдет стабильная версия kotlinx.coroutines должен @relizarov знать, предположу что не раньше выхода стабильной версии корутин в языке.

Roman
30.06.2017
14:56:44
^^^ Выход стабильной библиотеки будет когда поддержка я языке стабилизируется

Pavel Shackih
30.06.2017
14:57:58
Можно написать нужные корутины самому например :) Я скажем использую с 0.12, полет нормальный. Баги видел (сам не ловил). Но это ожидаемо. Про то, когда выйдет стабильная версия kotlinx.coroutines должен @relizarov знать, предположу что не раньше выхода стабильной версии корутин в языке.
это забавно, потому что Роман в своей презентации как раз говорил, что Rx сложный потому что надо знать кучу его операторов, которые он использует, а тут надо знать как писать свои корутин билдеры, чтобы их использовать :)

Руслан
30.06.2017
14:58:52
чтобы использовать - нужно брать библиотеки

и читать/писать намного проще чем на Rx

Igor
30.06.2017
15:00:21
Я вот единственного не понял, как красиво обрабатывать ошибки (try/catch нифига не красиво). Наверное надо переходит на Optional и Result

Руслан
30.06.2017
15:02:27
Вроде Роман показывал совершенно тривиальный пример как обернуть существующий апи в коррутины
Скорее всего написать suspend функцию для существующего API. А чтобы использовать эту функцию нужно иметь корутины. Вот они есть в kotlinx.coroutines, как и suspend функции.

Pavel Shackih
30.06.2017
15:04:41
Вроде Роман показывал совершенно тривиальный пример как обернуть существующий апи в коррутины
не про то, там было в начале, что проблема Rx и прочих фреймворков, что в каждом из них используются свои операторы. в корутинах же обычные циклы и try/catch, но при этом асинхронка

Igor
30.06.2017
15:06:29
И это более менее правда (хотя в 90% используются map и flatMap)

Pavel Shackih
30.06.2017
15:07:16
да, тоже с этим согласен, но правда и в том, что для того же андроида и чистой архитектуры используется 5-6

Руслан
30.06.2017
15:08:13
Igor
30.06.2017
15:15:21
Интересно, а можно написать просто Android приложения на коррутинах, без Романовой либы, если вся асинхронностью приходит из чужих фреймворков, а мой код вообще не создаёт потоки? До презентации я думал это невозможно, а после уже кажется что вполне реально.

Ilya
30.06.2017
15:18:09
Мне кажется, вы зря всё в кучу мешаете. Вот есть property delegation механизм в языке. А есть реализация lazy, которая этот механизм использует. Также и с корутинами: kotlinx.coroutine это в каком-то смысле stdlib для корутин. Просто оно не в stdlib из-за того, что после снятия experimental status надо будет переносить в другой пакет ну и хочется развивать эту библиотеку быстрее и без имеющихся на stdlib ограничений.

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

Pavel Shackih
30.06.2017
15:52:59
мне понравилось в корутинах то что, в случае если использовать Rx, то он будет буквально во всем приложении (т.е. каждый метод слоя будет возвращать свой Single) и когда захочется от него отказаться, то придётся почти все переписывать. в случае же корутин можно писать код, который будет возвращать обычные поджики и потом склеивать эти вызовы через корутин билдеры, причём синхронно. это очень круто

Руслан
30.06.2017
15:53:59
ну если тебе нужна полная асинхронность, у тебя все равно до верхнего слоя все должно быть suspend

Страница 226 из 982