F#将来会开源吗?

7

2009年初,曾经有讨论是否将F#编译器的源代码发布在MS-PL或其他许可证下。当时的StackOverflow帖子提到了这个情况。

自那以后发生了很多事情。我们看到了.NET Framework 4.0(和Visual Studio 2010)中官方发布的F#版本,据我所知,它仍然是完全封闭的源代码。微软只是对这个问题保持沉默,还是已经明确表示不再打算开放源代码?也许事情已经在进行中。基本上,有任何新闻/考虑吗?


确实,社区维基可能是最好的。 - Noldorin
3
F# 的源代码并不是封闭的,它已经随着该项目的大部分生命周期而可用。在我的当前计算机上,它位于 C:\Program Files\FSharp-2.0.0.0\source 目录下。建立它并不直观,但可以在此处找到一些帮助:http://cs.hubfs.net/forums/thread/13456.aspx 。该项目没有使用经过批准的开源许可证,也不接受补丁,因此从这个意义上来说,它不是开源的。虽然未来可能会发生改变,但谁又知道未来会怎样呢? - Robert
感谢澄清。那么我的理解是,采用“开源”的方式将有效地包括发布适用于现有F#编译器代码的新宽松许可证? - Noldorin
ESP 错误:该死的吉姆,我是一个网站,不是水晶球! - dmckee --- ex-moderator kitten
1
警方已经关闭了又一个他们认为不适合的问题。 - Daniel
显示剩余4条评论
4个回答

7
(正如其他人指出的那样,源代码一直是可用的,但尚未采用MS-PL,“批准的开放源代码”许可证 - 它目前具有更严格的许可证。)如果我完全推测,我可能会假设有许多事情可能会“延迟”F#编译器的开源发布,包括以下内容:
- 编译器代码需要进行整理。源代码始终是公开的,但没有开放源代码许可证,因此没有太多人看过它。如果您打开它,人们会查看,在这种情况下,如果代码遵循至少一些基本的样式指南(例如使用RecommendedDotNETNamingConventions而不是old_legacy_ones),那么这将是很好的。在某种意义上,开源F#编译器将是一个“规范化的F#应用程序”,因此对于基本事项(如自过去5年以来编译器代码最初开发以来演变的F#编码约定)来说,代码的质量非常重要。 - 当前的代码难以在任何平台上构建。开源发布需要至少合理的文档,说明如何构建编译器(今天仍然不容易!),并理想情况下为主要平台(例如Windows / linux等)编写构建脚本。 - 即使IronPython / IronRuby(“开放”团队)与F#团队在MS的“隔壁”,使事情“开放”仍需要获得管理层的大量认可/签署,并在您首次发布开源软件之前更改管理层时重新签署。 - (管理开源项目的所有通常“开销”) - 所有这些都需要人力,而花费在这些事情上的人力就是不花费在其他事情上的人力,例如在下一个版本的F#上工作。因此,在实践中,做F#工作的少数人可能更容易在空闲时间里逐渐解决上述工作,而不是全神贯注于开源发布一个整月。 (正如其他人通过指向招聘链接间接建议的那样,一些人力资源可以通过MSR的实习生填补。)
我强调,所有这些都是完全推测性的,因为很长时间以来没有任何官方消息。

谢谢Brian,那是有趣的信息和猜测...似乎我们不得不等待任何肯定的答案,但至少现在代码可以用来玩耍。 - Noldorin
感谢您的假设性和非官方但非常有用的回答。 - Joel Mueller
有一个开源版本可用:http://fsharp.github.com/fsharp/(Apache 2.0许可证)。 - Roman Boiko

4
正如Robert在您的问题评论中所指出的那样,源代码已作为每个安装的一部分而可用,尽管它不带有开源许可证。此外,在读行间之间,我认为像Don Syme的这篇博客文章这样的东西仍然表明开源发布对团队来说是一个优先事项。

博客文章中发现了好消息。确实暗示着即将发布开源版本。 - Noldorin

0
这是一个问题吗?我不确定,更像是请求与现有情况相关的任何新闻。在请求中添加“考虑因素”会让人感到困惑,有哪些考虑因素呢?MS C#编译器是闭源的,但C#规范属于ECMA。F#规范尚未向更广泛的社区开放,这是我觉得最能说明问题的部分。

不,很明显这是一个相关新闻的请求。当我提到"考虑"时,我指的是它会发生吗?为什么(不会)?是否会有任何替代方案? - Noldorin

0
决定留给微软,我不认为这里有人能回答。然而,即使它是闭源的,我们仍然可能拥有框架的所有好处,因为微软非常致力于改进和提供更多功能。我认为,即使某些东西没有开源或者没有,但是创建者是否支持它,这是我最大的关注点。我们有很多开源项目,但是在它们不被维护和改进后,它们变成了代码垃圾。

2
我们拥有基类库大部分源代码 - Tim Robinson
@Tim,抱歉我不知道,谢谢你提供的信息。 - Akash Kava
1
自1.0版本以来,.Net框架核心的源代码一直可用,但它与F#具有相同的许可证,因此除了个人/学术用途外,它对其他任何用途都没有用处(尽管它非常适合学习)。我认为可以争论微软不开源 - 不久前,他们在Apache许可下开放了整个DLR和IronPython/IronRuby。 - Mark H
你说得很有道理,但我不确定它是否真正阐明了任何事情... - Noldorin

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接