@kotlin_lang

Страница 99 из 982
Михаил
09.04.2017
14:08:00
насколько хаскель легкий в рантайме относительно джавы?

фак. он не jvm язык

Boris
09.04.2017
14:08:55
для андроида-то поди джава в рантайме очень легкая

Руслан
09.04.2017
14:09:20
фак. он не jvm язык
frege есть, и какой-то более новый и модный frege

Google
Kirill
09.04.2017
14:09:29
фак. он не jvm язык
есть https://github.com/typelead/eta и https://github.com/Frege/frege

Михаил
09.04.2017
14:12:08
https://github.com/ppelleti/frege-on-android/blob/master/src/main/frege/org/funwithsoftware/frege_example/FregeCode.fr

компактненько

Igor
09.04.2017
14:53:00
компактненько
Пропробуй F#, это как хаскель только без IO монады, зато с (опциональным) классами и OOP. Поддержка хорошая через Xamarin Android

фак. он не jvm язык
Очевидно что нет, он же ленивый и с тайп классами - это ужастно работает на JVM

Igor
09.04.2017
14:59:57
ну и ещё иммутабельность опциональная.
И он не ленивый. В общем есть отличия, но в основном они к лучшему для практической разработки.

? animufag ?
09.04.2017
15:00:19
Очевидно что нет, он же ленивый и с тайп классами - это ужастно работает на JVM
насчёт тайп классов: в jvm методы на уровне байткода уже есть методы с их привязкой к объектам?

Igor
09.04.2017
15:03:55
насчёт тайп классов: в jvm методы на уровне байткода уже есть методы с их привязкой к объектам?
Не совсем понял о чем ты, но JVM байткод почти идентичен Java. В байткоде есть классы/интерфейсы/вирт. методы и тд.

Quantum Harmonizer
09.04.2017
15:04:10
? animufag ?
09.04.2017
15:05:14
я чёт представлял платформонезависимый ассемблер, ну ладно

Диёр
09.04.2017
15:06:10
Если я начну писать проект на котлин, то в случае когда проект придётся дописывать/поддерживать java программисту с этим ведь никаких сложностей не будет?

Igor
09.04.2017
15:06:11
я чёт представлял платформонезависимый ассемблер, ну ладно
Даже не знаю где так, в .NET все тоже самое: байткод ~ C#

Google
Igor
09.04.2017
15:07:12
Ну, jasmin — не LLVM, нет :)
Ну ты некромант ? (Stable release 2.4 / May 7, 2010; 6 years ago)

Igor
09.04.2017
15:07:53
Что?
https://en.wikipedia.org/wiki/Jasmin_(software)

Диёр
09.04.2017
15:08:11
С кодом на Котлине — будут :)
И какого рода сложности возникнут?

Sergey
09.04.2017
15:08:58
доку придется почитать джавистам)

чтобы потом не удивляться очередным пазлерам

Quantum Harmonizer
09.04.2017
15:10:34
https://en.wikipedia.org/wiki/Jasmin_(software)
Хм, я называл так язык, которым изъясняется javap.

Igor
09.04.2017
15:34:07
@Harmonizr > Там главным образом геттеры всяких штук, связанных с persistence. Ну и это: Кстати Бреслав рассказывал (на последнем jpoint) что они как раз работают над тем, что бы твоя "прослойка" связывалась автоматически с реализациями на разных платформах.

https://twitter.com/serjic/status/850620999813009408 В общем вектор такой, но про тайп-классы они тоже думают

Quantum Harmonizer
09.04.2017
16:00:21
О, и правда вектор :)

Теперь очень хочется, чтобы они всё-таки закрыли баги и проблемы с меткой Performance Problem...

