F#会不会是开源的?

时间:2010-07-27 10:32:53

标签: open-source compiler-construction f#

2009年初讨论了微软是否会在MS-PL /其他许可下发布F#编译器的来源。 StackOverflow thread提到了当时的状态。

此后发生了很多事。我们已经看到了使用.NET Framework 4.0(和Visual Studio 2010)正式发布的F#,据我所知,它仍然是完全封闭源代码。微软是否对此问题保持沉默,还是明确表示他们不再打算开源编译器?也许事情已经在进行中。基本上,任何新闻/考虑?

4 个答案:

答案 0 :(得分:7)

(正如其他人所指出的那样,源代码一直可用,但尚未获得MS-PL,即“获得批准的开源”许可证 - 它目前拥有更严格的许可证。)

如果我完全是推测性的,我可能会假设有很多东西可能会“延迟”F#编译器的开源版本,包括:

  • 编译器代码需要整理一下。源代码一直是公开的,但没有开源许可证,没有太多人看过它。如果你打开它,人们会看,在这种情况下,如果代码遵循至少一些基本的样式指南,比如使用RecommendedDotNETNamingConventions而不是old_legacy_ones,那将会很好。从某种意义上说,开源的F#编译器将是一个“规范的F#应用程序”,因此对于像F#编码惯例这样的基本内容(随着时间的推移在过去5年内发展而来),代码必须具有高质量。自编译器代码最初开发以来的几年。
  • 目前的代码很难在任何平台上构建。一个开源版本至少需要关于如何构建编译器的合理文档(今天仍然非常重要!)并且理想地为主要平台构建脚本(例如Windows / linux / etc)。
  • 即使IronPython / IronRuby('开放'团队)在MS的F#团队“刚刚走下大厅”,让事情“开放”仍然需要从管理层获得大量的买入/签到,如果管理层在您获得第一个开源版本之前发生变化,则从新管理层重新签字。
  • (管理开源项目的所有常规'开销')
  • 以上所有都需要人力,花在这些事上的人力是人力,而不是花在其他事情上,比如在下一版本的F#上工作。所以在实践中,少数做F#工作的人在空闲时间蚕食上述工作可能更为可行,而不是花费整整一个月来专注于开源版本。这样可能会减慢速度。 (正如其他人通过指向工作岗位的链接而切向建议,一些人力可以假设由MSR的实习生填补。)

我强调所有这些都是完全假设的推测,因为很长一段时间内没有任何人发表任何官方消息。

答案 1 :(得分:4)

正如Robert对您的问题的评论所示,源代码已作为每个安装的一部分提供,但它没有附带开源许可证。另外,在各行之间阅读,我认为像this blog post by Don Syme这样的东西仍然指向开源版本作为团队的优先事项。

答案 2 :(得分:0)

这是一个问题吗?我不确定,它更多的是要求任何有关现有情况的新闻。在请求中添加“注意事项”令人困惑,有哪些注意事项? MS C#编译器是封闭源代码,但C#规范是ECMA。 F#规范尚未向更广泛的社区开放,这是我所感受到的一部分。

答案 3 :(得分:0)

决定留给微软,我不认为这里的任何人都可以回答这个问题。但是,即使它是封闭源代码,我们仍然可能拥有该框架的所有好处,因为Microsoft非常致力于改进并在框架中提供更多功能。我认为即使某些东西不是开源的,但创作者是否支持它,这是我最关心的问题。我们对开源的项目有所了解,但是在没有维护并且从未改进之后它们变成了代码垃圾。