C ++遗留项目工作流的编程语言决策

时间:2010-02-22 18:11:57

标签: java python programming-languages binding java-native-interface

我的同事们有很多C ++遗留代码模块,遗憾的是写得不好。每个人都在做不同的工作,但他们都是在Linux下运行的GNU C ++代码。

我想编写一个控制器程序,为工作流程创建一个单独的C ++模块,这是一个非常紧急的演示。此外,我需要编写一个前端Web应用程序,允许客户端向控制器提交作业。

我的主要标准是:

  • 开发速度(非常紧急演示)
  • 与C ++的良好绑定(我有遗留代码,我不想用其他语言重写)
  • 向团队顺利引入新的编程语言(有一些python,java和perl知识)

哪种编程语言最符合我的需求,为什么?

详细说明:

我倾向于使用python来完美地与C ++绑定,因为编写JNI工作太多了,现在已经过时了。但是,我的团队中没有人是Python程序员;我确实知道一些Python(根本没有服务器端编程经验)。去年我一直在开发Java EE应用程序,但我不认为JNI是一个很好的解决方案。只有一个团队成员知道一些Perl,其他人是纯C ++程序员。

3 个答案:

答案 0 :(得分:3)

注意到“非常紧急的演示”部分,假设需要大约一个月,取决于复杂性,我会坚持熟悉。 没错,最后维护python会更容易,如果你认为python是可行的,学习python应该是轻而易举的。

我会说,让团队学习python并做基本的事情,当你学习更深层次的部分时,你可以为他们构建类来扩展/实现。这样,你就可以在学习的过程中完成任务。

答案 1 :(得分:2)

鉴于紧迫性,我必须坚持使用C ++。

如果没有它,我会说保留你所拥有的,但在重构时可以随意切换到首选语言。那是时候做了。

你应该做什么,将“任何东西”移植到另一种语言而不用任何方式重写或改变功能。这是浪费时间,当你可以希望的“最佳”结果是,当你完成它没有新的错误。

答案 2 :(得分:0)

我会使用Python。您可以使用Python C API编写非常基本的包装器,然后相对轻松地从Python调用所述函数。