Size: a a a

Programming Offtop

2020 July 25

AM

Andrew Mikhaylov in Programming Offtop
Alexandr Emelyanov
Думаешь Гейтс спиздил только что то одно?
Ну ты ж только про мышь писал)

Да и вообще, странное оправдание, мол, Майкрософт подобным занимается, что тут такого 🤷‍♂
источник

AE

Alexandr Emelyanov in Programming Offtop
Я никого не оправдываю)
источник

BP

Bogdan Panchenko in Programming Offtop
Andrew Mikhaylov
Ну ты ж только про мышь писал)

Да и вообще, странное оправдание, мол, Майкрософт подобным занимается, что тут такого 🤷‍♂
Просто уже вроде не стоит этому удивляться
источник

AM

Andrew Mikhaylov in Programming Offtop
Bogdan Panchenko
Просто уже вроде не стоит этому удивляться
А кто-то удивлялся тут?)
источник

AM

Andrew Mikhaylov in Programming Offtop
Ладно, проскакали
источник

BP

Bogdan Panchenko in Programming Offtop
Andrew Mikhaylov
Та часть, которая про гугель, прекрасная, конечно
обычная истоия одна из 1000
источник

BP

Bogdan Panchenko in Programming Offtop
вот вопрос что с этим делать, пока ответов особо не было
источник

AM

Artem Molotov in Programming Offtop
"Каждый раз смеюсь, когда индивидумы называют себя инженерами только на том основании, что иногда из говна и палок изготавливают костыли."
источник

AM

Artem Molotov in Programming Offtop
на случай важных переговоров
источник

