Ilya
Делаем вывод, что капитализм -- главный враг хаскеля. Вот при социализме все только на нём и будут писать.
Vasily
Хаскель все же больше академический язык
x
Doge
Vasily
В энтерпрайзе обычно пахнет болотом
Диёр
Там же никаких тулзов для разработки нет
Диёр
Вот вам стэк/кабал, вот компилятор: ебитес
Vasily
x
x
Но вообще да, не так чтобы много чего знаю написанного на хаскеле
x
Из полезного
Диёр
Про хмонад 2.5 академика знают и только 0.5 из них пользуются
x
Да ладно. Да нет.
x
Просто в линуксе надо шарить чтобы предпочесть такой оконный менеджер, и таких людей действительно мало
x
Но они не академики, поверь
Диёр
Я на самом деле не понимаю почему хаскель ещё существует
Vasily
Диёр
x
Вот там академики—академики
Doge
Я на самом деле не понимаю почему хаскель ещё существует
Потому что научные статьи и пхд сами себя не напишут.
Ну и да, в индустрии его тоже возможно использовать.
Работа с многопоточностью и конкурентностью там реально очень хорошо сделана. Теперь туда бы ещё GC с количеством человеко-часов в него вложенных, как в джаве и вот тогда да, это была бы мощь.
Viacheslav
Doge
Viacheslav
Doge
Doge
Лень раскладку переключать было
Viacheslav
Roman
может конечно научного обоснования не хватает, но зато практикой показано, что в 99% рынок подминает под себя тот, кто первым до этого рынка добрался. поэтому да, бизнес хочет быстро-быстро, потому что пока хаскель будет основательно делать паровоз - ушлые китайцы могут улететь в космос на педальной тяге
Я не так давно обсуждал с одним чуваком идею говеного прототипа vs сразу делать по уму. Мы быстро пришли к тому, что по-разному понимаем этот термин. И говеный прототип, вопреки расхожему мнению, вовсе не значит, что вам надо писать херовый код, которой потом только выкинуть можно, и что думать наперёд на этой стадии неуместно
Roman
И в большей степени это про то, что надо сделать небольшую часть этой идеи, упростить какие-то технические моменты (например, складывать все в монго и не париться о транзакциях) и тд
Ayrat
Vasiliy
Ilya
А чо, она влезает?! Пойду проверю.
Shub
Shub
Shub
когда художник делает эскиз - он все равно соблюдает базу. композицию, построение, свет, пропорции.
Shub
эскизы многих художников выставляются как отдельные произведения
Shub
поэтому если вы встречаете человека "пишу-херово-потому-что-прототип" - смело перерабатывайте его на суперфосфаты и костную муку, хоть какая-то польза
Vasiliy
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
впрочем, молодежь сегодня пошла очень талантливая, так что я не теряю надежды
Крылатый
Igor
У нас тут есть любители litedb, тоже наверное стартап)
Alexey
Vasily
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
ну у нас тут есть специалист по такому коду
Shub
весь код измазан вот такой хуйней, я еще даже не спрашивал, что это и зачем:
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
ща покажу, нахуя это такой женерик
Vladislav
весь код измазан вот такой хуйней, я еще даже не спрашивал, что это и зачем:
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
https://pastebin.com/ne5eXiFd
Вот. Все доменные объекты такие
Vladislav
Пиздец
Roman
и непонятно нахуя, ведь кол-во кода меньше не стало
Igor
а нафига это Option<Option<string>>?
Doge
весь код измазан вот такой хуйней, я еще даже не спрашивал, что это и зачем:
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")
]
Похоже на лисп, лол
Vladislav
Vladislav
Карл