Size: a a a

Programming Offtop

2020 July 25

BV

Boris Vanin 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, которые нафиг не нужны в асинхронщине, но полезны в других областях.
Наконец, изучение языка - это не только изучение синтаксиса, это ещё и изучение идиом. И попытки использовать идиомы другого языка - распространённая ошибка новичков, которую они допускают в силу приобретенных привычек и которая ведёт к фрустрации, потому что идиомы не те, к которым они привыкли. Поэтому программирование на этом языке кажется _странным_. Требуется время, чтобы переделать свои привычки и использовать более подходящие идиомы.
Поэтому, кстати, нет плохих и хороших языков. Есть языки, идиомы которых _нравятся_ и языки, идиомы которых _не нравятся_. Мне, например, _не нравятся_ идиомы го и питона. Но я в восторге от идиом лиспа и перла. Возможно, просто котлин не для тебя и тебе больше подходит скала. Но котлин != скала и не стоит пытаться переиспользовать идиомы из скалы в котлине или жаловаться на то, что идиомы другие, _плохие_.
Спасибо, ты восполнил пробелы в моём универском образовании
источник

КР

Кирилл Романенко... in Programming Offtop
А я наоборот ушёл от suspend () -> T к IO<T>.
источник

КР

Кирилл Романенко... in Programming Offtop
Только у меня свой IO. А точнее, я завернул 1 в 2.
источник

AM

Andrew Mikhaylov in Programming Offtop
Та часть, которая про гугель, прекрасная, конечно
источник

AM

Andrew Mikhaylov in Programming Offtop
К выходным подоспели сразу две истории про то, как большие компании обижают маленьких.

Amazon, как выясняется, взял за привычку встречаться со стартапами, получать от них массу информации, иногда даже инвестировать в них через собственный инвестфонд, а потом выпускать аналогичный продукт, используя полученную информацию. По крайней мере, так утверждают основатели стартапов, которых опросили в Wall Street Journal. Amazon, разумеется, отрицает подобные обвинения.
Надо цинично отметить, что стартапы большим компаниям для того и нужны, чтобы быстро проверить гипотезу. Тем более, что совершенно новых идей немного и большинство стартапов к носителям таких идей не относятся. Хотя, конечно, если речь о злоупотреблении доступом к проприетарной информации, а не вообще принципиальном знании, что такую-то штуку можно сделать на таких-то условиях, то дело обстоит иначе.

Google ведет себя примерно похоже — журналисты TheInformation раскопали сведения о внутреннем проекте под названием LockBox, который используется для сбора и анализа статистики устройств, работающих на Android. Вы сами можете себе представить, какой это океан информации, правда? В принципе, собирать такую информацию может любой разработчик, но сбор будет ограничен устройствами, на которых установлено его приложение. В случае с Google ситуация выглядит немного иначе — статистика собирается со всех смартфонов, где установлены Google Mobile Service, а это вообще все смартфоны на Android, исключая китайские внутренние версии и Huawei. При этом, как сообщают источники внутри компании, эта статистика активно используется для сравнения данных по приложениям Google и конкурентов, а готовя к запуску в рамках Youtube сервиса коротких видео, чтобы конкурировать с TikTok, аналитики использовали данные по приложениям TikTok и его конкурентов для разработки своего продукта.

Интересно, а как к таким вопросам относятся в Apple? То есть как должны, мы знаем, конечно.
источник

AM

Andrew Mikhaylov in Programming Offtop
Промышленный, мать его, шпионаж)
источник

AE

Alexandr Emelyanov in Programming Offtop
Самым громким воровством так и останется стыривание мышки Гейтсом)
источник

AE

Alexandr Emelyanov in Programming Offtop
Я думаю такое масштабное влияние на индустрию мало что оказывает, тем более воруется
источник

AE

Alexandr Emelyanov in Programming Offtop
О том как изменилась картина заболеваемости остальными вирусными инфекциями в период пандемии https://syndromictrends.com/metric/panel/rp/percent_positivity/organism/main
источник

AN

Alexander Nozik in Programming Offtop
Alexandr Emelyanov
О том как изменилась картина заболеваемости остальными вирусными инфекциями в период пандемии https://syndromictrends.com/metric/panel/rp/percent_positivity/organism/main
прикольно, что грипп почти в ноль упал
источник

AN

Alexander Nozik in Programming Offtop
хорошая картинка
источник

AE

Alexandr Emelyanov in Programming Offtop
Ага
источник

AM

Andrew Mikhaylov in Programming Offtop
Alexandr Emelyanov
Я думаю такое масштабное влияние на индустрию мало что оказывает, тем более воруется
Что хуже, украденный косарь баксов единоразово или украденные по сто баксов сто раз? :) Если гугл в такой нечестной конкуренции под каждый свой продукт мутит себе информацию, и будет мутить под новые продукты, в совокупности они, вероятно, переплюнут любого Гейтса :)
источник

AE

Alexandr Emelyanov in Programming Offtop
Я как то не думал что риновирусы самое распространенное
источник

AN

Alexander Nozik in Programming Offtop
Alexandr Emelyanov
Я как то не думал что риновирусы самое распространенное
Странно, что на соседней картинке: https://syndromictrends.com/metric/panel/gi/percent_positivity/organism/main такого серьезного падения нет. Вроде руки должны были чаще мыть... или это как раз те, что пищевые отравления. Похоже что так.
источник

BP

Bogdan Panchenko in Programming Offtop
Alexandr Emelyanov
Я как то не думал что риновирусы самое распространенное
Ну это наша "простуда"
источник

AE

Alexandr Emelyanov in Programming Offtop
Andrew Mikhaylov
Что хуже, украденный косарь баксов единоразово или украденные по сто баксов сто раз? :) Если гугл в такой нечестной конкуренции под каждый свой продукт мутит себе информацию, и будет мутить под новые продукты, в совокупности они, вероятно, переплюнут любого Гейтса :)
Думаешь Гейтс спиздил только что то одно?
источник

AE

Alexandr Emelyanov in Programming Offtop
источник

AE

Alexandr Emelyanov in Programming Offtop
Я думаю майки тоже подобным промышляют
источник