Ажиотаж вокруг функциональных языков

Сейчас часто можно услышать “функциональный язык”, “Scala”, “Хаскель”.

А что же случилось? Что за ажиотаж? Тот же Лисп появился в 1958 году. Но почему-то о нем особо ничего не слышно. Да, его где-то все таки используют, но почему-то императивные языки, такие как Java, C++ гораздо распространеннее.

Читая обзор по Scala, я увидел много многовведений, которые удобны, но……. большинство из них не являются привилегией функциональных языков, например встроенный XML, более продвинутые шаблоны (хотя в C++ такая продвинутость уже давно есть без функционального программирования) и т.д.

Замыкания более лаконичны, чем в Java – хотя не возмусь судить, действительно ли это стало возможным благодаря тому, что Scala – функциональный язык.

Единственное, что для меня кажется очевидным преймуществом – это отсутствие side effects, что при многопоточном программировании потенциально имеет преимущества.

Я соглашусь, что на Scala можно писать более элегантный код, чем на Java.

Но давайте заглянем дальше. Функциональные языки программирования мощнее императивных языков.
Но есть же еще логические языки программирования, которые мощнее функциональных языков программирования.

А с логическими уже интересная история произошла. Еще в году 2002 академик  на парах рассказывал эксперимент который проводили японцы. Они, поняв всю мощь (с теоретической точки зрения) логических языков решили кругом применять Prolog… и вся это затея успешно провалилась, что для академика было очевидным еще до начала эксперимента.
А почему? А ответ банальный: люди думают императивно, а не логически… и не функционально.

Да, будут жить и логические языки, и тем более функциональные, и будут успешно применяться. Но это вовсе не означает, что они заменят или составят хоть какую либо серьйозную конкуренцию императивным языкам именно потому, что они функциональные или логические.

Все точки над “I”, конечно, расставит время.

Share

Leave a Reply

Your email address will not be published. Required fields are marked *