Viacheslav
ожидаемо > open System;; > type NaN = Int32.MinValue;; type NaN = Int32.MinValue;; -----------------^^^^^^^^ stdin(7,18): error FS0039: The type 'MinValue' is not defined. хотя, если учитывать твои прошлые рассказы, не удивлюсь, если это уже в проде 😂😂
Nikolay
В дотнете так же
Это по спеке так
Shub
вас больше ничего не удивляет, нет?
Shub
у нас MinValue вполне заурядное значение для вычислений в широком ряду случаев
Viacheslav
вас больше ничего не удивляет, нет?
ну конечно именовать значения с большой буквы - тоже фи
Shub
забавно, что в разговорах он вполне вменяем и по многим вопросам наша точка зрения совпадает.
Shub
но временами у меня такое ощущение, что код за него пишут фрилансеры с апворка
Анна
цитирую по памяти. в оригинале let NaN = Int32.MinValue
я изначально так и прочитала 🤔
Shub
говорю ему недавно - "наши джуны не могут в обработку ошибок, весь IO возвращает Async<unit> и при этом все ссылаются на тебя, мол, ты разрешил`. он такой "о! хорошо что ты это сказал, я как раз нашел хорошее решение!" и кидает мне ссылку на free monads recipe в симановском блоге
Roman
цитирую по памяти. в оригинале let NaN = Int32.MinValue
это не вяжется с вашей любовью делать типы. Почему не type Number = | Number of int32 | NaN ?
Shub
я бы поставил вопрос слегка иначе: зачем нужен NaN в нашем случае?
Shub
и если он нужен, то почему бы не взять библиотечную реализацию?
Roman
и если он нужен, то почему бы не взять библиотечную реализацию?
int System.Double.NaN похоже как раз возвращает мин валью. Так что ваш архитектор просто оптимизнул
Roman
но есть ньюанс
архитектор выше этого дерьма
Shub
плюс у нас не меньше половины значений в диапазоне int64
Vladimir
Блин, за подготовкой к митапу такую новость пропустил https://www.youtube.com/watch?v=DEOSHab5a4c
Anatoly
там Дон Сайм признаётся, что он приложил руку к C#
Anatoly
https://twitter.com/mikehadlow/status/1171691868024987648 набросик принесу
Ayrat
там Дон Сайм признаётся, что он приложил руку к C#
А ты читал его чтиво про историю фшарпа?
Ayrat
Недавно вторая редакция вышла
Anatoly
А ты читал его чтиво про историю фшарпа?
нет, я вообще не в курсе литературы про фшарп
Ayrat
нет, я вообще не в курсе литературы про фшарп
Он там рассказывает про основание дотнета, про "прожект 7", про Майкрософт ресерч времен рассвета
Ayrat
Как там из 7 языков, которые пообещали на старт дотнета 1.0, 5 было чисто фп, с хаскель.нет в нагрузку. И как все эти академики слились и не сделали нихуя
Ayrat
Короче, охуенное чтиво
Anatoly
ну ты сразу название или ссылку давай
Ayrat
@aensidhe
Ayrat
https://twitter.com/dsyme/status/1169190489129652224?s=12
Anatoly
спасибо
Vladislav
там Дон Сайм признаётся, что он приложил руку к C#
Этот дядя дженерики пилил и все такое
Vladislav
Так что да
Анна
Vasiliy
злучаныя?
Анна
чтоб войти в хаскель, все сайд-эффекты надо в зале оставить
штанга в сочетании с гирькой дают очень интересные побочные эффекты, особенно если на растяжку забить 🌚
Nikolay
Кто-чем JSON сереализует/десериализует?
Doge
Кто-чем JSON сереализует/десериализует?
Смотря где. На скале - circe На rust - serde На хаскеле - aeson
Nikolay
Я про F#
Nikolay
жеж
Doge
После тайпклассовых сериализаторов очень сложно к другим вернутся.
Ayrat
Смотря где. На скале - circe На rust - serde На хаскеле - aeson
я так понял, что jackson это ньютонсофт в жабе Я скоро задумаюсь о перформансе сериализации. Кирке в этом плане лучше? Протобаф не предлагать, нужен жсон
Nikolay
Кто-чем JSON сереализует/десериализует в F#?
Ayrat
ну и обычный ньютонсофт
Ayrat
утф8 просто лучше
Doge
я так понял, что jackson это ньютонсофт в жабе Я скоро задумаюсь о перформансе сериализации. Кирке в этом плане лучше? Протобаф не предлагать, нужен жсон
Тут всё хитрее. Circe - эргономичный, но не самый шустрый, jackson быстрее может выходить. Самый шустрый вообще jsoniter, который на макросах с компайл тайм генерацией кодеков: https://plokhotnyuk.github.io/jsoniter-scala/ Тут их бенчи.
Nikolay
utf8json
Для каждого типа нужно ручками описывать?
Ayrat
он на рефлексии и быстрый как понос
Ayrat
и с фшарп типами работает без всяких там climutable
Ayrat
Спасибо :D
Ayrat
и да, jsoniter надо пробовать
Nikolay
и с фшарп типами работает без всяких там climutable
Это чисто Utf8Json, или нужен ещё какой-нибудь Utf8Json.FSharp?
Ayrat
Это чисто Utf8Json, или нужен ещё какой-нибудь Utf8Json.FSharp?
нужен второй. На него ссылка в официальном ридми. Там всего 2 файла в проекте
Nikolay
И слова "рефлексия" и "быстро" в одном предложении как-то не очень выглядят 🤔
Ayrat
да, оно там хвастается зеро аллоком (в промежуточных вычислениях)
Ayrat
старые данные https://user-images.githubusercontent.com/46207/30883721-11e0526e-a348-11e7-86f8-efff85a9afe0.png
Nikolay
Ну если он в первый раз пробежит рефлексией, и что-то там нагенерирует, тогда ок)
Nikolay
Такими хаками тоже пользуюсь 🌚
Vasily
Мне не подойдет, к сожалению
Vasily
Там надо перед сборкой прогонять сериализатор
Vasily
А он сишарпный код генерит
Vasily
Онли
Vasily
Эххх, нет в жизни счастья