> Да, Хаскель программистов примерно в тысячу, если не больше, раз меньше сишников. И к тому есть предпосылки: очередной академязычок не от мира сего.
> Поэтому конечно и участников проектов меньше. А вовсе не потому, что в
> Хаскель коде как-то особенно тяжело разобраться.
Чем круче абстракции, тем дольше в них въехжать и выше риск понять намерения предыдущего кодера неверно. Если суммировать идею MISRA вкратце: код должен быть написан так прозрачно и просто чтобы в нем могли разобраться даже амебы в пробирке. Тогда в нем и багов не будет. Потому что двуногий может не выспаться сегодня, его могут отвлечь, или еще какая фигня. И если он потеряет глубокий контекст, фигня получится.
> Да, есть тысячи заброшенных сишкопроеетов.
Лично я не знаю ни 1 полезного и интересного мне проекта на этом. Вот просто за всю жизнь ничего интересного не попадалось. Какая-то хрень где отшибленные кодеры страдают фигней. В этом плане какой-нибудь хруст - явно прагматичнее, нацелен на реальные проблемы реальных проектов. Хоть и являет собой за это свалку костылей.
>> сложение абстракции я не понимаю ((( зато сишка простая ))11
> Да без комментариев пожалуй.
Оно и видно.
> Если строгая типизация для вас неосилимая абстракция, то понятно в общем от
> чего в сишкокоде выход за границу буфера юсе афтер фри погоняет.
Да вы знаете, иногда я оверрайдом типов еще и пользуюсь. Представляете, у DMA автомата и парсера пакетов могут быть немного разные идеи насчет одного и того же блока данных на предмет того чем он является. В DMA я могу хотеть его рассмотреть как допустим пачку u32 вон там, а чем оно там на самом деле было - такой отдельный вопрос. Си в этом плане весьма разумный баланс, когда с одной стороны type check можно, с другой - можно и заоверрайдить если вот именно системный фокус стало надо.
А так вот именно системный и низкоуровневый - это Zig какой. Там вон и packed struct сразу штатно есть, и положить нечто в конкретную секцию - вот, пожалста. А этот ващ хаскель совершенно точно не замена си и не конкурент ему даже в проекте.
И да, вы знаете - в кодеке иногда тоже надо низкоуровневый контроль над происходящим. Скажем у SIMD есть довольно эзотерические требования по выравниванию блоков данных. А без SIMD не интересно - там скорость вот тупо в разы ниже, кому такой кодек упрется и зачем?! Представляете, там вон шарпей какой-то вещает, а так то кодек даже и на гольном си то мало кому упал, представляете? Пока его asm или simd intrinsic не обвесят у него перфоманс такой что это мало кому вообще надо оказывается. На libvpx бочку катили за медленное кодирование. На libaom катят. Первого немного подразогнали.