![]() |
1
19
这是最大的问题;你能忍受性能冲击吗?你可以尝试使用python和 extending it with your current C++ modules 对于性能较重的部件。尽管如此,切换整个系统似乎是一个巨大的努力,如果唯一的原因是缺乏C++人才。雇佣那些知道C++的人似乎是更便宜的选择。 |
![]() |
2
10
哪个更重要,使程序快速工作,或使程序快速工作? 如果你处理大量的大文件,那么你最好留在C++中,教你的研究生程序员什么是指针(!) 否则,我强烈建议您考虑一个基于脚本的解决方案,因为一旦您达到了速度,这些解决方案的开发速度就快得多。更有趣的是,如果我们诚实的话,至少对大多数人来说。 如果每条记录的处理负载不高,您可能会惊讶地发现您损失的性能是多么的小:文件IO几乎肯定会在编译(C)库中处理,因此解释器开销可能相对较低。值得一试,我建议。 在命令式语言中,Perl是一个明显的选项,Python很受欢迎,Ruby有很高的知名度(而且可能比前两种更清晰的OO特性)。还有一些功能语言的更深奥的领域,但我没有资格对它们发表评论。 |
![]() |
3
6
python可能会删除您在应用程序中使用的大部分底层内容。内存分配不再是问题了。另外,至少我的大学似乎将Python作为一种编程语言来接受,因为学生们不需要编写所有正式的东西就可以开始了。您唯一的问题是性能部分,因为Python可能永远不会像编译的C++程序那么快。 我建议您花几个星期的时间了解您正在考虑的编程语言。我也会去看看鲁比。也许和哈斯克尔玩一玩? 据我所知,python似乎很适合处理你所说的一切。XML,数据库查找,验证,解析。这通常是一个安全的选择,不仅仅是因为简单有趣的编程经验,而且如果你被困在这个语言周围有一个很棒的社区,他们很乐意帮助你。 |
![]() |
4
5
另一种选择是在你的C++程序中嵌入Python。您可以保持应用程序的大部分相同,并为经常更改的部分调用Python,或者需要脚本语言提供的灵活性。
|
![]() |
5
3
我不想这么说,但是如果你想让你的入门开发人员熟悉的话,那就用Java吧。Java是最新的毕业生最熟悉的语言。你仍然需要编译,但是编译时间会比C++短。它将在Linux和几乎任何其他地方运行。它有一个好的垃圾收集器。速度很快。我有没有提到你的开发人员会熟悉它?不,它不像python那样“酷”,但它是一种久经考验的真正语言。 老实说,我怀疑你有很多新的开发人员,他们吸吮C++,但不管怎么说,Python都是很棒的。很好地使用Python的人倾向于使用手动内存管理。那些不擅长记忆管理的人实际上对所有语言都不擅长。 我确实觉得令人担忧的是,你的开发人员在内存管理方面非常糟糕,以至于你想切换语言。这是一个表示问题的符号,但我不确定问题出在语言上。 |
![]() |
6
3
如果你对使用汇编语言保持良好,我会继续使用C++,建议选择一组好的库并教新手正确使用和坚持实体模式。 如果你能找到一组令人愉快的库,新手很容易学会编写可靠的代码。我(目前)个人偏好的是qt类库,因为它使记忆处理简单、安全,并且工作愉快。它还支持XML解析和生成,内置了regexp,网络功能,是跨平台的,…对于非图形用户界面系统也非常有用。 对我来说,使用普通C++、STD库和STL和使用QT之类的强大的库是一个巨大的差别。也许,研究提振商品也是非常有价值的。 |
![]() |
7
2
我建议试试groovy。XML支持很好,解析和数据验证也不难。 然而,有人指出,迁移可能不是最聪明的想法。你不能尝试把常见的东西归纳成“MaCar对象”和“验证对象”,这样新程序员就可以使用C++库而不是尝试编写只会重复现有片段的易出错的新代码吗? 当然也可以使用现代文件IO(IoFielts),而不是C++中的IO,这对内存问题有很大帮助。 另外,寻找Boost库可能会很有帮助。 |
![]() |
8
2
在Python中的性能可能是一个非常大的问题。有一次我不得不在任务列表上创建涉及优化算法的程序。我从python开始,创建它的速度非常快而且非常干净,然后看到它需要很长时间才能提供一个结果。逐行重写到C++ 100X 速度提高… 因此,有时您可以看到,这不是性能损失5-10%的问题。你应该在你的案例中调查它(也许是小测试?). |
![]() |
9
0
或者应该尝试将解析规则存储在数据库中,而不是将它们硬编码在代码中。AS Ken Downs 正确引用, minimize code, maximize data . 这样,您就不需要每次更改一个小规则时都重新编译。 |
![]() |
10
0
如果您可以使用Python、Ruby、Groovy或Perl vs. C++,可以更好地使用这些高级语言之一。生产力将大大提高。如果发现需要更多的性能,则使用Java。每个人都应该至少知道并使用一种动态类型语言。 |
![]() |
11
0
如果你需要更快的移动到C/C++,那么移动到Python,语言就可以联网了。 |
![]() |
12
0
如果您正在做的项目的性质允许您甚至考虑这样的移动,那么就进行移动(假设您有一些线索)。然而,在许多C++项目中,您唯一的选择是移动。 向下 一个或两个抽象级别(例如到C或组件)。 |
![]() |
13
0
我同意别人的观点,你应该坚持C++。切换到非编译语言是倒退的一步。虽然许多程序员可能在处理语言的一些麻烦方面(例如指针)方面遇到困难,但至少大多数程序员已经接触到一些C++。我建议您花时间和金钱改进代码库和程序员,而不是切换语言。 至于其他语言,你可能要注意Go Lang,我的一个朋友使用得相当广泛。这是一种现代汇编语言。它趋向于清晰、简洁和现代。GO应用程序通常以与C++编写的速度相当的速度运行,它与Web很好地连接。目前还不太成熟,但看起来很有前途。 祝你好运! |