Python 应用程序是否需要转换为 C#?

157 阅读3分钟

一名程序员在公司里编写了几款 Python 工具,这些工具经过验证后证明非常有用。现在他想知道是否有必要将这些工具从 Python 转换为 C#。

huake2_00020_.png 2. 解决方案: 以下是一些来自不同用户的回答:

  • 如果公司正在向 .NET 迁移,或者不再有合格的 Python 开发人员,那么可以考虑转换。否则,就没有必要转换。

  • 可以使用 IronPython,这是一种针对 .NET 的 Python 实现。如果确实需要摆脱“标准”Python 虚拟机并转到 .NET 平台,这是一种选择。

  • 除非有非常好的商业理由,否则应将应用程序保留为 Python。

  • 仅仅为了改变语言而改变语言通常不是一个好主意。如果应用程序能够正常运行,就应该让它继续运行。如果公司强制要求只能使用 C#,那可能是另一种情况(评估工作量,向管理层提供评估结果,让他们决定继续转换或者撰写例外情况说明)。即使整个组织对 Python 没有深入的了解(或完全不了解),开发人员也相当擅长学习新语言(这是生存技能),所以这往往不是一个值得担心的问题。总而言之,如果要对应用程序进行重写,那么除了改变语言之外,还应该有更多理由来证明重写的合理性。如果要添加一些功能,而使用另一种语言的库/框架可以显著简化实现和维护,那么这就是一个很好的理由。如果维护一种语言的环境/框架会造成可观的运营开销,而重写可以节省开销,那么这也是一个理由。但是,“因为我们的其他代码是用 C# 编写的”并不是一个很好的理由。

  • 如果你是 C# 工作室中唯一的 Python 开发人员,那么转换很有意义。如果你明天离职,没有人能够维护这些系统。

  • 除非你正在进行整个企业范围内从一种语言切换到另一种语言的转换,否则我不会进行转换。即使在这种情况下,我也会尽量避免转换,直到绝对必要时才转换。如果应用程序能够正常运行,为什么要改变它呢?

  • 只要应用程序运行良好,就没有理由切换到 C#。

  • 如果你正在寻找转换的理由,我想到了几个。但这并不一定意味着你应该转换,这些只是“重写”方面的一些可能理由。

    • 可维护性:如果你的开发团队主要专注于 C#,那么保留 Python 应用程序可能会在可维护性方面造成问题。这意味着需要保留 Python 员工(假设这是一个复杂的应用程序)来维护它。这可能是一种他们不希望的限制,尤其是在他们从今以后不打算用 Python 编写任何东西的情况下。
    • 一致性:这有点属于可维护性的范畴,但它有不同的特点。如果他们想将 Python 应用程序的一部分集成到 C# 应用程序中,而不是全部集成,那么可以编写一些样板代码,但同样,维护起来很麻烦。最终,你希望 Python 应用程序的代码能够无缝集成到 C# 应用程序中,而不必分别运行它们。另一方面,公平地说,你是在花时间和金钱转换一个本来已经可以正常运行的东西。