我应该从C++迁移到Python吗?......还是另一种语言?

Jar*_*ott 12 c++ python linux

在我工作的公司,我们做了很多基于文件的事务处理.处理的中心是在多种格式之间转换文件,以适应众多公司的众多系统.

处理几乎总是涉及一个XML阶段,可以包括大量的文本解析,数据库查找,数据转换和数据验证.

目前,执行所有这些任务的程序都已编写,C++并且它们在一台普通服务器上执行速度非常快.我正在研究使用更新的研究生程序员更熟悉的"现代"语言的可能性.(正确的内存分配C++似乎导致了很多新的程序员这些天的问题)

根据提供的简要信息,python等语言是否会提供所需的功能和性能,以及解决出现的内存分配(以及其他各种C++相关的)问题?

我喜欢每次进行更改时都不需要编译程序的想法.我理解解释的语言可能不会达到我们目前获得的相同性能.

我们的系统Linux基于限制了一些选项.

任何关于可用的功能和性能的评论Python或对替代语言的建议都将非常感激.

mre*_*gen 19

我喜欢每次进行更改时都不需要编译程序的想法.我理解解释的语言可能不会达到我们目前获得的相同性能.

这是最大的问题; 你能忍受性能打击吗?您可以尝试使用Python并使用当前的C++模块扩展它,以获得性能较高的部分.尽管如此,如果唯一的原因是缺乏C++人才,那么切换整个系统似乎是一件很大的努力.雇用了解C++的人似乎是更便宜的选择.

  • 糟糕的程序员往往对所有语言都很差,所以改变一切只是为了适应这些因素并不是解决方案.我建议他们教他们如何变得更好,它会得到显着的回报.(并使用STL和一个不错的XML库 - tinyXML很好) (2认同)

Mik*_*use 10

哪个更重要,快速启动程序,或让程序快速运行?

如果你正在处理大量的大文件,那么你可能最好不要使用C++并教你的研究生程序员指针是什么(!)

否则,我强烈建议您查看基于脚本的解决方案,因为一旦您加快速度,开发速度就会快得多.如果我们诚实,至少对大多数人来说,更有趣.

如果每个记录的处理负载不高,您可能会惊讶于丢失的性能很小:文件IO几乎肯定会在编译(C)库中处理,因此解释器开销可能相对较低.值得一试,我建议.

在命令式语言中,Perl是一个显而易见的选择,Python很受欢迎,Ruby也很受欢迎(并且可能比前两个更清晰的OO功能).然后是函数式语言的稍微,呃,深奥的领域,但我没有资格评论这些.


dea*_*ime 6

Python可能会删除您在应用程序中使用的大多数低级内容.内存分配不再是问题.此外,至少我的大学似乎将Python作为一种编程语言,因为学生不必编写所有正式的东西来开始.你唯一的问题是性能部分,因为Python可能永远不会像编译的C++程序那么快.

我建议你花几周的时间来了解你正在考虑的编程语言.我也看看Ruby.也许玩Haskell有点玩?

据我所知,Python似乎已经准备好处理你所谈论的一切.XML,数据库查找,验证,解析.它通常是一个安全的选择,不仅仅是因为简单而有趣的编程体验,而且如果你被困在那里,那么围绕语言的一个很棒的社区很乐意提供帮助.


Rob*_*mas 5

另一种方法是在您的C++程序中嵌入Python.您可以保持大部分应用程序相同,并调用Python来获取经常更改的部分,或者需要脚本语言提供的灵活性.

来自Python文档

前面的章节讨论了如何扩展Python,即如何通过将C函数库附加到它来扩展Python的功能.反过来也可以这样做:通过在其中嵌入Python来丰富您的C/C++应用程序.嵌入为您的应用程序提供了使用Python而不是C或C++实现应用程序的某些功能的能力.这可以用于许多目的; 一个例子是允许用户通过在Python中编写一些脚本来定制应用程序以满足他们的需求.如果某些功能可以更容易地用Python编写,您也可以自己使用它.