问题 “铁”语言是否准备好迎接黄金时段?


可以在生产系统中开始使用Iron Ruby和Iron Python吗?另外,托管它们还有其他要求吗?

而且,对于奖励积分,假设F#是一种与Python相同的函数式编程语言,那么在.NET框架中使用一个优于另一个是否有任何优势?


7094
2017-10-22 14:12


起源

在开始之前,您可能会发现这个有趣: bit.ly/dl7YC9 - Lloyd
是的,正如劳埃德指出的那样,那个问题的时机非常糟糕,那里...... - Frosty840
Python不是一种功能语言。
我希望Python能用在与动态相同的句子中。 - GregC
“鉴于F#是一种与Python相同的函数编程语言” - 这甚至意味着什么? - Ken


答案:


可以在生产系统中开始使用Iron Ruby和Iron Python吗?

是。我负责一个24/7/365运行的软件系统。不是生命或死亡的关键,但很多钱很关键。它使用的是IronPython,虽然不是很多 - 但对于在动态语言中更容易做的事情来说,大多数都是少量的。这意味着:它有效,它不会使你的过程崩溃或者无缘无故地吃掉疯狂的内存。但是用户群和“语言社区”远小于例如C#,所以在线寻找帮助可能更难。

:关于“MS掉铁*” - 新闻:我真的不在乎这个。 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#是一种函数式语言:它支持模式匹配,高阶函数和-types,元编程等功能。如果你需要实现一个可以在函数式语言中更容易实现的高度复杂的算法,并且想要与C#代码接口,那真的很棒。 (最后一部分是我的个人观点。)
  • Python主要是一种OOP /命令式语言。将脚本添加到现有的C#应用​​程序非常棒。 (最后一部分是我的个人观点。)

如果您告诉我们更多关于您想做什么的事情,也许我们可以为您提供更具体的意见或建议其他选择。


10
2017-10-22 14:39



对于我对Python编程范例的误解感到抱歉,并感谢您的澄清。似乎Iron Python最好为我的应用程序添加脚本支持,而F#最好添加复杂的算法(例如模式匹配)。这听起来是对的吗? - PureCognition
@PureCognition:是的,这听起来对我来说,这就是我如何使用这两个。但如果其他人不同意,我会很乐意扩大名单的利弊。 - Niki


我们使用IronPython来构建 B2B Silverlight中的应用程序。我们从未遇到过有关性能或稳定性的问题。

因此,我们已经构建了两个应用程序(前端每个大约20,000行python代码 - 后端是使用Django或Catalyst框架构建的),并且正在构建下一个更大的应用程序。

使用像IronPython这样的动态语言,可以改变f.e.类中的函数,并通过HTTPRequest重新加载它。无需重新编译,在浏览器中重新加载整个silverlight应用程序并导航到代码更改生效的位置。

最近IronPython代码被放在了社区的手中,像Michael Foord这样的人在保持这个版本的Python up2date方面做得非常好。


3
2018-06-20 19:45



spassig,您是否主要使用IronPython来创建可在编译后更改的可自定义业务和验证规则? - PureCognition
PureCognition,我为IronPython中的应用程序的整个GUI构建逻辑(Dialoges,Charts,EventHandler,Requests,DocumentWindows,...) - spassig


F#适用于科学和金融应用。它可用于JVM世界中使用Scala的地方。实现这些范例的其他语言是Caml,OCaml,Erlang。


1
2017-10-22 14:34



对于高度并发的应用程序,F#也很棒。 - GregC
Greg说,你的并发评论可能会派上用场。谢谢。 - PureCognition