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] gds.livejournal.com 2011-10-28 04:46 pm (UTC)(link)
потому что кому она нахуй нужна, эта венда. Тем более писать драйвер. А для ком-портов надо ещё и ioctl (или как там его) поддерживать. В общем -- в топку. Проще для нормального языка реализовать нужные биндинги и забыть как вендовую специфику, так и линуксовую (с её ioctl). Так как нормальных языков, в целом, раз и обчёлся, это обычно несложно.

[identity profile] nicka-startcev.livejournal.com 2011-10-28 05:04 pm (UTC)(link)
иоцтл можно и отдельной утилитой.
Наиоцтл-ил скорость/чётность и тупо делаешь "cat /dev/ttyUSB0|grep -f filter|sed -f translate|gnuplot &"

[identity profile] gds.livejournal.com 2011-10-28 05:43 pm (UTC)(link)
не вписывается в оригинальный птсо, требующий чотко бинарник на выходе. Понятно, что в моём дистрибутиве окамла всё это делается (кроме ioctl, ясен перчик), но это не очень хороший путь -- не тащить же мингв за собой.

[identity profile] tzirechnoy.livejournal.com 2011-10-29 10:38 am (UTC)(link)
Так и в винде можно cat COM3: |...

А скорость в панэли управления задавать.

[identity profile] nicka-startcev.livejournal.com 2011-10-29 10:45 am (UTC)(link)
ком3 можно, а флоп, раздел, лпт и многое другое так просто нельзя. Хотя..

[identity profile] tzirechnoy.livejournal.com 2011-10-29 11:05 am (UTC)(link)
Можно. LPT это LPT1:, флоп и раздел -- \\.\A: и \\.\C:, у них жэ есть имена в стиле \Device\Harddisk0\Partition1 или \Device\Cdrom0, полный диск доступен по имени \Device\Harddisk0\Partition0

[identity profile] nicka-startcev.livejournal.com 2011-10-29 11:28 am (UTC)(link)
можно. Но на них нельзя сделать ls -l.
Таких сущностей, кстати, намного больше. Запустите WinObjEx и посмотрите на "dosdevices". Вот и хочется всех их тупо отобразить на нормальное "просранство имён", где их можно будет не угадывать, а ковырять нормальными файловыми утилитами, теми же утилитами смотреть права доступа, итп.