Sasha
09.04.2017
17:00:26
Теперь очень хочется, чтобы они всё-таки закрыли баги и проблемы с меткой Performance Problem...
Дико плюсую. Сегодня буквально был вынужден работать на машинке, где далеко все от фен шуя. И поправде сказать было слегка некомфортно. Автокомплит работает порой просто ужасно долго(хотя на джаве все работает быстро), сборка проекта в два раза меньше джавоского занимала в 2, а и в 3 раза больше времени. Котлин 1.1.1.(((

Sasha
09.04.2017
17:04:13
Igor
09.04.2017
17:06:04
два
Жалко. У меня появилась идея разбить проект на модули и вынести их в отдельные maven репозитории (через jitpack.io). Думал поможет быстрее собирать (и архитектура ПО улучшится).

Sasha
09.04.2017
17:11:00
Жалко. У меня появилась идея разбить проект на модули и вынести их в отдельные maven репозитории (через jitpack.io). Думал поможет быстрее собирать (и архитектура ПО улучшится).
Да вот хз. Сегодня собирал jsoup cебе с небольшими правками, так собралось за 7 сек. Это чисто джава. После этого чисто котлин проект без всяких зависимостей 3 класса 150 - 200 строк - 22 сек. Это в idea. В студии тяжелый проект обычно собирается полторы - две минуты, схожий но на котлине от 3 - до 5 минут.

Quantum Harmonizer
09.04.2017
17:31:20
Не думаю, что студия чем-то отличается от идеи (крме урезанности). Но инкрементальная компиляция — вроде норм.

Google
Max
09.04.2017
17:42:55
Lazy

Ну и второй вариант можно использовать

Igor
09.04.2017
17:44:33
Ну Kotlin регексы, это просто сахар над java.util.regex.Pattern И вообще у тебя код разный (попробуй переписать с find/findAll)

Sasha
09.04.2017
17:45:16
спасибо.

Alexandr
09.04.2017
17:55:45
Проверь еще regex на наличие backspace

Есть подозрение что делается лишняя работа при проверке ппттерна

kalkancrypt
09.04.2017
18:07:29
что тут может быть не так? значение листу не могу присвоить val fileList : List<String> ZipFile(Paths.get("somedir").toFile()).use { zf -> fileList = zf.entries().toList().filter { !it.isDirectory }.map { it.name } }

Alexandr
09.04.2017
18:12:06
Ok. Thks.
http://regexr.com я вот тут проверяют

http://www.regexpal.com/ и тут

Sasha
09.04.2017
18:24:20
http://www.regexpal.com/ и тут
Я это обычно юзаю https://regex101.com/ Да дело даже не в регулярке, на дваже она работает быстрее. Попробую сейчас без сахара переписать

Dzmitry
09.04.2017
19:09:52
Igor
09.04.2017
19:32:29
А что у тебя за входные данные? Пытаюсь повторить, не могу получить таких цифр.

Sergey
09.04.2017
20:02:59
одному мне не хватает возможности в идее конвертировать лямбду в функцию и обратно?

Igor
09.04.2017
20:08:39
Sasha
09.04.2017
20:09:05
4pda .ru

Igor
09.04.2017
20:10:10
4pda .ru
Ты на телефоне тестируешь? На па это десятки мс

Sasha
09.04.2017
20:10:53
Ты на телефоне тестируешь? На па это десятки мс
Да, мне смысла нет на пк. Телефон средней по мощности.

kalkancrypt
10.04.2017
04:21:29
Приветствую. Не подскажете, что тут может быть не так? значение листу не могу присвоить val fileList : List<String> ZipFile(Paths.get("somedir").toFile()).use { zf -> fileList = zf.entries().toList().filter { !it.isDirectory }.map { it.name } }

Google
Boris
10.04.2017
04:22:32
MutableList

Нужен

kalkancrypt
10.04.2017
04:30:48
Но ведь я всего лишь объявил, присвоить ведь можно позже? val c: Int // Type required when no initializer is provided c = 3 // deferred assignment

Andrew
10.04.2017
04:35:10
lateinit не работает? Но в целом мьютабл тут логичнее, или перестроить выражение так, чтоб лист возвращался.

kalkancrypt
10.04.2017
04:50:05
А зачем mutable, если я ничего не меняю? Просто хочу понять ) use же не возвращает значение

Kirill
10.04.2017
04:57:00
компилятор не знает, в какой момент вызовется лямбда переданная в use и вызовется ли вообще

соответственно нельзя гарантировать, что fileList будет присвоен

Admin
ERROR: S client not available

Kirill
10.04.2017
05:00:39
https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.io/use.html

kalkancrypt
10.04.2017
05:15:34
понял, все логично. проще говоря, компилятор заранее защищает от недоприсваивания или переприсваивания. спасибо. а как значение use вернуть? так ведь нельзя val fileList : List<String> = ZipFile(Paths.get("somedir").toFile()).use { zf -> return fileList = zf.entries().toList().filter { !it.isDirectory }.map { it.name } }

Boris
10.04.2017
05:54:53
Рекомендую, код в ``\\\`` оборачивать

Мда

Kirill
10.04.2017
05:55:34
убери return

будет работать

так как use инлайнится, return возаращает из метода в котором объявлена лямбда

Boris
10.04.2017
05:57:29
Из лямбды по умолчанию вообще ретурном не выйти, только если уточнить через собаку

Kirill
10.04.2017
05:57:37
val fileList: List<String> = ZipFile(Paths.get("somedir").toFile()).use { zf -> zf.entries().toList().filter { !it.isDirectory }.map { it.name } }

да, в этом случае синтаксис будет таким val fileList: List<String> = ZipFile(Paths.get("somedir").toFile()).use { zf -> return use@zf.entries().toList().filter { !it.isDirectory }.map { it.name } }

kalkancrypt
10.04.2017
06:21:04
просто код писал с телефона, там обратного апострофа нет и меткой не возвращает результат Type inference failed. Expected type mismatch: inferred type is List<String!> but Unit was expected

Google
kalkancrypt
10.04.2017
06:30:42
Облажался )

XENONIUM
10.04.2017
06:31:43
`

Марат
10.04.2017
08:44:06
Доброго времени суток) кто то сталкивался с проблемой связанной с kotlinx.android.synthetic : при обращении к TextView все нормально, но при обращении к другим элементам (Button, RecyclerView) они падают с NPE

Evgeny
10.04.2017
08:44:25
ты где-то косячишь

покажи код

Марат
10.04.2017
08:51:07
Не, все то импортировал, в одной xml все. Из нее же он видит TextView и сетит им текст и пр. А из той же xml листенер на кнопку не может засетить. Причем если явно инициализировать через findViewById то все работает.

? animufag ?
10.04.2017
12:40:21
Кто-нибудь пользовался всерьёз Anko? Так со стороны кажется что всё это здорово и вьюхи можно круто переиспользовать, наследовать и тд, но боюсь что в итоге может оказаться что ей пользуется очень мало людей, слабая поддержка для редких каких-нибудь юз кейзов и новых фич. Отдельный вопрос удобно ли ей пользоваться если большая часть интерфейса описана в xml Также у неё был плагин для wysiwig который пол года назад поломался с новой студией. Сейчас дела хуже/лучше?

Pavel
10.04.2017
12:43:14
Я пользовался Анко, но не на сложных интерфейсах, замерял производительность на слабых устройствах, оказалось что отрисовка происходит на 20 процентов быстрее, нет поддержки констрейнт лайаута, остальные лайауты приходится дописывать по ходу экстеншн функциями

Pavel
10.04.2017
12:45:10
А ты делал датабайндинг через Анко?

Quantum Harmonizer
10.04.2017
12:45:45
А ты делал датабайндинг через Анко?
Эм, не могу себе это представить :)

Pavel
10.04.2017
12:46:26
“Data Binding in Anko” @Lewisrhine https://medium.com/lewisrhine/data-binding-in-anko-77cd11408cf9

Quantum Harmonizer
10.04.2017
12:47:50
В чём там основная суть? Почитал бы с радостью, но надо писать код)

Pavel
10.04.2017
12:48:43
Реализация датабайндинга через Анко) это я к тому, что это вполне можно представить) у меня руки не доходили попробовать, поэтому и спросил

? animufag ?
10.04.2017
13:00:53
обычно двусторонние биндинги как-то не особо нужны. из презентера/контроллера во вьюху монолитно поступают сразу все нужные данные из вьюхи обратно, обычно отдельная обработка на каждый ввод хотя удобно когда есть гарантии, что все поля объекта актуальны

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

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