【问题标题】:Making the Case for IronRuby and IronPython为 IronRuby 和 IronPython 提供案例
【发布时间】:2010-08-17 23:25:03
【问题描述】:

我想每个人都已经听说过有关 some key developers leaving the Dynamic Languages team 的消息,因为他们认为 Microsoft 对动态语言的支持正在减弱。

我非常喜欢 Python,并尝试经常使用它。因此,通过扩展,我关心 IronPython,并希望看到它继续发展。我相信很多人对 IronRuby 也有同感。但我仍然不太明白的是.NET 开发人员为什么要关心 IronRuby 和 IronPython?

如果您要写一封信给微软,要求他们继续支持和开发 DLR 和 Iron 语言,您会使用什么论据?

如果您要说服您的雇主投入开发人员的时间来为尚未制作的 IronPython 或 IronRuby 的社区支持版本做出贡献,您将如何在商业价值方面使其合理化?

以下是我可以提出的几个有趣的用例,但如果我让经理思考上述问题,我可能不会发现它们具有吸引力:

  1. 大型应用程序中的嵌入式脚本语言:一个有效的用例,但对于大多数开发人员来说似乎是一个小众场景。
  2. 测试和测试自动化: 特别是 Ruby 有丰富的优秀测试工具和库可供选择,如果通过 IronRuby 让它们在 .NET 中可用,那就太好了。但似乎等效的 .NET 库正在填补这一空白,例如 SpecFlowSelenium's WebDriver
  3. 在 Microsoft Stack 上运行现有框架:如果 IronRuby 能够使 Ruby on Rails 能够在带有 IIS 和 MS SQL 的 Windows 上运行,这可能会鼓励已在 Microsoft 堆栈上标准化的商店采用 RoR。

谁能想到更好的办法?

【问题讨论】:

    标签: ironpython ironruby dynamic-language-runtime dynamic-languages


    【解决方案1】:

    你写的很对,我再补充几点:

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

    【讨论】:

    • Shay,我在您的博客上偶然发现了这个问题的答案,然后才在这里发布,我注意到您是 IronRuby 的坚定拥护者。所以+1花时间在这里回复,谢谢。不幸的是,从这个问题的不受欢迎程度和我在网上看到的关于这个主题的普遍“meh”来看,似乎还没有提出强有力的、令人信服的论据。如果有你背景的人能够给出更明确的答案,那就太好了。
    • 嗯,我不认为有一个“明确的答案”。 Ruby 是一种编程语言,就像 C# 一样,你可以用它做任何你可以用 C# 做的事情,有时甚至更多。但是,IronRuby 有点问题,因为 .NET 开发人员不愿意停止使用 C#,因此您必须更多地将 IronRuby 作为一种工具而不是作为一种完整的编程语言来谈论。作为一种工具,我认为你的子弹加上我的子弹很有意义。在我看来,它是一个非常强大的工具。
    【解决方案2】:

    我不会低估将其中一个嵌入到大型应用程序中的价值。我使用 Ruby 的元编程功能动态修改应用程序的内部结构,以挂钩通常难以访问的内容(这对于事件尤其如此;我可以轻松添加临时外部挂钩来手动引发事件测试而不是实际修改和重新编译 C# 源代码)。这让我更容易找到错误并重现棘手的场景。它还让我可以对各种代码进行原型制作,然后将它们制作成单元测试或新类。

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

    【讨论】:

      【解决方案3】:

      轻量级脚本是在 .Net 工具包中使用动态、嵌入式语言的一个非常令人信服的理由。

      我公司做科学仪器软件。数据采集​​和分析都通过框架应用程序中的脚本完成。这使我们能够对客户的不同需求做出快速响应。

      我们一直在评估升级软件的技术,因此我们不必维护自己的脚本语言。我查看了 Qt/PyQt,但当它被卖给诺基亚时,我感到手足无措。我决定等着看 IronPython 是如何成熟的。在 .Net4 和 C# 4 出来之后,我决定使用 IronPython。

      我想现在我可能做出了错误的决定,正在考虑回到 Qt/PyQt。有什么令人信服的理由?

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-05-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-05-15
        • 1970-01-01
        相关资源
        最近更新 更多