Ilya
Делаем вывод, что капитализм -- главный враг хаскеля. Вот при социализме все только на нём и будут писать.
Vasily
Хаскель все же больше академический язык
Vasily
В энтерпрайзе обычно пахнет болотом
Doge
В энтерпрайзе обычно пахнет болотом
Зато платят неплохо, при этом далеко не всегда есть вот эта ментальность "быстро-быстро"
Диёр
Хаскель все же больше академический язык
Я думал он исключительно академический язык
Диёр
Там же никаких тулзов для разработки нет
Диёр
Вот вам стэк/кабал, вот компилятор: ебитес
x
Но вообще да, не так чтобы много чего знаю написанного на хаскеле
x
Из полезного
Диёр
Про хмонад 2.5 академика знают и только 0.5 из них пользуются
x
Да ладно. Да нет.
x
Просто в линуксе надо шарить чтобы предпочесть такой оконный менеджер, и таких людей действительно мало
x
Но они не академики, поверь
Диёр
Я на самом деле не понимаю почему хаскель ещё существует
x
Я на самом деле не понимаю почему хаскель ещё существует
Ну это полигон для идей, причем там же и микрософт в этом участвует
x
А идрис там всякие, фстар?
У них другие задачи как по мне
x
Вот там академики—академики
Doge
Я на самом деле не понимаю почему хаскель ещё существует
Потому что научные статьи и пхд сами себя не напишут. Ну и да, в индустрии его тоже возможно использовать. Работа с многопоточностью и конкурентностью там реально очень хорошо сделана. Теперь туда бы ещё GC с количеством человеко-часов в него вложенных, как в джаве и вот тогда да, это была бы мощь.
Viacheslav
В смысле?
Что такое пхд?
Doge
Лень раскладку переключать было
Viacheslav
PhD
Аааа
Roman
может конечно научного обоснования не хватает, но зато практикой показано, что в 99% рынок подминает под себя тот, кто первым до этого рынка добрался. поэтому да, бизнес хочет быстро-быстро, потому что пока хаскель будет основательно делать паровоз - ушлые китайцы могут улететь в космос на педальной тяге
Я не так давно обсуждал с одним чуваком идею говеного прототипа vs сразу делать по уму. Мы быстро пришли к тому, что по-разному понимаем этот термин. И говеный прототип, вопреки расхожему мнению, вовсе не значит, что вам надо писать херовый код, которой потом только выкинуть можно, и что думать наперёд на этой стадии неуместно
Roman
И в большей степени это про то, что надо сделать небольшую часть этой идеи, упростить какие-то технические моменты (например, складывать все в монго и не париться о транзакциях) и тд
Vasiliy
🌚
Ilya
А чо, она влезает?! Пойду проверю.
Shub
Я не так давно обсуждал с одним чуваком идею говеного прототипа vs сразу делать по уму. Мы быстро пришли к тому, что по-разному понимаем этот термин. И говеный прототип, вопреки расхожему мнению, вовсе не значит, что вам надо писать херовый код, которой потом только выкинуть можно, и что думать наперёд на этой стадии неуместно
писать говенно нельзя ни в коем случае, причем особенно в случае прототипирования. иначе из прототипа нельзя будет извлечь то, ради чего он писался - знания. прототип должно понимать как конечный продукт без детальной проработки
Shub
когда художник делает эскиз - он все равно соблюдает базу. композицию, построение, свет, пропорции.
Shub
эскизы многих художников выставляются как отдельные произведения
Roman
писать говенно нельзя ни в коем случае, причем особенно в случае прототипирования. иначе из прототипа нельзя будет извлечь то, ради чего он писался - знания. прототип должно понимать как конечный продукт без детальной проработки
ну вот на моем опыте многие этого не понимают. Все, что они слышат, это "можно делать хуево, пацаны!". И каждый раз, когда ты гришь, что надо подумать, чтобы сделать нормально, они тебе говорят "ТЫ ЕБАНУЛСЯ?! ДУМАТЬ?! РЫНОК НЕ ЖДЕТ!!!!"
Shub
поэтому если вы встречаете человека "пишу-херово-потому-что-прототип" - смело перерабатывайте его на суперфосфаты и костную муку, хоть какая-то польза
Vasiliy
поэтому если вы встречаете человека "пишу-херово-потому-что-прототип" - смело перерабатывайте его на суперфосфаты и костную муку, хоть какая-то польза
Народ ихмо путает прототип с простой, но хорошей архитектурой и какой-нить прототип с DDD, мануалами и вики.
Shub
ну вот на моем опыте многие этого не понимают. Все, что они слышат, это "можно делать хуево, пацаны!". И каждый раз, когда ты гришь, что надо подумать, чтобы сделать нормально, они тебе говорят "ТЫ ЕБАНУЛСЯ?! ДУМАТЬ?! РЫНОК НЕ ЖДЕТ!!!!"
мне кажется, они находятся в плену иллюзии, что это типа компромисс - в ущерб качеству можно сократить время. а это не так, сделать херово и сделать хорошо занимает ровно такое же время
Dmitry
так, не в тему, но ВНЕЗАПНО тут окажется знающий специалист: я хочу всякие интересные GLSL/HLSL-шейдеры рендерить в картинки/видео и думаю: как бы это сделать удобно и красиво. Варианты: - Написать простенькое десктопное приложение на Metal (для MacOS) - Использовать Unity3D и скриншотить - Использовать Unreal Engine и скриншотить (я заглянул в документацию, и там скриншотилка умеет в EXR и повышать разрешение) - GLSL нода в Houdini, но там как-то сложно (дефолтный шейдер имеющийся по умолчанию там не компилируется) - Eevee в Blender3D (но там вроде как нельзя прям код GLSL писать) - какая-то приблуда на Питоне (пробовал слегка, кажется надо дописывать всякое) https://github.com/danilw/shadertoy-to-video-with-FBO
Vasiliy
Потом, если прототив взлетает, то его никто переписывать не будет. И будет такое же гавно из палок дальше
Shub
такие люди в принципе не могут делать хорошо, хоть сто лет им выдели
Shub
Потом, если прототив взлетает, то его никто переписывать не будет. И будет такое же гавно из палок дальше
поэтому надо писать невзлетающие прототипы. самый простой способ - писать на in-memory sqlite в качестве хранилища. еще не встречал людей, способных такое засунуть в прод
Shub
впрочем, молодежь сегодня пошла очень талантливая, так что я не теряю надежды
Iskander
поэтому надо писать невзлетающие прототипы. самый простой способ - писать на in-memory sqlite в качестве хранилища. еще не встречал людей, способных такое засунуть в прод
Видел litedb у одного "стартапа", мол, даже ef и SQL знать не надо, и бесплатная БД, а также статичный класс репозитория к этой "БД". Да-да, я не шучу, минут 5 молча сидел и переосмысливал увиденное.
Igor
У нас тут есть любители litedb, тоже наверное стартап)
Roman
нашел в проде. Кто-нить знает, нахуя это надо? Что за оператор $?: type IsNone = IsNone with static member ($) (IsNone, ((i, n): (Option<'a>) * string)) : Option<string> = if i.IsNone then Some n else None
Vladislav
Способ сделать перегрузку кмк
Vladislav
Вроде
Vladislav
Или что-то типо
Vladislav
Оператор кастомный
Roman
ну суррогатный тип да, чтоб въебашить этот оператор куда-то
Roman
просто я вот нихуя понять не могу, в чем логика и зачем, например, дженерик опшин превращать в строковый опшн, да еще и с инверсией
Roman
а ты удали и посмотри, где сломалось 🤔
спасибо, нет. Ща поймешь, почему:
Roman
весь код измазан вот такой хуйней, я еще даже не спрашивал, что это и зачем: static member inline IList ((invoker, x : Supplier<_, _, _, _, _, _, _, _, _, _, _>)) : List<'d> = [ invoker $ (createSafe x (lazy(x.account)), "account") invoker $ (createSafe x (lazy(x.name)), "name") invoker $ (createSafe x (lazy(x.legalform)), "legal_form") invoker $ (createSafe x (lazy(x.country)), "country") invoker $ (createSafe x (lazy(x.street)), "street") invoker $ (createSafe x (lazy(x.housenumber)), "house_number") invoker $ (createSafe x (lazy(x.zip)), "zip") invoker $ (createSafe x (lazy(x.city)), "city") invoker $ (createSafe x (lazy(x.email)), "email") invoker $ (createSafe x (lazy(x.phone)), "phone") invoker $ (createSafe x (lazy(x.mobile)), "mobile") ]
Анна
Roman
и все, разумеется, на SRTP. Так что понять "где сломалось" очень просто: в голове у автора
Анна
Igor
Supplier<_, _, _, _, _, _, _, _, _, _, _> 👍
Roman
Supplier<_, _, _, _, _, _, _, _, _, _, _> 👍
ой бля, это отдельная тема
Igor
ну у нас тут есть специалист по такому коду
Roman
ща покажу, нахуя это такой женерик
Roman
https://pastebin.com/ne5eXiFd Вот. Все доменные объекты такие
Vladislav
Пиздец
Roman
и непонятно нахуя, ведь кол-во кода меньше не стало
Igor
а нафига это Option<Option<string>>?
Roman
а нафига это Option<Option<string>>?
идея в том, что есть состояние (Pure) и апдейт (Delta). В дельте все поля — это опшн от того, что есть в состоянии. Типа Some None — это когда в апдейте приехало удаление поля
Vladislav
Карл