F#会成为像C#这样的主流语言吗?或者它仍然是一种利基语言?

时间:2009-05-12 09:39:14

标签: f#

F#会不会像C#一样成为主流语言?或者它仍然是一种利基语言? 您是否预见到任何客户会向您提供以F#执行的项目? 专业程序员能否以F#谋生。您对F#程序员有什么样的需求预测?

亲切的问候,

9 个答案:

答案 0 :(得分:13)

今天有人靠功能编程谋生。例如,请参阅每年举行的commercial users of functional programming workshop

对于F#的第一个版本,Microsoft正在针对工程,数学,财务和数据处理应用程序(如果我没记错的话)。这是否是一个利基取决于你的观点:)但它似乎是一个合理的市场。

感谢F#优秀的.NET集成,您可以在很大程度上选择使用F#制作项目。你的客户应该关心什么。如果你从C#程序员那里获得竞争优势,也许你最好希望F#不会成为主流......

最后,当然F#(和Scala)至少是功能性编程将变得“更主流”的指标。但什么时候语言被认为是主流?如果C和COBOL中的代码行多于C#,VB和Java,那么我不会感到惊讶。所以从C程序员的角度来看,C#是一种利基语言。我认为,由于虚拟机,编程语言总体上变得更加多样化(例如,想想Ruby,Python和Haskell,不考虑所有较小的语言,如Clojure,Ioke,......)。

答案 1 :(得分:3)

我无法肯定地回答这个问题。当然这是非常主观的。我们可以等待,看看会发生什么。但有一件事是肯定的。即使F#仍然是少数民族语言,编程的思想和功能风格也将逐渐添加到其他语言中。你不能说C#3.0与C#1.0相同。这只是名称相似性的问题。

答案 2 :(得分:2)

我认为F#不会达到C#或其他命令式语言的普及,因为大多数应用程序都是强制设计的,大多数程序员都是这样想的。

但是F#提供了许多非常有趣的功能,如LOP,编译器编译器,计算表达式(异步工作流程),报价单位,度量单位。

在函数式编程语言中可以更好,更简洁地制定许多问题(使用async {}或seq {}查看那些F#示例)并且因为F#比主流更为主流。 Haskell(它有.NET框架,简化了许多任务,并不是纯粹的功能!),许多程序员更容易进入函数式编程并学习它的优点。

此外,在F#中编写错误的代码比在例如在C语言中,因为你有很好的类型检查,编译器和不可变值所引发的许多强类型 - 你可以直观地证明函数算法的正确性,这通常很难用于命令式算法。只要想想这个代码,它应该计算数组中零的数量:

int countZeros;
for (int i = 1; i <= length; i++) {
  if (data[i] = 0) {
   countZeros++;
 }
}

这些都是让人们使用F#的因素。其余的是营销(微软应该在VS2010中有一个F#Express Edition !!)

答案 3 :(得分:1)

我看不到功能语言整体成为主流。最终,任何与凡人的思维方式不同的东西都永远不会成为主流。

然而,功能编程不仅仅是利基。它在表达可以通过多个处理器解决的问题方面的优势是令人信服的。我看到的是用于特定目的的F#库和/或迁移到C#的F#概念。

答案 4 :(得分:1)

我不是专家,但我认为函数式编程的一个优点是相对无痛的并行和多核处理方法。因此,鉴于最近微软在该领域的公告,即Axum http://msdn.microsoft.com/en-us/devlabs/dd795202.aspx这是另一种并行编程方法,我真的怀疑F#将会成为主流。如果采用Axum,它可能与C#集成(如代码合同从Lab转移到C#4.0),F#将仅用于非常特定的域。

答案 5 :(得分:0)

功能编程 成为主流之前,我认为不会发生这种情况。

答案 6 :(得分:0)

F#的优点在于它允许的编程范例的强大组合。您可以用功能风格编写大部分程序 - 简洁,优雅,没有副作用(常见错误)。但是当你遇到一个无法在功能上解决的问题时,你可以输入一小段命令式代码来过去。将代码的各个部分标记为异步也非常容易,如果您有多个内核/处理器,它将以并行方式运行。解决方案比C#等价物容易得多。在见证了F#的创建者之一的演示之后,我留下的印象是他们已经设法从Python和Erlang中提取出很棒的功能。 F#可能会成为.NET对这两类语言的回答,并最终可以实现相当程度的主流采用。

答案 7 :(得分:0)

OTOH,如果你接受F#,这是一个主流的程序员......

避免这是一个自我实现的预言。

答案 8 :(得分:-3)

在业务线开发中,它永远不会发生。它太难了,所以普通的LOB开发人员永远无法维护它。在高端软件公司中,它可能会发生。