@kotlin_lang

Страница 931 из 982
eshch
08.10.2018
18:54:38
1) Пиши на них 2) Докажи его необходимость здесь, т.е. см. выше
а если не докажу, значит ли это что там они не нужны?

Руслан
08.10.2018
18:54:39
for (;;) { } алл хайль макаронному монстру
Все в твоих руках, сделай библиотеку и используй. Какой смысл иметь это в stdlib?

eshch
08.10.2018
18:54:46
какие языки?
руби раст

Google
Руслан
08.10.2018
18:54:53
const val `∞` = true fun main(args: Array<String>) { while (`∞`) { } }

?

1337
08.10.2018
18:55:32
неплохо

Nameless
08.10.2018
18:55:35
Все в твоих руках, сделай библиотеку и используй. Какой смысл иметь это в stdlib?
на котлине можно написать библиотеку которая будет 1 в 1 повторять синтаксис сишного for (x;v;h) { } ?

Денис
08.10.2018
18:55:48
а если не докажу, значит ли это что там они не нужны?
Нет, это значит, что ты не смог доказать, что они здесь нужны, а у создателей этого языка такой хотелки не было.

Dmitriy
08.10.2018
18:55:48
Скажите лучше почему Котлин не умеет в такое (потому что не java?) val a=“123” + “456” + “789”

eshch
08.10.2018
18:56:05
Все в твоих руках, сделай библиотеку и используй. Какой смысл иметь это в stdlib?
у меня вопрос не как это написать себе самому, а почему нет тут, хотя встречается в других языках

Денис
08.10.2018
18:56:33
Dmitriy
08.10.2018
18:56:36
val a=“123”+ “456” + “789”
А теперь вторую строку закоиментируй ?

Google
Mikhail
08.10.2018
18:56:51
const val `∞` = true fun main(args: Array<String>) { while (`∞`) { } }
а просто нельзя этот символ? котлин же может в юникод

Nameless
08.10.2018
18:56:57
А теперь вторую строку закоиментируй ?
ну да неудобно, но другие удобности перевешивают

Dmitriy
08.10.2018
18:57:06
Третью точнее

Nameless
08.10.2018
18:57:20
Денис
08.10.2018
18:57:21
а почему решили?
Моя фамилия вроде не Бреслав?

Nameless
08.10.2018
18:57:25
а куда-же без $$

Alexander
08.10.2018
18:57:42
Скажите лучше почему Котлин не умеет в такое (потому что не java?) val a=“123” + “456” + “789”
Нету доказательства того, что это продолжение строки той же. Есть унарные плюсы, а точки с запятой необязательны. Пример такой был во вторых котлин паззлерах.

dimiii
08.10.2018
18:58:06
eshch
08.10.2018
18:58:16
Моя фамилия вроде не Бреслав?
ну я не у тебя лично спрашиваю, ага

прецедент , если продолжать следовать юридической метафоре )
я так понимаю тут считают, что больше подходит слово хотелка

Bogdan
08.10.2018
18:59:00
а если не докажу, значит ли это что там они не нужны?
у JB есть статистка сяких кейсов, и если нет необходимости в бесконечном цикле, то тогда зачем вводить это ? Это как установить программы и забыть про нее, а потом к тебе прийдет товарищь и спросить что-то сделать, а ты такой "тыж программист" - У меня есть спец прога для этого

Bogdan
08.10.2018
19:00:35
я так понимаю тут считают, что больше подходит слово хотелка
ну единственый аргумент который я услышал, "это есть в руби"

так что да - хотелка

Mikhail
08.10.2018
19:00:55
а почему решили?
потому что цитирую "_Very general note on language design_. Someone from C# design team, don’t remember who exactly told me about a principle I like very much. They start any feature/proposal/idea with the “-200 points”. That means, that unless there are at least 200 points _in favor_ of the feature, they don’t even start designing it. It’s arguable how much each argument/use case/etc adds to the pile, but in general, if you keep in mind that there are _no free features_ (not in terms of JetBrains investment, but in terms of burden added to the language, cost of learning, etc) and that you need to have a very compelling reason to introduce this or that, it makes discussions much more constructive. Just a note."

dimiii
08.10.2018
19:01:50
ну единственый аргумент который я услышал, "это есть в руби"
можно в очередь выстраиваться? хочу unless и постфикс if

Bogdan
08.10.2018
19:01:51
а т.е. другие языки просто так добавляют фичи?
каждый яп может решать разные задачи, иметь сильную\слабую типизацию, быть динамический\статический, с рантаймом\без

Google
eshch
08.10.2018
19:02:16
ну единственый аргумент который я услышал, "это есть в руби"
ну я лично не считаю это аргументом. для меня аргумент - везде должны быть удобные дефолты.

