Python与C:代码行数比较与开发时间

3 投票
6 回答
8218 浏览
提问于 2025-04-16 04:12

你好,我现在正在学习Python,因为它的语法很简洁,而且它的用法和我的思维方式很契合。

不过,我也对操作系统内部原理和软件逆向工程感兴趣,这最终意味着我需要深入了解C语言。

当我最初选择编程语言时,我做了很多阅读和比较,发现很多人提到,要在Python中写出简短的代码,可能需要用C语言写几百行代码(我猜是关于内存管理、字典、列表等的代码),这些在Python中都是内置的,我们用起来很方便。

1) 对于一个普通的C程序员来说,写出一个Python的用法需要100到200行C代码,这个说法准确吗?

因为C语言没有像Python那样内置的字典和列表(以及它们的各种好用的方法):

2) C程序员通常会从头开始构建这些结构,然后在不同项目之间重复使用它们,以大大减少实际需要手动编写的代码量吗?

我想,像boost这样的库的重复使用,也能减少一些重复的手动编码……

3) 但是,使用流行的库和重复使用之前在C中写的常用代码,比如基本结构等,这样做会在多大程度上减少C语言中写的代码行数,与Python中相同规模的代码相比?

我知道具体的数字很难说,但通过使用库、代码重用等,是否有可能在C语言的开发时间接近Python,而不需要像Linus Torvalds那样的编码机器呢?

谢谢!

6 个回答

10

但是通过使用库、代码重用等,是否有可能让C语言的开发时间接近Python呢?

不可能。

你忽略了一个最重要的点。

Python是交互式的。它不是那种先编辑、再编译、链接、执行、出错、再调试的过程。它只需要编辑和调试。

6

Boost是C++的,不是C(强调一下,绝对不是C——几乎所有的内容都大量使用了模板等C语言没有的东西)。

是的,C程序员通常会自己积累一些代码库,用来处理各种“东西”——比如数据结构、算法、用户界面等等。还有很多其他的库,可以用来做从基本的字符串处理到数据库连接、用户界面、基本算法和数据结构等各种事情。

不过,比较这两者的工作效率可能会有点困难——即使在某种情况下,C程序员也许能用一行代码完成某个任务,但他们可能需要花更多时间去寻找和学习如何使用那个特定的库。另一方面,如果他们之前用过这个库,那么两者的效率可能会直接竞争(在某些情况下,C可能会更高效)。

我猜Python的工作效率更高的情况会更多,但具体有多少就很难说了(而且代码行数通常也不会是一个好的衡量标准)。

撰写回答