为IronRuby和IronPython做出支持的理由

7
我猜大家都已经听说了一些关键开发人员离开动态语言团队的消息,因为他们认为微软对动态语言的支持正在减弱。
我非常喜欢Python,并尝试经常使用它。因此,顺理成章地,我关心IronPython,并希望看到它继续发展。我相信许多人也对IronRuby有同样的感受。但是我仍然无法完全弄清楚.NET开发人员为什么应该关心IronRuby和IronPython? 如果你要写一封信给微软,要求他们继续支持和开发DLR和Iron语言,你会使用哪些论据?
如果你要说服你的雇主投入开发人员时间来贡献于尚未推出的社区支持版本的IronPython或IronRuby,你将如何用业务价值来合理化这个决定?
以下是我能想到的一些有趣的用例,但如果我是一个考虑上述问题的经理,我可能不会觉得它们很有说服力:
  1. 在大型应用程序中嵌入脚本语言:这是一个有效的使用案例,但对于大多数开发人员来说似乎是一个小众场景。
  2. 测试和测试自动化:特别是Ruby拥有丰富的优秀测试工具和库,如果可以通过IronRuby在.NET中使用它们将会很好。但似乎等效的.NET库正在填补这个空白,例如SpecFlowSelenium的WebDriver
  3. 在Microsoft Stack上运行现有框架:如果IronRuby能够使Ruby on Rails在Windows上通过IIS和MS SQL运行,这可能会鼓励那些已经在Microsoft Stack上标准化的商店采用RoR。

有没有人想到更好的方法?

3个回答

5

你所写的是正确的,我会补充一些内容:

  • 使用交互式控制台快速浏览/测试方法。
  • 由于在IronRuby/IronPython中开发更快,您可以使用它编写POC,然后在C#或其他您正在使用的语言中实现真正的应用程序。
  • 在IronRuby中实现DSL,并从静态语言中使用它们。
  • 向静态语言应用程序添加动态功能(例如REPL控制台)。
  • Gestalt。
  • 对于Ruby开发者:使用IronRuby编写WPF和Silverlight(也有可能是WP7应用程序)。

Shay,在发布这个问题之前,我在研究答案时偶然发现了您的博客,并注意到您是IronRuby的坚定支持者。所以+1感谢您在这里回复,非常感谢。不幸的是,从这个问题的响应不佳和我在网上看到的一般“meh”(无感)来看,似乎尚未提出强有力和令人信服的论点。如果有您这样背景的人能够阐述一个更明确的答案,那就太棒了。 - Mhmmd
我认为这并没有“绝对的答案”。Ruby和C#一样是一种编程语言,您可以像使用C#一样使用它,有时甚至可以做得更多。 然而,IronRuby有些问题,因为.NET开发人员不愿意停止使用C#,所以您必须更多地将IronRuby作为工具而非完整的编程语言来讨论。就工具而言,我认为您列举的要点和我的要点都非常有道理。在我看来,这 making 一个非常强大的工具。 - Shay Friedman

2

我不会低估将它们嵌入大型应用程序的价值。我使用Ruby的元编程能力动态修改应用程序内部,以便连接到通常难以访问的内容(尤其是事件;我可以轻松添加临时外部钩子来手动触发事件进行测试,而无需实际修改和重新编译C#源代码)。这使我更容易地查找错误并复制棘手的情况。它还让我原型化各种代码,以后我可以将其制作成单元测试或新类。

此外,对于QA手动测试人员,它也很有用。常见任务可以并入他们可以运行的自动化脚本中。


0
轻量级脚本是在 .Net 工具包中嵌入动态语言的一个非常有吸引力的原因。
我们公司从事科学仪器软件开发。数据采集和分析都是在框架应用程序中使用脚本完成的。这使得我们能够非常快速地响应客户不同的需求。
我们一直在评估技术,以升级我们的软件,这样我们就不必维护自己的脚本语言。我曾经考虑过 Qt/PyQt,但当它被出售给诺基亚时,我有些犹豫了。我决定等待 IronPython 成熟一些再做决定。在 .Net4 和 C# 4 发布后,我决定使用 IronPython。
现在我认为我可能做出了错误的决定,正在考虑回到 Qt/PyQt。这难道不是一个非常有说服力的理由吗?

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