Ошибки в программах были, есть и будут. Цель программиста при использовании языка — переложить как можно больше работы по обнаружению ошибок на компилятор. Язык более высокого уровня делает такой работы больше.
В частности, я пытался, но не смог пользоваться языками с динамической проверкой типов, например, Питоном. Потому, что не доверяю программе и лень искать дополнительные ошибки.
По поводу корявого синтаксиса Хаскеля. Как раз наоборот, инфиксные и др. операторы сделаны для упрощения восприятия. Но! Действительно, к каждому оператору глаз должен некоторое время привыкать.
По поводу сложности. Монады, функторы и прочая — это не язык как таковой, а шаблоны проектирования над языком, готовые, глубоко интегрированныые, легко соединяемые и хорошо отлаженные. Простые программы могут обойтись и без них. А в сложных даже в С и Ява придется изучать их отдельно.
Если убрать в авторском коде new перед конструкторами, то получится практически Lisp. Ждем окончательной победы функционального программирования в C# 4.0 (и Java 2.0) :)
www.haskell.org/sitewiki/images/8/85/TMR-Issue13.pdf
В частности, я пытался, но не смог пользоваться языками с динамической проверкой типов, например, Питоном. Потому, что не доверяю программе и лень искать дополнительные ошибки.
По поводу корявого синтаксиса Хаскеля. Как раз наоборот, инфиксные и др. операторы сделаны для упрощения восприятия. Но! Действительно, к каждому оператору глаз должен некоторое время привыкать.
По поводу сложности. Монады, функторы и прочая — это не язык как таковой, а шаблоны проектирования над языком, готовые, глубоко интегрированныые, легко соединяемые и хорошо отлаженные. Простые программы могут обойтись и без них. А в сложных даже в С и Ява придется изучать их отдельно.
[1..]