将遗留C程序移植到Python的可行性是什么?

时间:2009-03-10 23:47:15

标签: python c

我在C中有一个程序,通过UDP与另一个程序(Java)进行通信,然后根据UDP pkt交换进行处理操作(启动/停止)。 现在这个C程序已经遗留下来了,我想把它转换成Python - 你觉得Python对于提到的任务是个不错的选择吗?

7 个答案:

答案 0 :(得分:9)

是的,我确实认为Python会是一个很好的替代品。我知道Twisted Python框架很受欢迎。

答案 1 :(得分:4)

我会说:if:

  • 您的C代码不包含任何平台特定要求
  • 你确定速度不会成为从C到python的问题
  • 您不再需要编译
  • 您想尝试使用异常处理
  • 你想涉足OO
  • 您可以选择在不移植的情况下在多个平台上运行
  • 您对动态类型感到好奇
  • 您希望为您处理内存
  • 您知道或想学习python

然后确定,为什么不呢。

似乎没有任何技术原因你不应该在这里使用python,所以在这种情况下它是首选。

答案 2 :(得分:2)

请记住,您可以将程序的一部分保留在C中,将它们转换为Python模块并围绕它们构建python代码 - 您不需要预先重写所有内容。

答案 3 :(得分:1)

假设你可以控制运行这个应用程序的环境,并且可以忽略解释语言(python)与编译语言(C)相比的性能,我相信Python是一个很好的选择。 / p>

答案 4 :(得分:1)

如果我遇到类似的情况,我会问自己几个问题:

  • 我还有什么比这更重要的了吗?
  • Python是否为当前应用程序当前处理不当的表带来了什么?
  • 这是否允许我添加以前难以实现的功能?
  • 这是否会以任何方式扰乱服务?

如果我不能满意地回答这些问题,那么我就推迟重写。

答案 5 :(得分:1)

是的,如果所有平台都支持Python,我认为Python是一个不错的选择。由于这是一个网络程序,我假设网络是你的运行时瓶颈?在Python中,情况可能仍然如此。如果你真的需要加快速度,那么你可以把你的长期调试,快速的C作为Python模块。

答案 6 :(得分:0)

如果这是一个嵌入式程序,那么移植它可能会有问题,因为Python程序通常依赖于Python运行时和库,而且这些程序相当大。特别是与执行定义明确的任务的C程序相比。当然,你可能已经考虑过这方面了,但我想在问题的背景下提一下,因为我认为这是进行这种比较时的一个重要方面。