Рассматриваю для подробного изучения два этих языка. На определенном уровне уже знаю Scala. Почему сравнение настолько разных языков? Нужен язык с хорошим ФП. Еще есть Clean, Erlang, CL.
Clean - еще молод, но при этом очень похож на Haskell. Шило на мыло.
Erlang - еще не очень разобрался, но фраза о синтаксисе, унаследованном у пролога убила все желание его изучать.
Haskell - пока читал туториалы и прочее, то очень понравился, вообщем все хорошо.
Scala - всем известная Java XXL. Писать просто, удобно. Можна писать в стиле Java, если в задаче много состояния, или в стиле ФП - если так удобнее. Доступны все классы Java. Но... Код очень зависит от code completion, а любой плагин убог, страшен и жруч. Компилятор еще более убог и страшен из-за своей безконечной тормознутости. Простой код компилируется в NetBeans в несколько раз дольше, чем большое веб-приложение на Java. Code completion работает аналогично тормознуто и иногда NB c ним кушает 700 МБ. Самое интерестное, что код на Scala работает быстро. По недавно поступившим данным в Scala кажется настоящие Generics, как в .NET, даже без поддержки от JVM. Пока не проверял
CL - закончим на позитивной ноте. Лисп остается самым нечитаемым ЯП, занимая почетное место между brainfuck и большим неоткоментированным кодом на ассемблере. Унифицированность синтаксиса в стиле «все есть (a b c)» превращает любую более менее большую программу собственно в кучу функций и скобок.
Итак, Haskell vs Scala?
Вопросы в основном заключается в том, стоит ли забить на войну с убогими плагинами Scala? И как Haskell будет решать задачи с большим количеством состояния? Представьте матрицу, по которой бродит алгоритм и определенным образом меняет в ней значения. На Scala такой вопрос даже не возникает, старый добрый императивный ООП в ней никуда не делся