• ? Haskell language clean Я знаю, что меня читают несколько хаскеллистов. Чем этот язык лучше клина? На сколько я понимаю клин лучше концептуально, но у хаскелля несколько прикладных преимуществ таких как обширная библиотека и скорость работы ghc. Я прав?
    ♡ recommended by @Mazdaywik

Replies (33)

  • @Elemir, Тем, что он жив.
  • @L29Ah-banned, Язык не бывает мёртвым, ну
  • @Elemir, в общем — да. добавь сюда размеры сообщества (пользователей и тех, кто создаёт экосистему) — avoid success at all costs уже в прошлом
  • @Elemir, Ага, рукописи не горят. Естественный язык может выйти из употребления и забыться (тот же древнеегипетский). А программный продукт может не сопровождаться и не иметь сообщества.
  • @Mazdaywik, Да. Но язык не программное обеспечение. Язык по сути ближе к алгоритму или концепци
  • @Elemir, по сути ближе к алгоритму или концепци
    обширная библиотека и скорость работы ghc
  • @Elemir, Ты забываешь о сценарии "поигрались и забыли". Сейчас кто-нибудь пишет на smalltalk?
  • @Elemir, Клин не ленивый. Это его многого лишает.
    Правда Клин компилируется, насколько я в курсе, в довольно-таки быстрый код. Программы на Хаскелле обычно не дико быстрые.
    Да, и у них разный подход к работе с побочным эффектом. Отчасти это связано с тем, что Хаскелл ленивый. Хотя в Клине можно было бы тоже сделать всё на монадах и с continuation passing (не знаю, как хорошо сказать по-русски).
  • @borman, да, и достаточно много людей. неудачный пример
  • @dluciv, На сколько я понял клин просто по умолчанию не ленивый. Как ским, например
  • @jtootf, Черт, не знал. Соглашаюсь, ибо пытался попасть пальцем в небо. Сам о нем иначе как в контексте истории программирования не слышал.
  • @borman, К тому же изучение smalltalk'а важно для того, чтобы понять что на самом деле значит ООП
  • @Elemir, Ленивость можно сделать на чём угодно вменяемом, хоть на ассемблере =). По умолчанию не ленивый — это и есть не ленивый.
  • @Elemir, Язык как концепция может жить в веках (история Планкалкюля это подтверждает: ru.wikipedia.org ), а вот язык как инструмент… Это как раз и есть поддержка программного инструментария, документация, сообщество, библиотеки. Почему сраный Фортран ещё жив? Потому что под него написана хренова туча математических библиотек, и иные учёные всё ещё продолжают на нём программировать.
  • @Elemir, "Изучил и забыл" != "писать на нем". Точно так же полезно изучить асм, не стоит только потом писать на нем, да и вряд ли человек в здравом уме это просто так захочет. А если не просто так, он будет знать, зачем ему это.
  • @dluciv, в Clean так мало чего есть, что неудивительно что он компилируется в эффективный код; JHC для Haskell98 тоже выдаёт blazing fast бинарии (правда, с бажным рантаймом), вот только на Haskell98 никто не пишет
  • @Elemir, Изучение Смолтолка полезно для понимания всяких рубипитоновяваскриптовскал и прочих ducktyping-языков.
  • @dluciv, По-моему не ленивый значит, что лень реализована не оптимально. То есть я могу просто написать простую программу на scheme (строк 5-10), которая включит ленивость по умолчанию, а выключать её будет по запросу. Это же совсем не то, что в Хаскелл
  • @Mazdaywik, Понимая насколько они убоги, да?
  • @borman, Вот и проблема, что его нельзя забывать. Особенно разработчикам языков!
  • @Elemir, Понимая, где был первоисточник. Понимая, как выглядит ООП в терминальной стадии (когда даже if'ы и циклы выражаются через объекты, я не шучу). Полезно понять, откуда «ноги растут», как говорится.
  • @Mazdaywik, Это уже почти объектно-функциональные. Они не таки и убоги. От почти функциональности =).
  • @Elemir, оптимальная лень — это outermost graph reduction; для неё простых suspend/force будет мало, да
  • @L29Ah-banned, В этих ваших библиотеках сплошная хуита. Хаскелль хорош для расчетов и прочей хунты, библиотечная поддержка сосет и проще и гораздо надежнее подпереть через си и ffi. Поправьте если не прав.
  • @Mazdaywik, Ну так я знаю smalltalk :3 И в этом проблема — я не могу сесть за ненормальный ООП язык теперь
  • @dluciv, В Смолтолке тоже была своего рода функциональность. Там был синтаксис для создания, как бы сейчас сказали, лямбды или анонимной функции. Только там это считалось объектом. У объекта True был метод ifTrue, который выполнял это замыкание. У объекта False метод ifTrue замыкание не выполнял. Вот вам и оператор if.
  • @Mazdaywik, Не, это ради Бога. Я только за.
  • @Mazdaywik, Настоящая ООП парадигма сильно связана с ФП. Можно сравнить пи исчисление и лямбду
  • @Elemir, Я о нём только почитал в Викиучебнике. Мне было достаточно этого, чтобы понять, откуда duck typing растёт.
  • @Elemir, Про пи-исчисление я ни разу не слышал.
  • @Elemir, Занятно. Очень интересно.