官方消息:Visual Studio 2010 将正式包含 F#

  • Jonathan Allen
  • 朱永光

2008 年 12 月 25 日

话题:.NET函数式编程语言 & 开发架构

在 2007 年,微软就透露 F# 将在未来的某个时刻成为.NET 平台的头等语言。现在,它终于宣布 F# 将被包含在 Visual Studio 2010 中。

F#——微软支持的第一个主要的函数式语言,其基于 OCaml。Ocaml 被选中的一部分原因是,它支持函数式、命令式和面向对象的混合编程风格。虽然 F# 和 OCaml 吸引人们的地方是函数式编程,不过其他重要的方面还包括它们可以利用.NET 框架的功能特性。

现在,F# 还没有被考虑作为.NET 4.0 的特性。而是像 J# 那样更多地作为一个独立的分发包发布。这样允许微软为 F# 在 Mono 和 CLR 2.0 平台上的运行提供支持。

与另外一个新微软语言的精神相同,F# 编译器和工具将在微软公共许可协议(Microsoft Public License)下开源。这一许可协议是所有微软许可协议中最宽松的一个,基本来说你只要保留版权声明并且不对作者提出控告,那么你就可以做你想做的任何事情。

在 Visual Studio 里,F# 并不倾向于被单独使用。虽然微软鼓励开发人员使用 F# 来构建应用程序的核心,但对于呈现层他们还是推荐使用 VB 和 C#。Don Syme继续解释到:

我们所关注的是,发布一个高质量的 F# 核心工具,可以增强 Visual Studio 的实力,让其成为一个具有丰富界面开发能力的面向对象的编程环境。结果,我们做出了一个明确的决定,在这个版本中还是利用 C# 和 Visual Basic 的强大能力来作为呈现界面和具有良好设计器支持的编程语言。这意味着,F# 用户将要使用 Visual Studio 设计工具来生成 C# 或 Visual Basic 代码,并把这些组件合并到他们的 F# 应用程序中。

虽然 F# 超越了 OCaml 的基础功能,但它没有完全地抛弃它们。通过使用 F# Power Pack 组件,开发人员将依旧能够编写可被编译为 OCaml 的 F# 代码。这就要求使用有限的语言子集,尽管可以期望工具能告知开发人员哪些是只适用于 F# 的代码,但人们还是会感觉到诸多限制。

Don Syme 总结:

F# 是微软研究院、剑桥和微软开发部联合进行的高级开发项目。我非常高兴作为语言构架师参与其中,并且我将一直留在微软研究院。我们强大的团队包括了来自剑桥、Redmond、温哥华和中国的人们,一些团队成员还工作在德国和纽约。我一直被这些和我工作于同一个项目的人们和他们展现出的才能所折服,我希望这个项目在微软能成为一个创新开发的带头榜样。

查看英文原文:It's Official: Visual Studio 2010 Will Ship with F#

.NET函数式编程语言 & 开发架构