C++开发慢,Python快?

20 投票
13 回答
6267 浏览
提问于 2025-04-15 12:10

我在考虑尝试制作一些简单的2D游戏,但还没决定用哪种编程语言。很多人推荐用C++配合SDL,或者用Python配合pygame。我听说用C++开发的速度比较慢,而用Python开发的速度比较快。

总之,有人能详细讲讲这个吗?到底是什么让C++的开发时间这么长呢?我做过的程序都是类似Project Euler那种,比较短而且以数学为基础,所以我没有大型项目的经验。

13 个回答

14

我之前听过很多关于C++的抱怨,但实际上,使用任何不熟悉的编程语言进行编程都需要花费时间。

一个优秀的C++程序员可能比一个普通的Python程序员更快地完成应用程序,反之亦然。

C++常常被认为不好,是因为它让你接触到更底层的东西,比如指针、内存管理等等。如果你不习惯考虑这些问题,确实需要一些时间来适应。不过,如果你已经习惯在这样的环境中工作,这些就会变得很自然。

除非你的公司、团队或客户强制要求你使用某种语言,否则我通常建议大家选择自己最熟悉或最想深入学习的语言。如果你担心速度问题,可以看看每种语言的学习曲线和你过去的经验。C++的学习曲线通常比较陡峭,但这也因人而异。

我知道这有点像不回答问题。

16

Python的强大之处在于,它让你可以更多地关注问题本身,而不是去处理一些底层的琐事,比如内存分配。我已经数不清多少次在C或C++中浪费了几天时间去追踪内存泄漏。高层语言的一个优势就是这个。

相比C++,Python非常容易学习,所以你可以更快地掌握基本的编程任务。因此,你也能更快地进入更高级的任务。

C++虽然功能强大,但相比Python,它有很多容易让自己犯错的地方(当然,Python也不是完全没有这种可能)。

在C++中,编译和调试的过程有时候会让人感到厌烦,尤其是当你在做某些事情的时候。虽然从技术上讲,每次运行Python脚本时,它也会被“编译”,但这个过程要快得多。一个好的集成开发环境(IDE)可以帮助你在Python中减轻这种负担,它会在你输入代码时自动检查语法错误。

如果你有一些代码想在一个更大的项目中测试,有时候将其隔离出来进行测试会很麻烦。而一个好的Python解释器,比如IPython,可以让你轻松测试一小段代码,看看语言的表现,然后再把它粘贴到文件中。

Python还可以通过很多方式很好地与现有的C/C++代码进行交互。这样,如果你创建的某个新的Python模块运行得很慢,你可以用C/C++来加速它,然后通过ctypesBoost::PythonSWIG将其包装成Python模块。

最重要的是,Python自带了一个很棒的标准库,里面有很多现成的功能。你只需要把这些功能组合起来就可以了!它背后有一个很强大的社区支持,所以如果标准库里没有你需要的功能,很有可能有人已经解决了这个问题(比如PyGameNumpySciPyPyserialPyWin等)。你只需在网上搜索,找到代码,然后直接放到你的程序里,就可以开始了!

24

在C++和Python之间,有两个方面会影响你开发任何项目(包括游戏)的时间。一个是编程语言本身,另一个是库。我对SDL有过一些尝试,也看过PyGame,但就你具体的情况来看,我认为库的影响不会太大。所以我会重点讲讲这两种语言。

Python是一种动态类型、自动垃圾回收的语言。而C++是一种静态类型、不进行垃圾回收的语言。这是什么意思呢?简单来说,在C++中,你需要花很多时间来管理内存和处理数据类型的结构。这给你提供了很大的控制权,但问题是你真的需要这么强大的功能吗?

如果你只是想写一个简单的游戏,带点基本的图形和不错的玩法,那么我觉得你并不需要C++所提供的所有强大功能。如果你想开发一些更复杂的东西,比如下一个热门游戏、下一个大型多人在线游戏,或者能在游戏机或掌机上运行的游戏,那么你可能就需要C++的强大能力了。

撰写回答