@kotlin_lang

Страница 707 из 982
Alexey
14.06.2018
21:43:52
а можно пример костылей?

Volodymyr
14.06.2018
21:43:53
Ок, понял. В принципе, я к этому и был склонен. Спасибо.

Google
Alexander
14.06.2018
21:46:07
почему нет? а официальная документация?
Ну поэтому вопрос, что человек уже знает. Если ничего - по доке учиться сложно. Если что-то знает - можно по kotlin koans и доке, но есть шанс подорваться на нюансах платформы java. Наверное небольшой (не пробовал), но есть.

German
14.06.2018
21:47:01
Я плюсую к проблеме

Вот тоже начал учить котлин

Но раньше писал на шарпе и есть опыт джавы

Volodymyr
14.06.2018
21:48:18
Просто, очень много знакомых Андроид девов именно переходят с Джавы на Котлин. А вот что бы кто- то сказал или написал, что начал изучать или изучал Котлин сразу без опыта в других языках - вообще ни одного. Потому стало интересно.

Volodymyr
14.06.2018
21:49:47
Ну, а сейчас же начало второй половины 2018года

Пиндос... 2018...

eugene
14.06.2018
21:51:03
Ну, а сейчас же начало второй половины 2018года
ну android-разработка вроде с 2008 года идёт в основном на java

Ilya
14.06.2018
21:51:15
android сам написан на java и банально для того, чтобы посмотреть сорцы чего угодно, нужно ее знать. Ну никак без нее, глупо обсуждать вообще

German
14.06.2018
21:51:45
Мне кажется джава отойдет на второй план перед котлином в будущем

eugene
14.06.2018
21:52:19
Мне кажется джава отойдет на второй план перед котлином в будущем
это вроде многим кажется в среде android-разработки?

Volodymyr
14.06.2018
21:52:19
Возможно глупо обсуждать знающим, а не знающим - нет)))

Google
Ilya
14.06.2018
21:52:27
гугл не станет никогда рефакторить андроид на котлин)

отойдет, но всегда останется

German
14.06.2018
21:53:26
На Фортране тоже есть проекты)

eugene
14.06.2018
21:53:51
гугл не станет никогда рефакторить андроид на котлин)
ну может быть и нет, но уже появился kotlin api reference(preview): https://developer.android.com/reference/kotlin/packages

на этой странице: https://developer.android.com/reference/ сказано: Developing with Kotlin? Check out the Kotlin reference

German
14.06.2018
21:56:12
А тут все учат котлин ради андроид?

eugene
14.06.2018
21:56:50
А тут все учат котлин ради андроид?
по поводу android я думаю, что это просто пример использования kotlin в определённой среде

German
14.06.2018
21:57:18
Я просто вижу применение в создании кросс-десктоп

Веб не особо кажется пойдет

Alexander
14.06.2018
21:58:41
Веб не особо кажется пойдет
Пока они и не претендуют в общем-то (если под вебом подразумевать JS) :)

eugene
14.06.2018
21:58:42
Веб не особо кажется пойдет
вроде spring поддерживает kotlin официально

Quantum Harmonizer
14.06.2018
21:59:25
German
14.06.2018
22:00:07
Кроссплатформенный десктоп приложения

eugene
14.06.2018
22:00:54
Кроссплатформенный десктоп приложения
вроде qt есть, если нативно?

German
14.06.2018
22:01:12
Зачем натив?

eugene
14.06.2018
22:01:31
Зачем натив?
зачем не натив?)

German
14.06.2018
22:01:35
Можно jar десктоп запилить

И запускать везде

Quantum Harmonizer
14.06.2018
22:16:00
Можно jar десктоп запилить
Так и на Java можно. Swing норм только с пропатченным JDK (как у IDEA), JavaFX не везде есть

1337
14.06.2018
22:45:40
десктоп электрон же

Google
Quantum Harmonizer
14.06.2018
22:46:07
десктоп электрон же
Мы про нормальный десктоп

Электрон не нужен, пока есть браузер

Andrew
15.06.2018
05:11:40
Минуточку, а причём здесь поток? Речь шла во-первых о переполнении стека вызовов, а во-вторых - разве Handler все делает в основном потоке?
Дык совет о tailrec правильный, если очень уж хочется рекурсии, и выйдет под капотом тот же while(true). Handler делает всё в потоке, на котором запущен соответствующий Looper. Если сам Handler() конструируется в UI потоке, то и лупер он подтянет оттуда же. Да и даже если бы автор в пример приводил собственноручно созданный лупер в фоновом потоке, цикл с большой паузой на нём -- это всё ещё один потраченный впустую на время этой паузы поток. Handler на то и сделан, чтобы быть дешёвым краткосрочным планировщиком и разбрасывать на потоки задачи.

