我最近注意到功能编程语言越来越流行。我最近看到了Tiobe索引与去年相比如何显示出其受欢迎程度的增加,尽管根据该索引,其中大多数甚至都没有进入前50种最受欢迎的语言。
这已经有相当长的一段时间了。函数式编程根本没有像其他模型那样流行(即,面向对象的编程)。
但是,我已经看到了对函数式编程功能的浓厚兴趣,现在,多核越来越流行,开发人员开始对由Haskell和Erlang等语言在过去探索的其他并发模型表现出兴趣。
我非常感兴趣地看到,尽管缺乏社区的广泛认可,但越来越多的此类语言继续出现。Clojure(2007),Scala(2003),F#(2002)只是最近十年的三个例子。
我本人一直在花时间学习Haskell和Scala。尽管存在了这么长的时间,但对于我来说,这是一个全新的范例,我发现了巨大的潜力。
当然,我最大的问题是,这些方法中的任何一种是否将变得足够流行,以至于考虑对其进行任何努力,但这是一个问题,即使人们对此大惊小怪,连Mandrake都无法回答。
我想问的是:
- 在哪种情况下,我应该考虑一种更适合执行给定任务的功能编程语言?除了最近流行的并行编程多核问题。
- 如果我决定改用函数式编程语言,那您会认为这是我将要面临的最大陷阱?(除了范式更改和由于懒惰的评估而难以评估性能)。
- 有这么多的函数式编程语言,您将如何选择一种更适合您的需求的语言?
任何进一步研究的建议都将受到欢迎。
我在网上搜索了一些意见,看来所有这些重新流行起来都来自这样的想法,即现在我们将要碰到摩尔定律,函数式编程语言将会出现并英勇地拯救我们。但是,如果是这样的话,我想说现有流行语言有更多的可能性适应这种范例。
你们当中有些人可能每天都有使用这些语言的丰富经验,可以为您提供有关该主题的更多见解。您的所有意见将得到更好的理解和认真考虑。
提前致谢!