Mikhail
08.10.2018
19:02:22
вообще, @eshchetinin, можешь пойти в канал stdlib в slack и набросить. может найдутся те кто тебя поддержат

Bogdan
08.10.2018
19:02:30
можно в очередь выстраиваться? хочу unless и постфикс if
хочу что бы котлин генерил нейронку, и манил в корунтине

dimiii
08.10.2018
19:03:06
бывает и так
Кто сказал c#?

Igor
08.10.2018
19:05:48
Так делаешь новый проект, подрубаешь туда все что нужно через мавен и из иде открываешь репл. Он подсосет все зависимости модуля
Сделал тоже самое, только с scratch (repl слишком тормознутый, да и много кода там не напишешь)

eshch
08.10.2018
19:06:30
но и тут хочу обсудить

Денис
08.10.2018
19:06:52
но и тут хочу обсудить
Ну так вроде обсудили?

Igor
08.10.2018
19:07:19
А ты пиши мало (кривая рожа с пледом)
Ну это же котлин ?... (а не хаскель)

Mikhail
08.10.2018
19:08:05
Сделал тоже самое, только с scratch (repl слишком тормознутый, да и много кода там не напишешь)
ну да в репле можно только какое нибудь поведение либы проверить только

вообще, хочу scratch со встроенным jmh

dimiii
08.10.2018
19:09:45
вообще, хочу scratch со встроенным jmh
тема для summer of code (эксплуатируем студентов)

Денис
08.10.2018
19:10:24
Когда язык пытается удовлетворить все хотелки всех пользователей (а "избавьте меня от 6 символов раз в 1к-10к строк в некоторых приложениях" - это хотелка, да, это не киллер-фича), получается С++, который в итоге целиком ~никто не знает, и все начинают программировать на малопересекающихся подмножествах языка. Это не очень хорошо и удобно и для языка, и для коммьюнити, и тем более для тулинга, на котором вообще-то JB, создатели Котлина, зарабатывают себе на хлеб с маслом (и икрой). Итого - да, такие мелочи того однозначно не стоят.

eshch
08.10.2018
19:10:39
ну я лично не считаю это аргументом. для меня аргумент - везде должны быть удобные дефолты.
ну и избыточность тру мне не нравится. мне не нужно проверять никакое условие. мне кажется кейс достаточно частый, и это косвенно подтверждается наличием такой конструкции (киворд или функция) в других языках

Quantum Harmonizer
08.10.2018
19:11:06
охереть, вы до сих пор об этом!

Google
Денис
08.10.2018
19:13:07
ну и избыточность тру мне не нравится. мне не нужно проверять никакое условие. мне кажется кейс достаточно частый, и это косвенно подтверждается наличием такой конструкции (киворд или функция) в других языках
Вытекает ли из того, что в golang true и false - не кейворды/литералы, а идентификаторы верхнего уровня, значения которых можно переопределить, что так стоит делать в других языках? :D

(вопрос риторический, я солидарен с тем, что дискуссию пора заканчивать)

eshch
08.10.2018
19:17:01
Вытекает ли из того, что в golang true и false - не кейворды/литералы, а идентификаторы верхнего уровня, значения которых можно переопределить, что так стоит делать в других языках? :D
вытекает ли из того, что я привел пример других языков, что я считаю это аргументом за самим по себе? притом что я явно сказал что нет?

Alexandr
09.10.2018
04:50:08
Подмен делегата через рефлексию имеет смысл, если делегат о куче методов/полей и пробрасывать их все руками тяжко. Нифига не безопасно и громоздко, но вот рабочий пример: fun main(args: Array<String>) { val proxy = TestProxy(TestData("old")) println(proxy.name) proxy.data = TestData("new") println(proxy.name) } interface Test { val name: String } class TestData(override val name: String) : Test class TestProxy(data: Test) : Test by data { var data: Test = data set(value) { delegateField.set(this, value) field = value } companion object { private val delegateField: Field by lazy { val declaredFields = TestProxy::class.java.declaredFields val field: Field = declaredFields.find { it.name.contains("\$\$delegate") }!! field.isAccessible = true val modifiersField = Field::class.java.getDeclaredField("modifiers") modifiersField.isAccessible = true modifiersField.setInt(field, field.modifiers and Modifier.FINAL.inv()) field } } }
вот так проще: interface Test { val name: String } class TestData(override val name: String) : Test class TestProxy(var data: Test) : Test by data { init { val declaredFields = TestProxy::class.java.declaredFields val field: Field = declaredFields.find { it.name.contains("\$\$delegate") }!! field.isAccessible = true field.set(this, Proxy.newProxyInstance(TestProxy::class.java.classLoader, arrayOf(Test::class.java), { proxy, method, args -> method.invoke(data, *(args ?: arrayOf()))})) } } fun main(args: Array<String>) { val proxy = TestProxy(TestData("old")) println(proxy.name) proxy.data = TestData("new") println(proxy.name) } выводит: old new

