Doge
ну короче как я понял, проблема в том, что чувак заюзал кальку технологий языков с более продвинутым метапрограммированием, которого нет у нас, но и не стал даже пользоваться нашими средствами метапрограммирования и все хуячит вручную
И непонятно вообще зачем брать такой подход, если средств вывода тайпклассов нету. Т.е. с ними у тебя из плюсов есть то, что всё компайл тайм, очевидно как добавлять кастомную логику и всё при этом выводится автоматом. А без автовывода как-то плюсов особо-то и нет.
Roman
ЕмУ нАдО КоНтРоЛиРоВаТь кАк ОбЪеКт бУдеТ вЫгляДЕать В жсОнЕ
Doge
ЕмУ нАдО КоНтРоЛиРоВаТь кАк ОбЪеКт бУдеТ вЫгляДЕать В жсОнЕ
Можно аннотации же всегда по полям развесить и вот и контроль.
Roman
ну я-то понимаю
Doge
Ну и кастомные десериализаторы зарегать
Roman
я все понимаю
Doge
Я вот пытаюсь понять просто логику автора, но как-то она не особо понимается. Какой-то мазохизм и лишние тысячи LOC на пустом месте.
Roman
да просто у чувака не хватает опыта в промышленных проектах
Roman
и знания донтета, возможно
Doge
Будь ещё это аппликативный парсер, можно было что-нибудь красивое сделать через свободные аппликаты и компиляции их в какое-то оптимальное представление. Но нафига, если в дотнете и так все промышленные json сериализаторы на лету IL генерят
Roman
ну он не дотнет разработчик. Я так понимаю, что он попробовал много разных языков, не факт, что писал большие промышленные проекты, поэтому видимо втупую попробовал пойти привычной дорогой
Roman
но поел говна, а я теперь доедаю
Диёр
Что именно эта штука переводит - большая тайна
Ilya
Заготовка на будущее?
Doge
Заготовка на будущее?
А зачем в lower case?
Ilya
Надо смотреть, как и где используется. Перевод из одного формата в другой, например. В этом случае lower case вполне может оправдан.
Ilya
Хотя смысл filters тогда непонятен🤷‍♂️
Андрей
ну он не дотнет разработчик. Я так понимаю, что он попробовал много разных языков, не факт, что писал большие промышленные проекты, поэтому видимо втупую попробовал пойти привычной дорогой
ой да ладно, кто не попробовал, надо ж и меру знать! хаскель шмаскель, ну нет тут такого, но вручную то зойчем? это ж все поддерживать…
Андрей
Будь ещё это аппликативный парсер, можно было что-нибудь красивое сделать через свободные аппликаты и компиляции их в какое-то оптимальное представление. Но нафига, если в дотнете и так все промышленные json сериализаторы на лету IL генерят
аппликативы ваши это помощь в надуманной проблеме. Для кастомизации ок, но чтоб все подрят ручками… В эльме вон тоже такого же навертели и удивляются, что на нем никто писать не хочет
Диёр
Я думал на элме никто писать не хочет по другим причинам
Диёр
Я если не ошибаюсь, то 99.99% тех, кто не хочет писать на элме, про ваши эти аппликативы и не слышали никогда
Андрей
Я если не ошибаюсь, то 99.99% тех, кто не хочет писать на элме, про ваши эти аппликативы и не слышали никогда
у них там свой херон для сериализации, в общем то на аппликативах, о них не обязательно знать, чтоб пользоваться
Aleksandr
А есть у нас где-то в дотнете еще какие-нибудь "кричащие" атрибуты, на которые компиляторы варнинг кидают. Типа Obsolete
Aleksandr
Но со смыслом типа Unstable
Aleksandr
Чтобы можно было написать прототип сложной функции, оставить его в таком виде, но при этом не забыть потом к нему вернутся
Ilya
Нужен атрибут [TODO]!
Андрей
или просто TODO, в райдерах/решарперах подсветку можно настроить. смотря как в глаза бросаться
Aleksandr
В обычной студии без решарпера есть свой Task Explorer Window
Aleksandr
Там тоже все туду видно
Aleksandr
Но сам я туда почти не заглядываю
Vasily
Мда, чот msbuild расстраивает
Vasily
Никак не могу допетрить, как описать conditional compilation symbols для группы проектов
Диёр
@omgszer у вас sbt?
Ayrat
@omgszer у вас sbt?
У меня пока мавен, но я ничего не пробовал, у меня два месяца опыта от силы в этом бизнесе
Shub
ниже по треду - мейнтейнеры циклов на питоне и на хаскеле
Shub
The biggest lie about Haskell is that it's easy to learn. No it's not, and I do use it at work. Sure, it's not THAT difficult to get a basic understanding until you get to the usual Functor, Applicative, Monad stuff, which you can understand if you imagine them as context bubbles. Once you put something into a side-effect bubble (IO), you cannot take it out, so you're obligated to work inside of that bubble. This analogy should get you far enough. You're now ready to build toy projects. But, even if you finish the Haskell Book(http://haskellbook.com), which is like 1300 pages, you're still going to be unable to contribute to a serious code base. Anyone who says otherwise is lying. Now, you have to understand at least 20 language extensions which you find randomly at the top of files {-# LANGUAGE ExtensionHere #-}. Now you have to understand how to really structure a program as either a stack of monad transformers, or free monads or anything else. Then you get into concurrency and to do that you have to understand how Haskell actually works, what non-strict computation does etc. etc. Otherwise you're going to get some nasty behaviour. You think I'm done? Let's get to Lens. You can use Lens after a relatively short time of reading the docs. But to understand Lens? Very few people actually understand Lens.
Doge
The biggest lie about Haskell is that it's easy to learn. No it's not, and I do use it at work. Sure, it's not THAT difficult to get a basic understanding until you get to the usual Functor, Applicative, Monad stuff, which you can understand if you imagine them as context bubbles. Once you put something into a side-effect bubble (IO), you cannot take it out, so you're obligated to work inside of that bubble. This analogy should get you far enough. You're now ready to build toy projects. But, even if you finish the Haskell Book(http://haskellbook.com), which is like 1300 pages, you're still going to be unable to contribute to a serious code base. Anyone who says otherwise is lying. Now, you have to understand at least 20 language extensions which you find randomly at the top of files {-# LANGUAGE ExtensionHere #-}. Now you have to understand how to really structure a program as either a stack of monad transformers, or free monads or anything else. Then you get into concurrency and to do that you have to understand how Haskell actually works, what non-strict computation does etc. etc. Otherwise you're going to get some nasty behaviour. You think I'm done? Let's get to Lens. You can use Lens after a relatively short time of reading the docs. But to understand Lens? Very few people actually understand Lens.
Ну мне кажется, народ всё же говорит о том, что прост haskell 98 + mptc + (может быть) fun deps. Про современный хаскель так вряд ли говорят, потому что он обьективно не очень простой.
Roman
type UnitFromJson () = interface IFromJson<Unit> with member this.FromJsonString x = fromJsonString this x member this.FromJson (x : Json) = Unit.FromJson(x) Десериализуем юнит, господа
Shub
Ну мне кажется, народ всё же говорит о том, что прост haskell 98 + mptc + (может быть) fun deps. Про современный хаскель так вряд ли говорят, потому что он обьективно не очень простой.
это называется "рационализация задним числом". ты плз не додумывай за них, что "на самом деле" они хотели сказать. коммменты следует брать за face value
Shub
минвайл, сегодня в новостях: скала умерла. https://news.ycombinator.com/item?id=21170836
Shub
"is attacked by hordes of type astronauts"
Ayrat
"is attacked by hordes of type astronauts"
И правда же. В скала чате их до чорта
Doge
это называется "рационализация задним числом". ты плз не додумывай за них, что "на самом деле" они хотели сказать. коммменты следует брать за face value
Так в исходной статье, к которой комменты, человек как раз, считай, про haskell 98 + небольшое число расширений и говорит.
Doge
Если он даже считает, что mtl можно не юзать
Диёр
решил поиграться поставил компилятор го попробовал отмапать массив понял что для каждого типа массивов придётся писать свою мапу удалил оставалось всего несколько месяцев до 2020
Диёр
мне пг не нравится
Shub
он не 100 баксов, чтобы всем нравиться
Диёр
я же не пещерный человек чтобы текстовым редактором в браузере пользоваться для писанины на го
Диёр
если говно, то пусть уж хоть украсят
Shub
ты втащил аж целый компилятор, чтобы не писать 30 строчек в браузере
Диёр
я набрал apt-get instal go-golang чтобы не писать 30 строчек в браузере!
Shub
иди его знай, что он там тебе установил. твоя система сейчас скорее всего майнит пайккоины
Диёр
надеюсь этот налог пойдет на развитие дженериков в го
Romɑn
титульный диалог
Диёр
http://coconut-lang.org/ надеюсь, когда-нибудь пхп научится также
Диёр
да
Диёр
это будет большое достижение для всего пхп комьюнити
Ilya
Так в дотнет уже умеет. Тебе мало?
Диёр
в дотнет и жвм только ленивый не компилится
Диёр
мне иногда казалось что моя кошка скоро начнёт на жабайткоде мяукать
x
Жава не зазорно, вон кафка на жаве
x
И райдер
Диёр
А ещё в любой момент времени ровно 3 миллиарда устройств используют джаву
Диёр
Я таки нашел noname language server для пыхи, который через пхпдоки умеет делать темплейты, но плагин для него в пхпшторме каждые пять минут падает и никто из мейнтейнеров либ такое в пхпдоках не пишет
Диёр
Ох и обмажутся же своими inject_all('kekkekekeke'), из которого можно любой метод дергать и он даже что-нибудь вернёт, но заранее ты об этом никогда не узнаешь
Ivan
всем привет. Пытаюсь освоить FSCheck (пока на C#). Прикольная штука, и простые тесты получилсь сразу. А вот случай чуть сложнее не могу понять как делается. столкнулся с проблемой: Arguments exhausted after 0 tests. Кот [Property(DisplayName = "License is about to be expired if it's 0-3 days remaining")] public Property AboutExpiredIfLessThanDaysRemaining(DateTime expiryDate, DateTime now) { Func<bool> check = () => LicenseManager.CheckLicenseExpiration(new License() { ExpiryDate = expiryDate }, now) == LicenseExpirationType.BeforeThreeDaysExpired; var diff = (expiryDate - now).TotalDays; return check.When(diff > 0 && diff <= 3); } Кто-нить может подсказать, как это можно решить?
Ivan
я так понимаю проблема в том, что он пытался за какое-то определенное число попыток нагенерить нужные мне данные, но условие слишком строгое, чтоб уложиться за N попыток
Vasiliy
В России с 2021 года могут прекратить производство крафтового пива: http://lentach.media/d46e Запасаемся IPA и стаутами на годы вперед
Igor
Как можно назвать свою либку для F#, с полезными операторами и функциями? Есть у кого свои таки либки?