InfoQ

InfoQ

新闻

我的书签

登录注册 以永久保存书签。

该内容已经被标记书签!

标记书签错误,请重试!

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

作者 Jonathan Allen 译者 朱永光 发布于 2008年12月25日

领域
架构 & 设计,
语言 & 开发
主题
编程 ,
.NET
标签
F# ,
函数式编程

在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#

译者 朱永光 是IT自由人和环境保护者,微软最有价值专家(MVP)和MCSD。

深度内容

专访Jeffery Richter:Windows 8是微软的重中之重

Jeffery Richter以其多本Windows核心技术的经典著作而闻名,同时,他深入掌握微软的.NET等一系列核心技术,2012年1月,Jeffery Richter在北京接受了InfoQ中文站的专访,谈到Windows 8和WinRT编程,并就异步编程、Windows编程中的可扩展性、性能和安全性方面给出自己的建议。

应用云平台的可用性——从新浪SAE看云平台设计

云计算平台的可用性,相比传统互联网服务而言,更加复杂和困难,也更具有挑战性。本文借助新浪SAE云平台为读者讲述了云平台可用性的定义、如何打造高可用的平台,以及对云计算的用户提出了建议。

JVM定制改进 @ 淘宝

淘宝高度重视Java平台的健康发展,组建了一个团队专注于Java平台的底层部分的性能、功能与稳定性改进;工作主要基于OpenJDK中的HotSpot VM开展,其中一些通用的功能随后也会逐渐反馈给OpenJDK社区。希望能与使用Java平台开发应用的大家交流经验。
本次演讲视频录制于QCon杭州2011

"伤得起"的云计算应用——对云端应用之架构的思考

2011年4月21日至22日是值得云计算从业者纪念的日子。Amazon的IaaS服务出现故障,导致许多商业网站的服务中断,影响非常严重。作为云计算用户,我们需要思考的是,如何保证即便在云服务不可用的情况,我们的应用架构仍然能够屹立不倒?本文正是站在云计算用户的角度试图探讨这一问题。

让交付的速度跟上思考的速度

12人的技术团队,4组刀片服务器,每月20亿的访问量,每日1次准时部署,99.9%的可用性。这可能吗?当然。想知道如何做的吗?百姓网将与您分享他们在DevOps实践过程中的经验和技巧。
本次演讲视频录制于QCon杭州2011

架构之路——穿行在产品和业务之间

篱笆作为一家起源于社区的电子商务公司,反映到技术层面就是同时要面对产品和业务,以及经营战略的变化调整。如何在产品和业务的夹缝之间完成技术架构的抽象与平衡,寻找更有效的价值定位,这当中有些经验教训和个人感悟愿与众人分享。
本次演讲视频录制于QCon杭州2011

特性注入:成功三部曲

本文将对特性注入以及相关方法做一个扫盲性的介绍。我们会解释这个框架的关键要素,并附上实例来证实它们。为了让文章保持相对较短,我们不会深入到某个工具或方法中,而是会给出一些参考资料,以便大家做进一步的研究。

解析JDK 7的动态类型语言支持

随着JDK 7的发布,字节码指令集终于迎来了第一位新成员——invokedynamic指令。这条新增加的指令是JDK 7实现“动态类型语言(Dynamically Typed Language)”支持而进行的改进之一,也是为JDK 8可以顺利实现Lambda表达式做技术准备。在这篇文章中,我们将去了解JDK 7这项新特性的出现前因后果和它的意义。