metaclass: (Default)
metaclass ([personal profile] metaclass) wrote2011-10-28 06:34 pm

Интересное мнение про Haskell

http://neugierig.org/software/blog/2011/10/why-not-haskell.html
http://www.reddit.com/r/programming/comments/lfm1k/why_not_haskell/

У меня на данный момент с хаскелем забавный мозговой тупик: не совсем понимаю, как писать идиоматический код.

Т.е. например, разговор с девайсом по RS232 я могу написать в лоб, со сплошным IO, могу оформить с кошерными iteratees (хотя от типов и там и в coroutines глаза кровоточат), по идее, если покопаться, можно придумать еще несколько способов "красиво, строго, надежно" оформить разговор по известному протоколу, но в итоге то, что подразумевает повторное использование и статические гарантии, выглядит как ад из типов, а то что понятно - выглядит точно так же, как эта самая программа написанная на другом языке, с точностью до синтаксиса )

Вообще, от софта хочется простого: кроссплатформенность(винда/линукс), никаких JRE/Mono/CLI/интерпретаторов питонов/рубей, минимум зависимостей, отсутствие ручной работы с выделением-удалением памяти, нормальные строки, более-менее строгие типы.

[identity profile] tzirechnoy.livejournal.com 2011-10-29 10:53 am (UTC)(link)
Да, в C ещё можно заюзать небольшое количество классов. Если все классы свои, new/malloc очень редко, только в конструкторах спецыально сделанных классов, только для тяжёлого, с рефкаунтером и правильно переписанным конструктором неглубокого копирования, -- то часто получается няшка, в общем-то. Код вообще без указателей, практически все данные размещаются на стэке, и убиваются по return, про memory management можно забыть как про страшный сон, RAII в полный рост, при этом никакого особого выпендрёжа с классами ввода/вывода, итэраторами, рваными шаблонами и прочей радости, ломающей старенькой но вполне так пристойный вид кода на C.