В последнее время я заметил, что функциональные языки программирования набирают популярность . Я недавно видел, как индекс Tiobe показывает рост их популярности по сравнению с прошлым годом, хотя большинство из них даже не достигают 50 самых популярных языков по этому индексу.
И это имело место в течение достаточно долгого времени. Функциональное программирование просто не стало таким популярным, как другие модели (т.е. объектно-ориентированное программирование).
Однако я видел возрождающийся интерес к возможностям функционального программирования, и теперь, когда многоядерные технологии становятся все более и более популярными, разработчики начали проявлять интерес к другим моделям параллелизма, уже изученным в прошлом такими языками, как Haskell и Erlang.
Я с большим интересом вижу тот факт, что, несмотря на отсутствие значительного признания в сообществе, все больше и больше языков такого рода продолжают появляться. Clojure (2007), Scala (2003), F # (2002) - это всего лишь три примера последнего десятилетия.
Я сам потратил некоторое время на изучение Haskell и Scala. И я нахожу большой потенциал в парадигме, которая была для меня новой, несмотря на то, что я был там так долго.
И, конечно же, мой самый большой вопрос - станет ли какой-либо из них достаточно популярным, чтобы рассмотреть возможность приложить к ним какие-то усилия, но на этот вопрос даже Мандрейк не смог ответить, несмотря на всю суету, которую люди с ним делают.
Я хочу спросить:
- В каких сценариях мне следует рассмотреть функциональный язык программирования, более подходящий для выполнения определенной задачи? Помимо недавно популярной многоядерной проблемы параллельного программирования.
- Если бы я решил перейти на функциональный язык программирования, который вы бы назвали самыми большими подводными камнями, с которыми мне пришлось бы столкнуться? (Помимо изменения парадигмы и сложности оценки производительности из-за ленивой оценки).
- Имея так много функциональных языков программирования, как бы вы выбрали тот, который лучше соответствует вашим потребностям?
Любые рекомендации для дальнейших исследований будут приветствоваться.
Я искал в Интернете мнения, и, похоже, вся эта новая популярность исходит из идеи, что теперь мы собираемся ударить о стену закона Мура, и функциональные языки программирования придут и героически спасут нас. Но если это так, я бы сказал, что существует больше вероятностей того, что существующие популярные языки адаптируются к этой парадигме.
Некоторые из вас, с большим опытом работы с этими языками каждый день, могут предложить более глубокое понимание этого вопроса. Все ваши мнения будут лучше оценены и тщательно рассмотрены.
Заранее спасибо!