“铁”语言是否已经准备好用于实际应用?

11

在生产系统中开始使用Iron Ruby和Iron Python可以吗?此外,托管它们是否有任何额外要求?

而且,对于额外的加分,考虑到F#与Python一样是一种函数式编程语言,那么在.NET框架内使用其中一种是否有优势?


3
在您开始之前,您可能会发现这个链接很有趣:http://bit.ly/dl7YC9 - Lloyd
1
是的,正如Lloyd所指出的那样,在这个时候提出你的问题非常不适当。 - Frosty840
7
Python 不是一种函数式编程语言。 - user395760
我希望Python能够和动态这个词一起使用。 - GregC
奖金部分可能已经涵盖在https://dev59.com/sHA75IYBdhLWcg3wYH7I中。 - Muhammad Alkarouri
显示剩余4条评论
3个回答

10
这里需要翻译的内容是关于在生产系统中使用Iron Ruby和Iron Python是否可行的问题。答案是肯定的。有人负责一个软件系统,它每天都在24/7/365运行。虽然不是关乎生死的重要系统,但对于赚钱来说很重要。该系统使用IronPython,虽然使用不多,主要是为了处理一些在动态语言中更容易实现的小脚本。这意味着:它工作正常,不会崩溃您的进程或因无用原因而占用大量内存。但用户群和“语言社区”比如C#等远小于其他语言,所以可能更难在线上寻求帮助。
关于“MS放弃Iron *”消息的补充:我真的不太关心那个。许多好的语言并没有被Microsoft积极开发。只要有活跃的开发,只要它能做你想要做的事情,只要你找得到支持,就应该没问题。但这可能更多是一个品味问题,而非技术问题。
此外,关于托管它们是否有任何额外要求?对于可使用的IronPython 1.0版本,您只需要两个程序集。对于2.0版本,则还需要DLR程序集,但我不知道它们是否很大或是否具有任何外部依赖项。
至于奖励分数,考虑到F#和Python都是函数式编程语言,它们之间是否有任何优势可以在.NET框架中使用其中之一?正如delnan所说,F#是功能性语言,而Python不是。Python是一种支持诸如Lambda表达式或列表解析等一些函数式编程概念的多范式语言,但C#也支持这些概念。F#和Python实际上是非常不同的东西。它们的主要区别在于:
- F#由F#编译器编译为IL(它不是动态语言),IronPython可以在运行时编译或解释执行 - F#是具有类型推断的静态类型,Python是动态类型(类型检查在运行时完成)
  • F#是一门函数式语言:它支持模式匹配、高阶函数和类型、元编程等特性。如果你需要实现复杂的算法且该算法在函数式语言中更容易实现,同时需要与C#代码进行交互,那么F#将非常适合你。(最后这部分是我的个人观点)
  • Python主要是面向对象/命令式语言,它非常适合为现有的C#应用程序添加脚本功能。(最后这部分是我的个人观点)
  • 如果您告诉我们更多关于您想要做什么的信息,或许我们可以给您更具体的建议或者提供其他选择。


    1
    对于我对Python编程范式的误解,我感到抱歉,并感谢您的澄清。看起来Iron Python最适合为我的应用程序添加脚本支持,而F#最适合添加复杂算法(如模式匹配)。这听起来正确吗? - PureCognition
    @PureCognition:是的,我认为这样说很正确,这也是我使用这两个的方式。但如果有人持不同意见,我很乐意用更多的优缺点来扩展列表。 - Niki

    3
    我们使用IronPython在Silverlight中构建B2B应用程序。我们从未遇到过性能或稳定性方面的问题。到目前为止,我们已经构建了两个应用程序(每个应用程序前端都有约20,000行Python代码 - 后端使用Django或Catalyst框架构建),并正在构建下一个更大的应用程序。
    使用像IronPython这样的动态语言,可以更改类中的函数并通过HTTP请求重新加载它。无需重新编译,在浏览器中重新加载整个Silverlight应用程序并导航到代码更改生效的位置。
    最近,IronPython代码被交给社区,并且像MichaelFoord这样的人正在努力保持Python版本最新化。

    Spassig,你主要使用IronPython创建可自定义的业务和验证规则,这些规则可以在编译后进行更改吗? - PureCognition
    1
    PureCognition,我们使用IronPython构建整个应用程序GUI的逻辑(对话框、图表、事件处理程序、请求、文档窗口等)。 - spassig

    1

    F#非常适合于科学和金融应用。它可以在JVM世界中使用Scala的地方使用。实现这些编程范式的其他语言包括Caml,OCaml和Erlang。


    1
    F# 也非常适合高并发应用程序。 - GregC
    你的并发注释可能会在以后派上用场,Greg。谢谢。 - PureCognition

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