Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/289.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python与C:代码行比较与开发时间_Python_C_Comparison - Fatal编程技术网

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

Python与C:代码行比较与开发时间,python,c,comparison,Python,C,Comparison,您好,我目前正在学习Python,因为语法感觉非常简洁,而且习语与我的心智模型非常匹配 然而,我也对学习操作系统内部和逆向工程软件感兴趣,这最终意味着对C语言有相当透彻的了解 在最初选择一种语言时,我做了大量的阅读和比较,似乎有一个数字被抛弃了,那就是用Python编写简短的惯用语句需要相当于几百行C语言(我猜是内存管理代码,为字典、列表等编写代码)我们认为这是Python语言中内置的 1) 对于一个普通的C程序员来说,每个Python习惯用法100-200行代码是否接近准确 因为C没有内置类似

您好,我目前正在学习Python,因为语法感觉非常简洁,而且习语与我的心智模型非常匹配

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

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

1) 对于一个普通的C程序员来说,每个Python习惯用法100-200行代码是否接近准确

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

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

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

3) 但是,使用流行的库并重新使用以前用C编写的用于基本构造等的通用代码,与爱好者规模的代码库中用Python编写的代码相比,用C编写的代码行修改了多少

我知道特定的数字是不可能的,但是在库、代码重用等方面,是否有可能在C语言中的开发时间接近Python,而不是Linus Torvalds风格的编码机器

谢谢

  • 当我做严肃的c编程时,我读了一本书,书中声称库是值得写的。(特别是在被认为是低级语言的C语言中)

  • 库是为重用而构建的

  • 如果使用库,那么编写一行代码,比如
    detectFace(faceDesriptor)
    renderpf(document)
    ,与另一种语言的习惯用法是否更简洁无关。 如果代码行是关于什么会更有效,那么它就不是一个合适的指标

  • Boost是C++,不是C(重点不是C——实际上所有的模板都使用了大量的模板,而不是C的一部分)。 是的,C程序员倾向于为各种“东西”建立个人代码库——数据结构、算法、用户界面等等。还有相当数量的其他库,从基本的字符串操作到数据库连接、用户界面、基本算法和数据结构等

    然而,比较两者之间的效率可能很困难——即使某些事情可以用一行代码来完成,C程序员最终也有更大的机会去做额外的工作来发现并学习使用特定的库。奥托,如果他以前用过,这两种方法可能是直接竞争的(在少数情况下)C可能更高效

    我想Python的效率会更高,但要想知道它的效率有多高是很困难的(而且代码行通常也不是一个很好的指示)

    但是,在库、代码重用等方面,C语言的开发时间是否可能接近Python

    没有

    你错过了最重要的一点

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

    视情况而定

    尝试用python编写中断处理程序。也许有人可以让它工作,但它将是一只跳舞的熊,舞蹈并不好,但令人惊讶的是,熊能做到这一点。想写一个或者做一些你不会使用python的事情。这说明主要的python实现是用C编写的

    尽管如此,我还是对python可以实现的一些功能感到惊讶。如果您正在测量代码行,那么高级内容几乎是给定的。Python只是一种更高级的语言

    它们都是非常有用的工具,只适用于不同类型的项目。了解这两个方面将非常有用,特别是当您需要与python中尚未具有python绑定的某些新功能进行接口时


    对于大多数开发人员使用python的项目类型来说,编写和调试将更加一致、更快。您可能能够创建一个可重用的C代码库,但是一个优秀的python程序员将在更高的级别上对他们的python代码做同样的事情

    很大程度上取决于任务和项目的规模。对于许多有趣的小任务,我不会对100:1较小的Python代码感到惊讶,因为标准库非常好。如果您发现、购买或构建能够满足您需求的C/C++库,我想在大型项目中,这个比例会更接近3:1


    然而,查找、购买和构建C/C++库确实需要时间和精力,因此我相信在绝大多数情况下,Python的开发速度会更快。

    我认为Python对于小型项目(最多几千行代码)来说更高效

    另一方面,C更适合大型项目(尽管有更好的语言,如Ada):静态类型检查允许在编译时发现许多在运行时更难检测到的错误,特别是在大型程序中


    在更大的C项目中,可以通过实现或使用自定义库来弥补Python中缺少列表和其他强大数据结构的不足。我同意用户堆栈,通过使用设计良好的库,你的C代码可以很简洁。

    你可以说,任何C STDLIB函数将1行变成100Booad是C++,而不是C。不要混淆语言+1那些没有真正、彻底地利用好REPL的人只是不知道他们缺少了什么,而且显然觉得有必要去做