Admin
ERROR: S client not available

Alexandr
09.10.2018
04:50:55
но производительность будет хуже

Bogdan
09.10.2018
04:57:29
вытекает ли из того, что я привел пример других языков, что я считаю это аргументом за самим по себе? притом что я явно сказал что нет?
Ты привел 1н яп, который е является показательным, скоторым сложно проводить грани, вот дарт хороший синтаксис приятный, но отсутствия нормально вывода типов меняет все, мне после котлина было не вмоготу. Привиди ходьбы 3-и кейса (а лучше 5-ть), где нужен такой цикл, ну и обосновать чего твой вариант будет предпочтительней. Вот только после этого тебя хоть немного выслушают.

eshch
09.10.2018
07:26:13
Ты привел 1н яп, который е является показательным, скоторым сложно проводить грани, вот дарт хороший синтаксис приятный, но отсутствия нормально вывода типов меняет все, мне после котлина было не вмоготу. Привиди ходьбы 3-и кейса (а лучше 5-ть), где нужен такой цикл, ну и обосновать чего твой вариант будет предпочтительней. Вот только после этого тебя хоть немного выслушают.
я не считаю вообще примеры языков аргументом за самим по себе. могу еще три раза это написать. это всего лишь факт, явно имеющий отношение к вопросу, и потому требующий осмысления. числа 3, 5, 200 (последнее - из цитаты на английском выше) взяты с потолка, потому аргументами не являются.

Alexander
09.10.2018
07:37:29
Я фигею с этих русских. 300 сообщений накатали по такой бредовой теме.

Алексей
09.10.2018
07:40:03
Я фигею с этих русских. 300 сообщений накатали по такой бредовой теме.
я ж правильно понимаю, что обсуждали "нам не нужно много всего, нам и так норм"?

Alexander
09.10.2018
07:40:59
обсуждали конструкцию для бесконечного цикла с синтаксисом while{...}

Декскать, она должна быть в stdlib

Roman
09.10.2018
07:43:55
И какой номер issue в YouTrack?

Алексей
09.10.2018
07:44:53
Alexander
09.10.2018
07:45:15
Ой, не надо по новой.

Алексей
09.10.2018
07:45:21
while ( { true } ) { ... } Так, что ли?

Ой, не надо по новой.
просто интересно

Alexander
09.10.2018
07:46:20
Да нет, он предлагал дефолт сделать типа while(condition: ()->Boolean = {true})

Google
Alexander
09.10.2018
07:46:26
Хочется человеку

Алексей
09.10.2018
07:47:00
ясненько

Alexander
09.10.2018
07:47:06
Резюмирую для тех, кому лень читать. Единственная разумная мысль была в начале. Хочется - напиши свое расширение. Одна строчка кода

Алексей
09.10.2018
07:47:12
ну хочется - пущай сделает

ясненько, в общем

Alexander
09.10.2018
07:51:12
Там где-то в середине еще была разумная мысль о том, что stdlib должен быть чем меньше, тем лучше. Я поддерживаю если что. Я не на андроиде, но минимализм никому еще не повреждал. tornadofx тоже надо распилить, вроде даже планы были.

Алексей
09.10.2018
07:53:58
Про торнадо пока ничего не могу сказать, но да, факт в том, что чем меньше stdlib - тем лучше. Главное, чтобы в случае чего можно было всё остальное легко получить и, главное, узнать, откуда получить

А то получится как с C/C++

Alexander
09.10.2018
07:54:55
Да, я был в шоке, когда обнаружил, что там комплексные числа в стандартной библиотеке ?

Alexander
09.10.2018
07:55:35
ага, сам обалдел.

Kirill
09.10.2018
07:56:00
Всем нужны комплексные числа.

Алексей
09.10.2018
07:56:45
Всем нужны комплексные числа.
Хлебом не корми, только дай чего-нибудь с ними повычислять

Alexander
09.10.2018
07:56:52
Конечно, куда же без них. У сишников вообще все стандартной библиотеке, поскольку нет управления зависимостями и все что не в ней работать не будет.

Roman
09.10.2018
07:57:58
Любой game программист тебе скажет что всем нужны кватернионы, а от комплексных чисел никакой пользы ;)

Leonid
09.10.2018
07:59:00
Сделайте себе либу наподобие https://github.com/czyzby/kotlin-times и радуйтесь whilе'у без true))

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