Интересное мнение про 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/интерпретаторов питонов/рубей, минимум зависимостей, отсутствие ручной работы с выделением-удалением памяти, нормальные строки, более-менее строгие типы.
http://www.reddit.com/r/programming/comments/lfm1k/why_not_haskell/
У меня на данный момент с хаскелем забавный мозговой тупик: не совсем понимаю, как писать идиоматический код.
Т.е. например, разговор с девайсом по RS232 я могу написать в лоб, со сплошным IO, могу оформить с кошерными iteratees (хотя от типов и там и в coroutines глаза кровоточат), по идее, если покопаться, можно придумать еще несколько способов "красиво, строго, надежно" оформить разговор по известному протоколу, но в итоге то, что подразумевает повторное использование и статические гарантии, выглядит как ад из типов, а то что понятно - выглядит точно так же, как эта самая программа написанная на другом языке, с точностью до синтаксиса )
Вообще, от софта хочется простого: кроссплатформенность(винда/линукс), никаких JRE/Mono/CLI/интерпретаторов питонов/рубей, минимум зависимостей, отсутствие ручной работы с выделением-удалением памяти, нормальные строки, более-менее строгие типы.
no subject
Я, кстати, серьёзен -- с типами из пристойного и работающего остались C, Haskell и ocaml. Ах, ну да, говорят, ещё scala есть -- я её не пробовал, очень возможно, что оно того стоит (но под Вашы критэрии не подходит).
Только, рэбе, зачем Вам типы?
PS А идиоматический код пишэтся примерно как везде. Сначала ты идиоматически пишэшь, что тебе нужно (возможно, дажэ без привязки к языку). Потом идиоматически дополняешь это какими-нибудь уточнениями (можно с операторами любимого языка, кстати) до такого, чтобы было понятно и однозначно при чтении человеком. Потом приводишь примерно к синтаксису твоего языка, производя наиболее тривиальные замены слов и операторов на существующие (включая всякий pattern-matching или template generators, если это применимо и удобно). Потом в отдельных файлах дописываешь такие подпорки, чтобы всё остальное, что ещё не компилируется -- было тривиально заменить на вызовы этих подпорок, чтобы оно компилировалось.
PPS Кстати, лично я не люблю хаскель за три вещи.
Во-первых, он, в натуре, сложный, там дофига всякого синтаксического сахара и разных операторов, при этом хрен поймёшь куда смотреть, чтобы понять что оно обозначает. Вот нафиг, например, это do сделали?
Во-вторых, большое количество самых разнообразных операторов с произвольными приоритетами плюс некоторая ленивость приводит к тому, что в нормальном выражэнии потоки информацыи могут идти справа налево, слева направо и снизу вверх.
В-третьих, хаскелевское описание операторов -- это гениально, я впервые вообще понял, как разбор выражэний с операторами работает, что такое приоритеты и всё такое. Но им откровенно злоупотребляют, нормальная программа начинает походить на взрыв на фабрике знаков препинания. А ручной подсчёт скобок в лиспе после разбора хаскеллевских выражэний выглядит детской забавой.
В общем, по сумме: Хаскель сложэн. Для меня сложэн. Вот такой вот я негениальный программист, чо там.
no subject
no subject
no subject
про do вот расскажу -- удобно как для манаток, так и для edsl. впрочем, не ясно, чем же манатки так отличились, что только для них выделили синтаксис.
no subject
2. ну расставьте скобки если не уверены, кто вам мешает.
3. ну нет в хаскеле операторов, нету. там вообще есть функи с одним аргументом, типы и тайпклассы ;] но это я ною. а зачем вы в лиспе считаете скобки?
PS. в очередной раз - я не считаю хаскель пригодным для чего то большего чем "дёрнуть-страничку-попарсить-насрать-в-базу".
no subject
2. См.п.1.
3. Ну мало ли, только нотепад на компьютэре. Или вообще через веб смотрю. Но это вообще редкость, было бы часто -- я бы лисп выкинул. А текстового редактора, который бы группировал хаскелевский поток сознания, у меня нет -- потому всё ещё тяжэлее, чем лисп в нотепаде.
no subject
3. откуда на компьютере нотепад? текстовый редактор для хаскеля внезапно тот же что и для лиспа. и в принципе для всего остального.
no subject
http://hackage.haskell.org/packages/archive/enumerator/0.4.15/doc/html/src/Data-Enumerator-Internal.html#Iteratee
конкретно, реализация monadic bind для Iteratee мне выносит голову до основания :)
no subject
no subject
До основания!
А затем — мы наш, мы новый мир построим!!
no subject
И да, у меня вот тот жэ самый редактор, который для лиспа -- ничем не помогает ориентироваться в потоке хаскелевых операторов.