Open source F#会不会开源?

Open source F#会不会开源?,open-source,compiler-construction,f#,Open Source,Compiler Construction,F#,2009年初,有人讨论微软是否会在MS-PL/另一个许可证下发布F#编译器的源代码。A提到了当时的状态 从那时起,发生了很多事情。我们已经看到了带有.NETFramework4.0(和VisualStudio2010)的F#的正式发布,据我所知,它仍然是完全封闭的源代码。微软只是在这个问题上保持沉默,还是明确表示他们不再打算开源编译器?也许事情已经在这个过程中了。基本上,有什么新闻/考虑吗?这是个问题吗?我不确定,这更多的是一个关于现有情况的新闻请求。在请求中添加“注意事项”令人困惑,有哪些注意

2009年初,有人讨论微软是否会在MS-PL/另一个许可证下发布F#编译器的源代码。A提到了当时的状态


从那时起,发生了很多事情。我们已经看到了带有.NETFramework4.0(和VisualStudio2010)的F#的正式发布,据我所知,它仍然是完全封闭的源代码。微软只是在这个问题上保持沉默,还是明确表示他们不再打算开源编译器?也许事情已经在这个过程中了。基本上,有什么新闻/考虑吗?

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

决定权留给了微软,我认为这里没有人能回答这个问题。然而,即使它是封闭源代码的,我们仍然可能拥有框架的所有好处,因为微软非常致力于改进和提供框架中的更多功能。我认为,即使某些东西不是开源的,但创建者是否支持它,这是我最大的担忧。我们有开源项目的音调,但它们在没有得到维护和改进后就变成了代码垃圾。

正如Robert对您的问题的评论所指出的,源代码已经作为每个安装的一部分提供,尽管它没有开源许可证。此外,从字里行间看,我认为开源版本仍然是团队的优先考虑事项。

(正如其他人所指出的,该源代码一直可用,但还不在MS-PL许可下,即“批准的开源”许可证下——它目前有一个更严格的许可证。)

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

  • 编译器代码需要稍微整理一下。源代码一直是公开的,但是没有开源许可证,没有太多人看过它。如果您打开它,人们会看到,在这种情况下,如果代码至少遵循一些基本的样式指导原则,比如使用
    推荐的DotnetnamingConventions
    ,而不是
    旧的\u legacy\u约定
    ,那就太好了。从某种意义上说,开源的F#编译器将是一个“规范的F#app”,因此,对于F#编码约定(自最初开发编译器代码以来,在过去5年多的时间里,随着时间的推移不断发展)等基本内容而言,代码的高质量是很重要的
  • 目前的代码很难在任何平台上构建。一个开源版本需要至少合理的文档来说明如何构建编译器(今天仍然是非常重要的!),并且最好为主要平台(例如Windows/linux/etc)构建脚本
  • 即使IronPython/IronRuby(“开放”团队)与微软的F#团队“相去甚远”,要使事情“开放”仍然需要管理层的大量认可/签核,如果管理层在发布第一个开源版本之前发生变化,还需要新管理层的重新签核
  • (管理开源项目的所有常见“开销”)
  • 所有这些都需要人力,而花在这些事情上的人力是人力,而不是花在其他事情上,比如在F#的下一个版本上。因此,在实践中,对于少数从事F#工作的人来说,在空闲时间啃食上面的工作可能更可行,而不是花一个月的时间专注于开源版本。所以这可能会减慢速度。(正如其他人通过指向职位公告的链接所暗示的那样,一些人力资源可以假设由MSR的实习生来填补。)

我要强调的是,所有这些都完全是假设性的推测,因为很久以来没有任何人发表过官方言论。

有趣的问题,我将其标记为社区维基。事实上,社区维基可能是最好的。F#源代码库并不紧密,它在发行版的大部分项目生命周期中都是可用的。它位于我当前计算机上的C:\Program Files\FSharp-2.0.0.0\source中。构建它不是直截了当的,但是可以在以下位置找到一些帮助:。该项目不是经批准的开源许可证下的许可证,他们不接受修补程序,因此从这个意义上讲,它不是开源的。这可能会在将来发生变化,但谁知道未来会发生什么呢?另请看问题警察已经关闭了另一个他们认为不合适的。我们有@Tim,很抱歉我没有意识到,感谢您提供的信息。Net framework的核心源自1.0开始就可用,但它拥有与as F#相同的许可证,这使得它除了用于个人/学术用途之外没有任何用途。(尽管这对学习很有帮助)。我认为微软不开放源代码是有争议的——不久前,他们在Apache许可下开放了整个DLR和IronPython/IronRuby。你说得很对,尽管我不确定它是否真的揭示了任何事情……不,这显然是对相关新闻的要求。我所说的考虑因素是,它会发生吗,为什么(不会),会有其他选择吗?很好,在博客上找到。事实上,它确实暗示了即将发布的开源版本。谢谢Brian,这是有趣的信息和推测。。。我们将不得不等待任何似乎是肯定的答案,但至少现在代码还有待修改。感谢您假设的、非官方的、但信息丰富的答案。有一个开源版本可用:(Apache 2.0许可证)。