Geronimo
15.06.2018
05:41:07
Спят админы видимо?

Artyom
15.06.2018
05:42:38
@Harmonizr

Андрей
15.06.2018
08:14:30
сорян, но опять вопрос про tailrec

есть примерно такое

tailrec fun recursion2(a:Int):Int = if (a==1) 1 else a* recursion2(a-1)

пишет recursive call is not a tail call

окей, как это переписать, чтоб был tail call?

1337
15.06.2018
08:15:47
рекурсию вообще надо удалить из языка, это пережиток уровня goto

Konstantine
15.06.2018
08:16:16
tailrec fun recursion2(a:Int):Int = if (a==1) 1 else a* recursion2(a-1)
Скорее всего внешняя а* мешает

Anna
15.06.2018
08:16:32
окей, как это переписать, чтоб был tail call?
накапливать результат в ещё одном аргументе и сразу же его возвращать, когда дошли до самого дна

1337
15.06.2018
08:16:39
Жабра
15.06.2018
08:17:28
зачем?
Потому что рекурсия используется в фп

Андрей
15.06.2018
08:17:29
Anna
15.06.2018
08:17:44
tailrec fun recursion2(a:Int, acc:Int):Int = if (a==1) acc else recursion2(a-1, a*acc) как-то так

Google
Konstantine
15.06.2018
08:18:30
рекурсию вообще надо удалить из языка, это пережиток уровня goto
Обожаю такой подход. Мне что-то не нужно/мешает - надо нахуй удалить это.

Андрей
15.06.2018
08:18:31
А ещё фп удали.
что такое фп?

1337
15.06.2018
08:18:44
ну goto тоже в ооп использовался, тем не менее люди, использующие его в проде кроме как клоунами не назваются

Жабра
15.06.2018
08:18:47
что такое фп?
Функциональное программирование

Андрей
15.06.2018
08:18:57
Konstantine
15.06.2018
08:19:31
с деревом потом удобно будет работать?
Не надо с деревьями работать с помощью рекурсии )

Зато как удобно
Идеально. Ему надо в нашу думу идти, там любят такое )

Алексей
15.06.2018
08:19:53
Обсуждали же уже

Андрей
15.06.2018
08:19:55
обоснуй ©

1337
15.06.2018
08:20:21
тому що bigО

Алексей
15.06.2018
08:20:27
почему?
Потому что stackoverflow

Konstantine
15.06.2018
08:20:28
почему?
Слишком жирная задача для рекурсии

Алексей
15.06.2018
08:20:42
особенно с учетом большого стэка до тебя в продакшне

1337
15.06.2018
08:21:00
это детект студента второгоо курса

Алексей
15.06.2018
08:21:16
Другой вопрос, что существуют операции, которые действительно проще и правильнее делать через рекурсию

1337
15.06.2018
08:21:21
(решение дерева с рекурсией)

Алексей
15.06.2018
08:21:33
Рекурсивный обход объекта, например (и нет, речь не о деревьях)

Google
Andrey
15.06.2018
08:21:40
(решение дерева с рекурсией)
Обычно на втором курсе и обход в ширину люди знают.

Андрей
15.06.2018
08:22:39
1337
15.06.2018
08:22:55
можно стековерфлоу вызывать когда вздумается

даже с inline?
с инлайн мемори принт

код же копипастится

Aleksandr
15.06.2018
08:23:46
с деревом потом удобно будет работать?
если есть задача и ты пытаешься решить ее деревом и обходом дерева - что-то пошло не так

если конечно это не ast и компиляторы

Aleksandr
15.06.2018
08:24:19
сколько десятилетий назад?

Андрей
15.06.2018
08:24:25
обычно уровней вложенности не очень много

Алексей
15.06.2018
08:24:50
отличная дырка в security
Например, объект: SomeClass( … val someChild: List<SomeClass> = emptyList() ) Как проще будет реализовать рекурсивный обход если вы знаете, что вложенностей не может быть больше 5-6?:)

По уровням, не по количеству

Konstantine
15.06.2018
08:25:37
Я андроидовские бандлы проходил рекурсией. Вроде все живы.

1337
15.06.2018
08:25:56
потом такие выебщики мучают нормальных людей всякими рекурсиями на собесах

Алексей
15.06.2018
08:26:03
Я андроидовские бандлы проходил рекурсией. Вроде все живы.
Как так, там же другая жвм, мало памяти и вообще....

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