Python与C:代码行与Dev-Tim的比较

2024-05-19 01:37:08 发布

您现在位置:Python中文网/ 问答频道 /正文

嗨,我现在正在学习Python,因为它的语法感觉非常简洁,而且它的习惯用法与我的心理模型很匹配。

不过,我也对学习操作系统内部和逆向工程软件感兴趣,这最终意味着我对C的了解相当透彻。

当我最初选择一种语言时,我做了大量的阅读和比较,似乎抛出了一个很大的数字,那就是用Python编写短的惯用语句需要相当于几百行C的代码(我猜是内存管理的代码,为字典编写代码,列表等),我们认为这是理所当然的内置到Python语言中。

1)对于一个普通的C程序员来说,每个Python习惯用法的代码行数是100-200行吗?

因为C没有内置类似Python的结构,比如字典/列表(以及它们所有的好方法等):

2)C程序员是否倾向于从头开始构建这些结构,然后在项目之间重新使用它们,以大大减少为他们的项目手工编码的实际量?

我假设再次使用boost::stuff之类的库,也减少了一些样板手工编码。。。

3)但是,使用流行的库和重用以前用C编写的用于基本构造的通用代码吗/etc,与一个狂热的代码库的Python代码相比,用C编写的代码行修改了多少?

我知道具体的数字是不可能的,但是在库、代码重用等方面,如果不使用Linus-Torvalds风格的编码机,在C语言中的开发时间能接近Python的开发时间吗?

谢谢!


Tags: 项目代码语言编码列表字典时间语法
3条回答

but is it possible with libraries, code reuse etc, to have a development time in C close to that of Python

没有

你错过了最重要的一点。

Python的交互式。它不是编辑编译链接执行中断调试。这是编辑调试。

  1. 当我做严肃的c编程时,我读了一本书,书中声称库是值得写的。(尤其是C语言,它被认为是一种低级语言)

  2. 库是为重用而构建的。

  3. 如果你使用库,你写的一行像detectFace( faceDesriptor )renderPDF( document)并不重要,一个成语在另一种语言中是否更简洁。 代码行不是一个合适的度量标准,如果它是关于什么会更有效。

Boost是C++,不是C(重点不是C——实际上所有的都使得重写EEM>模板的使用,而不是C的一部分)。

是的,C程序员倾向于为各种“东西”建立个人代码库——数据结构、算法、用户界面等等。从基本的字符串操作到数据库连接、用户界面、基本算法和数据结构等,还有相当数量的其他库

不过,比较两者之间的生产率是很困难的——即使任何一种方法都可以在一行代码中完成某件事情,C程序员最终还是有更大的机会去做额外的工作来找到并学习使用那个特定的库。奥托,如果他以前用过,两人可能直接竞争(在少数情况下)C可能更有效率。

我想Python的效率会更高一些,但要想猜出有多少是困难的(通常的代码行也不会是一个很好的指示)。

相关问题 更多 >

    热门问题