Новый выпуск журнала «Практика фукционального программирования»
Кто-нибудь знает, когда выйдет сабж? И выйдет ли вообще? Последний номер выходил в 2011 году. Твиттер и «планета» живы, но там один пространный трындежь, про журнал ни слова.
Кто-нибудь знает, когда выйдет сабж? И выйдет ли вообще? Последний номер выходил в 2011 году. Твиттер и «планета» живы, но там один пространный трындежь, про журнал ни слова.
Пусть R — левое нётерово кольцо, тогда почему категория всех конечно-порождённых левых R-модулей (где стрелки — все морфизмы данных модулей) является абелевой?
По мотивам этой темы. Написано, что исследовались языки, по которым число коммитов на жидхабе превышало 40000. В списке нет Haskell, поэтому мне кажется, что это исследование суть звиздежь и фуфло. А вам так не кажется?
Перемещено true_admin из development
Решил задачу на Scala невероятно красивым способом? Расскажи об этом своему clojure-коллеге. Только окажется, что он ушел три часа назад, оставив тебе записку «Используй Map». — Daniel Worthington-Bodart
Мне кажется, это «бесчеловечный» язык. Удивительно, что он сделан вроде бы человеком и вроде бы для людей. — Clinton Begin
Впервые я познакомился со Scala шесть лет назад. Тогда мне пришлось иметь дело с самодельной build-системой, написанной на Scala и использовавшей Scala в качестве языка для build-скриптов. Scala мне сразу не понравилась:
1. Build-скрипт компилировался по три минуты после внесения правок, и это еще до начала непосредственно сборки,
2. Синтаксис скриптов был совершенно бессистемный. Где-то было def
где-то var
. Где-то знак =
, где-то фигурные скобки. Такое впечатление, будто кто-то шатался по скриптам, разбрасывая случайным образом знаки пунктуации.
Правда, я был готов признать, что это просто неправильное использование хорошего языка. Build-скрипты — это в некотором роде одноразовая задача, и это не самый лучший способ освоить сложный язык. Ну и идея вывода типов мне всегда была симпатична, начиная с моего опыта с Haskell.
Но вот в последние две недели мне пришлось разрабатывать простое RESTful API для большого и сложного набора данных. Я к Scala больше не притронусь!
Scala мы выбрали потому, что весь проект сделан на Java и XSL, с большим количеством обработки XML. Вроде как Scala — очевидный способ повысить продуктивность, особенно принимая во внимание встроенную в язык поддержку XML.
Но не тут-то было!
Много о чем еще можно было бы написать. Неразбериха в инструментах сборки. Полная безнадега в поддержке Scala в IDE. Мешанина из «типов типов». Вечная копипаста с case class'ами. Но сказанного достаточно: всего этого хватило, чтобы затормозить разработку как минимум на две недели. Хватило, чтобы расхотелось когда-либо иметь дело со Scala.
Если вы дочитали до конца, то наверняка выделили лейтмотив моего текста. Он заключается в том, что Scala — неюзабельный язык. Я полагаю, изначально это был некий полигон для языковых экспериментов, который почему-то превратился в довольно распространенный язык. Не вижу ни одной убедительной причины в пользу Scala; есть много других языков, чтобв поэкспериментировать с ФП; если уж не терпится испытать сильные системы типов (а вам должно хотеться!) — попробуйте Haskell. Я допускаю, что, может быть — может быть! — вам удастся что-то такое проделать со Scala.
Но, ради всего святого, не пытайтесь использовать ее в продакшене.
Решил попробовать сабж. Делаю по инструкции. С первыми пунктами проблем нет, а вот здесь начинаются сложности:
6. make sure your Closure and McCLIM ASD files are linked from your ASDF central registry
7. push :rune-is-integer on your lisp's *feature* list to avoid some lingering character/integer bugs in the Closure source code
Может какой благородный лисп-гуру расскажет мне, как это делается?
Всем привет. Ну, что же. Я прочитал 200 страниц этого вашего Буча.
После прочтения сложилось стойкое ощущение бессодержательной трепни из какой-нибудь сектансткой книги с элементами бреда, в которой только изображается присутствие какого-то знания. Или еще вот похоже на учение Зигмунда Фрейда. Фрейд же был признан, было множество практиков-психоаналитиков, много школ-ответвлений. А теперь ясно, что это антинаучный бред.
Может, прочту еще 200 страниц для полного просветления. Хотя вот, скажем, SICP содержательный, и без лажи, как у Буча про concurrency. Ведь всем сейчас понятно, что ООП никак не справляется с многотредовым программированием, а мониторы в Java (synchronized методы) просто полный провал. А в третьем издании от 2007 года у Буча все еще преподносится ООП как панацея от проблем concurrency.
Короче, я думаю, правы лисповцы, хацкелисты, ФП-фаги, что ООП — фуфло. Точнее не фуфло, а детский лепет по сравнению с высоким программированием, как в SICP или Haskell. И лепечут ООП-шники потому, что другого не знают просто. Не знают, что есть другие когнитивные системы, более полные и гибкие.
Или, может, это у меня лыжи не едут?
Здравствуйте. Как обстоят дела с unit-тестированием в функциональных языках? Интересуют в первую очередь «чистые» языки (Haskell).
Вот в ОО-языках, например, есть такой подход — Mock Object. Объекты, которые имитируют поведение реальных компонентов системы (БД, сеть и т.п.) Это позволяет полноценно тестировать систему вне production environment. Для Java есть полдюжины mock-фреймворков. Но, поскольку в «чистых» функциональных языках даже такого понятия как «объект» нет, то сия парадигма неприменима.
Так каким же образом принято реализовывать сабж? Спасибо.