(

( in Programming Offtop
Ilmir
@happy_bracket Итак, сейчас 7 утра субботы, у меня, наконец, есть настроение ответить тебе подробно, почему я не люблю HKT и весь "тру ФП", который идёт от хаскеля в другие языки, причём идёт в виде крестового похода, объявляя всё остальное ересью, словно существует один и только один способ решения задачи, независимо от задачи.
Но перед тем, как я перейду к ФП и, тем более, "тру ФП", я упомяну ООП с его вездесущими паттернами, адепты которых вели (а некоторые и сейчас ведут) себя похоже на сегодняшних адептов "тру ФП" и говорят о том, что паттерны - наше всё и только через паттерны можно писать расширяемый код. Доходило даже до того, что некоторые адепты code shape в ФП языках обозвали паттернами ¯\_(ツ)_/¯. Я, разумеется, выступаю против подобного. Потому что паттерны, как бы не были они хороши для унификации, а именно, унификации кода на разных языках (то есть код на смолтолке, плюсах и джаве будет отличаться только синтаксисом), оставляют за бортом кое-что важное. И это кое-что важное, которое я назову языковыми идиомами - то, что отличает _идеоматический_ код на одном языке от _идиоматического_ кода на другом. Отсюда и название - "идиомы". Они лежат где-то между синтаксисом и семантикой. То есть, одну семантику можно выразить разными идиомами на разных языках. Сравни код на шестой джаве и котлине 1.0:
ArrayList<Integer> list = new ArrayList<Integer>();
for (int i = 0; i < limit; i++) {
   list.add(i * i);
}

и
val list = (0 until limit).map { it * it }

они делают одно и то же, то есть имеют одну семантику. Но они отличаются также больше, чем синтаксисом.
Поэтому, кстати, тут @noraltavir пропесочил мой
while(
   when (val c = peek()) {
       c.isSpace() -> {
           pop()
           true
       }
       else -> false
   }
);

потому что этот цикл, будучи синтаксически и семантически корректен, не идиоматичен.
Идиомы - это то, что отличает один язык от другого. Поэтому, кстати, многие гоферы с годами опыта на го не понимают, зачем нужны дженерики в го. Потому что у них есть свои идиомы. Они прекрасно понимают, зачем нужны дженерики в других языках. Но зачем в го - нет. После появления дженериков появятся новые идиомы, а старые либо пробразятся, либо исчезнут, как было с джавой после появления в ней сначала тех же дженериков, а потом и лямбд со стримами.
Требовать от языка идиом другого языка, без попыток разобраться в его идиомах - это то, что я называю фанатизмом. Arrow пришли, наконец, к тому, чтобы не идти против языка, пытаясь натянуть чужие языковые идиомы, в данном случае IO, а взять существующие. В данном случае - suspend. Я, кстати, поэтому спросил тебя, не попутал ли ты HKT и IO. Потому что то IO, что есть в Arrow, на раз заменяется suspend. Удивительно, как проще становится код, если не пытаться натянуть идиомы из другого языка, а использовать уже существующие. Что-то мне подсказывет, что подобным образом можно избавиться также от Kind.
Ещё раз, я прекрасно понимаю пользу HKT... в скале и хаскеле. В котлине - пусть сначала идиома suspend получит большее распространение, за пределами асинхронщины. Я как раз топлю за multifire continuations, которые нафиг не нужны в асинхронщине, но полезны в других областях.
Наконец, изучение языка - это не только изучение синтаксиса, это ещё и изучение идиом. И попытки использовать идиомы другого языка - распространённая ошибка новичков, которую они допускают в силу приобретенных привычек и которая ведёт к фрустрации, потому что идиомы не те, к которым они привыкли. Поэтому программирование на этом языке кажется _странным_. Требуется время, чтобы переделать свои привычки и использовать более подходящие идиомы.
Поэтому, кстати, нет плохих и хороших языков. Есть языки, идиомы которых _нравятся_ и языки, идиомы которых _не нравятся_. Мне, например, _не нравятся_ идиомы го и питона. Но я в восторге от идиом лиспа и перла. Возможно, просто котлин не для тебя и тебе больше подходит скала. Но котлин != скала и не стоит пытаться переиспользовать идиомы из скалы в котлине или жаловаться на то, что идиомы другие, _плохие_.
Ща я сяду за комп и накатаю ответный лонгрид
источник

BP

Bogdan Panchenko in Programming Offtop
Так все закупились попкорном ?
источник

AN

Alexander Nozik in Programming Offtop
Bogdan Panchenko
Так все закупились попкорном ?
Ну реплика Ильмира была хороша. Если ответная будет настолько же аргументирована, то замечательно
источник

AD

Apache DOG™ in Programming Offtop
Ilmir
@happy_bracket Итак, сейчас 7 утра субботы, у меня, наконец, есть настроение ответить тебе подробно, почему я не люблю HKT и весь "тру ФП", который идёт от хаскеля в другие языки, причём идёт в виде крестового похода, объявляя всё остальное ересью, словно существует один и только один способ решения задачи, независимо от задачи.
Но перед тем, как я перейду к ФП и, тем более, "тру ФП", я упомяну ООП с его вездесущими паттернами, адепты которых вели (а некоторые и сейчас ведут) себя похоже на сегодняшних адептов "тру ФП" и говорят о том, что паттерны - наше всё и только через паттерны можно писать расширяемый код. Доходило даже до того, что некоторые адепты code shape в ФП языках обозвали паттернами ¯\_(ツ)_/¯. Я, разумеется, выступаю против подобного. Потому что паттерны, как бы не были они хороши для унификации, а именно, унификации кода на разных языках (то есть код на смолтолке, плюсах и джаве будет отличаться только синтаксисом), оставляют за бортом кое-что важное. И это кое-что важное, которое я назову языковыми идиомами - то, что отличает _идеоматический_ код на одном языке от _идиоматического_ кода на другом. Отсюда и название - "идиомы". Они лежат где-то между синтаксисом и семантикой. То есть, одну семантику можно выразить разными идиомами на разных языках. Сравни код на шестой джаве и котлине 1.0:
ArrayList<Integer> list = new ArrayList<Integer>();
for (int i = 0; i < limit; i++) {
   list.add(i * i);
}

и
val list = (0 until limit).map { it * it }

они делают одно и то же, то есть имеют одну семантику. Но они отличаются также больше, чем синтаксисом.
Поэтому, кстати, тут @noraltavir пропесочил мой
while(
   when (val c = peek()) {
       c.isSpace() -> {
           pop()
           true
       }
       else -> false
   }
);

потому что этот цикл, будучи синтаксически и семантически корректен, не идиоматичен.
Идиомы - это то, что отличает один язык от другого. Поэтому, кстати, многие гоферы с годами опыта на го не понимают, зачем нужны дженерики в го. Потому что у них есть свои идиомы. Они прекрасно понимают, зачем нужны дженерики в других языках. Но зачем в го - нет. После появления дженериков появятся новые идиомы, а старые либо пробразятся, либо исчезнут, как было с джавой после появления в ней сначала тех же дженериков, а потом и лямбд со стримами.
Требовать от языка идиом другого языка, без попыток разобраться в его идиомах - это то, что я называю фанатизмом. Arrow пришли, наконец, к тому, чтобы не идти против языка, пытаясь натянуть чужие языковые идиомы, в данном случае IO, а взять существующие. В данном случае - suspend. Я, кстати, поэтому спросил тебя, не попутал ли ты HKT и IO. Потому что то IO, что есть в Arrow, на раз заменяется suspend. Удивительно, как проще становится код, если не пытаться натянуть идиомы из другого языка, а использовать уже существующие. Что-то мне подсказывет, что подобным образом можно избавиться также от Kind.
Ещё раз, я прекрасно понимаю пользу HKT... в скале и хаскеле. В котлине - пусть сначала идиома suspend получит большее распространение, за пределами асинхронщины. Я как раз топлю за multifire continuations, которые нафиг не нужны в асинхронщине, но полезны в других областях.
Наконец, изучение языка - это не только изучение синтаксиса, это ещё и изучение идиом. И попытки использовать идиомы другого языка - распространённая ошибка новичков, которую они допускают в силу приобретенных привычек и которая ведёт к фрустрации, потому что идиомы не те, к которым они привыкли. Поэтому программирование на этом языке кажется _странным_. Требуется время, чтобы переделать свои привычки и использовать более подходящие идиомы.
Поэтому, кстати, нет плохих и хороших языков. Есть языки, идиомы которых _нравятся_ и языки, идиомы которых _не нравятся_. Мне, например, _не нравятся_ идиомы го и питона. Но я в восторге от идиом лиспа и перла. Возможно, просто котлин не для тебя и тебе больше подходит скала. Но котлин != скала и не стоит пытаться переиспользовать идиомы из скалы в котлине или жаловаться на то, что идиомы другие, _плохие_.
Вы час это строчили? Не иначе как с телефона, но это только увеличивает ваши заслуги.  Ваша позиция ясна и понятна, и достойна уважения. Но вы выпускаете несколько вещей. Во-первых: тру ФП идёт ой не от хаскеля. Оно идёт от конструктивной математики и лямбда исчисления и потом сверху из того что описано в category theory for working mathematician. Следствие этого пункта: у одного термина по хорошему должно быть одно значение, и если вы что то называете ФП, это должно соответствовать эталону из п.1, по мнению "крестоносцев". Вы не можете сделать какую-то лабуду и назвать её матан, точно так же им ФП. Во вторых: следование идиомам языка прямой способ запереть себя в них и больше за эти рамки не выходить. Язык это всего лишь средство выражения чего-то, это не священная корова, lingua kotlina non penis canina тут не работает. По этому идиомы языка это то что подлежит критике и правке, и сюда докапывается скобка. В третьих, идиомы скалы и ФП прекрасно переиспольузуются хоть в джаве хоть в котлине, не все но все же многие, и переиспользуются зашиьись
источник

AN

Alexander Nozik in Programming Offtop
Apache DOG™
Вы час это строчили? Не иначе как с телефона, но это только увеличивает ваши заслуги.  Ваша позиция ясна и понятна, и достойна уважения. Но вы выпускаете несколько вещей. Во-первых: тру ФП идёт ой не от хаскеля. Оно идёт от конструктивной математики и лямбда исчисления и потом сверху из того что описано в category theory for working mathematician. Следствие этого пункта: у одного термина по хорошему должно быть одно значение, и если вы что то называете ФП, это должно соответствовать эталону из п.1, по мнению "крестоносцев". Вы не можете сделать какую-то лабуду и назвать её матан, точно так же им ФП. Во вторых: следование идиомам языка прямой способ запереть себя в них и больше за эти рамки не выходить. Язык это всего лишь средство выражения чего-то, это не священная корова, lingua kotlina non penis canina тут не работает. По этому идиомы языка это то что подлежит критике и правке, и сюда докапывается скобка. В третьих, идиомы скалы и ФП прекрасно переиспольузуются хоть в джаве хоть в котлине, не все но все же многие, и переиспользуются зашиьись
Ну ерунда же. Математических моделей существует на два порядка больше, чем языков. И уверяю вас, есть математика и для тру-ОП..
источник

AN

Alexander Nozik in Programming Offtop
Говорить, что все, для чего есть математика есть истина - очень странно. Математика есть для всего
источник

BP

Bogdan Panchenko in Programming Offtop
Apache DOG™
Вы час это строчили? Не иначе как с телефона, но это только увеличивает ваши заслуги.  Ваша позиция ясна и понятна, и достойна уважения. Но вы выпускаете несколько вещей. Во-первых: тру ФП идёт ой не от хаскеля. Оно идёт от конструктивной математики и лямбда исчисления и потом сверху из того что описано в category theory for working mathematician. Следствие этого пункта: у одного термина по хорошему должно быть одно значение, и если вы что то называете ФП, это должно соответствовать эталону из п.1, по мнению "крестоносцев". Вы не можете сделать какую-то лабуду и назвать её матан, точно так же им ФП. Во вторых: следование идиомам языка прямой способ запереть себя в них и больше за эти рамки не выходить. Язык это всего лишь средство выражения чего-то, это не священная корова, lingua kotlina non penis canina тут не работает. По этому идиомы языка это то что подлежит критике и правке, и сюда докапывается скобка. В третьих, идиомы скалы и ФП прекрасно переиспольузуются хоть в джаве хоть в котлине, не все но все же многие, и переиспользуются зашиьись
> у одного термина по хорошему должно быть одно значение

Тогда дайте определение фп
источник

BP

Bogdan Panchenko in Programming Offtop
Apache DOG™
Вы час это строчили? Не иначе как с телефона, но это только увеличивает ваши заслуги.  Ваша позиция ясна и понятна, и достойна уважения. Но вы выпускаете несколько вещей. Во-первых: тру ФП идёт ой не от хаскеля. Оно идёт от конструктивной математики и лямбда исчисления и потом сверху из того что описано в category theory for working mathematician. Следствие этого пункта: у одного термина по хорошему должно быть одно значение, и если вы что то называете ФП, это должно соответствовать эталону из п.1, по мнению "крестоносцев". Вы не можете сделать какую-то лабуду и назвать её матан, точно так же им ФП. Во вторых: следование идиомам языка прямой способ запереть себя в них и больше за эти рамки не выходить. Язык это всего лишь средство выражения чего-то, это не священная корова, lingua kotlina non penis canina тут не работает. По этому идиомы языка это то что подлежит критике и правке, и сюда докапывается скобка. В третьих, идиомы скалы и ФП прекрасно переиспольузуются хоть в джаве хоть в котлине, не все но все же многие, и переиспользуются зашиьись
Математика это тоже средство описание сущности
источник

AD

Apache DOG™ in Programming Offtop
Bogdan Panchenko
> у одного термина по хорошему должно быть одно значение

Тогда дайте определение фп
Я же написал, одно из лямбда исчислений, и теории поверх него - Например теория категорий и так далее
источник

AN

Alexander Nozik in Programming Offtop
Apache DOG™
Я же написал, одно из лямбда исчислений, и теории поверх него - Например теория категорий и так далее
Теория категорий никак не поверх лямбда исчисления
источник

AD

Apache DOG™ in Programming Offtop
Alexander Nozik
Ну ерунда же. Математических моделей существует на два порядка больше, чем языков. И уверяю вас, есть математика и для тру-ОП..
Если ты назовёшь изобретенную теорию матанализом то с тобой не согласятся, потому что это имя уже занято
источник