我在这里看到很多关于函数式语言的讨论。为什么你要使用传统语言而不是传统语言呢?他们在哪些方面做得更好?他们更不擅长什么?理想的函数式编程应用程序是什么?
当前回答
我的观点是,既然微软已经把它推向了主流,它就会流行起来。对我来说,它很有吸引力,因为它能为我们做什么,因为它是一个新的挑战,因为它为未来提供了工作机会。
一旦掌握了它,它将成为进一步帮助我们提高编程效率的另一个工具。
其他回答
我一直对“下一件大事”持怀疑态度。很多时候,下一个大事件纯粹是历史的偶然,无论技术好坏,它都在正确的时间出现在正确的地点。例如:c++, Tcl/Tk, Perl。所有的技术都是有缺陷的,都非常成功,因为它们被认为要么解决了当时的问题,要么与根深蒂固的标准几乎相同,或者两者兼而有之。函数式编程可能确实很棒,但这并不意味着它会被采用。
But I can tell you why people are excited about functional programming: many, many programmers have had a kind of "conversion experience" in which they discover that using a functional language makes them twice as productive (or maybe ten times as productive) while producing code that is more resilient to change and has fewer bugs. These people think of functional programming as a secret weapon; a good example of this mindset is Paul Graham's Beating the Averages. Oh, and his application? E-commerce web apps.
自2006年初以来,也有一些关于函数式编程和并行的讨论。因为像Simon Peyton Jones这样的人至少从1984年开始就一直在担心并行性,所以在函数式语言解决多核问题之前,我不会屏住呼吸。但它确实解释了目前一些额外的话题。
In general, American universities are doing a poor job teaching functional programming. There's a strong core of support for teaching intro programming using Scheme, and Haskell also enjoys some support there, but there's very little in the way of teaching advanced technique for functional programmer. I've taught such a course at Harvard and will do so again this spring at Tufts. Benjamin Pierce has taught such a course at Penn. I don't know if Paul Hudak has done anything at Yale. The European universities are doing a much better job; for example, functional programming is emphasized in important places in Denmark, the Netherlands, Sweden, and the UK. I have less of a sense of what's happening in Australasia.
它之所以流行起来,是因为它是控制复杂性的最佳工具。 看到的: ——西蒙·佩顿-琼斯演讲《哈斯凯尔的味道》幻灯片109-116 ——Tim Sweeney的《下一个主流编程语言:游戏开发者的视角
除了其他答案之外,用纯函数术语来描述解决方案可以迫使人们更好地理解问题。相反,用函数式的思维方式会培养出更好的解决问题的能力。
*要么是因为功能范式更好,要么是因为它可以提供额外的攻击角度。
我同意第一点,但是时代变了。公司会做出回应,即使他们是后期采用者,如果他们看到有一个优势。生活是动态的。
90年代末,他们在斯坦福教授哈斯凯尔和ML。我相信卡内基梅隆大学、麻省理工学院、斯坦福大学和其他一些好学校正在向学生们展示它。
我同意大多数“在网络上公开关系数据库”的应用程序将在很长一段时间内继续这样做。对于这个问题,Java EE、. net、RoR和PHP已经演化出了一些非常好的解决方案。
您发现了一些重要的问题:这可能是其他方法无法轻松解决的问题,而这些方法将促进函数式编程。那是什么?
大规模多核硬件和云计算会推动它们向前发展吗?
因为FP在生产力、可靠性和可维护性方面有显著的好处。多核可能是一个杀手级应用程序,最终让大公司在大量遗留代码的情况下转换。此外,即使是像c#这样的大型商业语言,也因为多核问题而呈现出一种独特的函数风格——副作用根本不适合并发性和并行性。
我不认为“普通”程序员不能理解它。他们会的,就像他们最终理解了面向对象编程一样(它同样神秘和怪异,如果不是更神秘的话)。
此外,大多数大学都教授FP,许多甚至将其作为第一门编程课程。