Programming languages 各种语言的开发时间

Programming languages 各种语言的开发时间,programming-languages,performance,Programming Languages,Performance,有人知道用多种语言开发同一应用程序需要多长时间的研究或基准吗?实际上,我在寻找java与C++,但是任何比较都是有用的。我感觉代码中有一个部分是关于这个的,但是我的副本正在工作中 编辑: 这个问题有很多有趣的答案,但似乎缺乏真正好的研究。我已经在Meta上做过这个问题的讨论。(PDF)有一些基准(注意,它是从2000)在C、C++、Perl、java、perl、python、Rexx和TCL之间。 我相信一些常识是正确的(也在文章的某个地方): 每小时编写的行数与语言的观点无关:更重要的是对于给

有人知道用多种语言开发同一应用程序需要多长时间的研究或基准吗?实际上,我在寻找java与C++,但是任何比较都是有用的。我感觉代码中有一个部分是关于这个的,但是我的副本正在工作中

编辑:

这个问题有很多有趣的答案,但似乎缺乏真正好的研究。我已经在Meta上做过这个问题的讨论。

(PDF)有一些基准(注意,它是从2000)在C、C++、Perl、java、perl、python、Rexx和TCL之间。

我相信一些常识是正确的(也在文章的某个地方):


每小时编写的行数与语言的观点无关:更重要的是对于给定的开发人员,例如您自己,什么速度更快。你所习惯的,通常会更快。如果你习惯了20年的C++陷阱,并且永远不要跳过未初始化的变量,那么对于任何人来说,这将比java快。p>
如果你能记住CreateWindowEx()的所有参数,它将比MFC或winforms更快。

对程序员而不是语言进行基准测试更有意义。用任何主流语言编写程序的时间更多地取决于程序员使用该语言的能力,而不是特定语言的质量。

大多数程序都必须与其他框架接口。选择一种专门为您要做的事情提供库的语言是一个好主意。例如,您是否正在尝试构建分布式冗余消息传递系统?如果是这样,我会使用Erlang。如果您想创建一个快速且肮脏的数据驱动网站,请使用Ruby和Rails。你明白了。实时DirectX,其中性能是关键,C++/C/Asm


如果你写的是基于算法的东西,我会选择Haskell这样的函数式语言,尽管它有很高的学习曲线

我认为关于这个话题的大多数基准和声明都没有什么意义

基准测试总是可以玩的;请看“宠物店”的历史

擅长解决一类问题的语言可能不适用于另一类问题

最重要的是你的团队的技能,它对特定技术的知识,以及你对你试图解决的领域的了解程度

更新:喷气发动机和直升机的控制软件是计算问题的一个非常专业的子集。它的特点是非常严格,完整,详细的规格和质量保证,这意味着数百万美元的飞机不能坠毁

我可以支持约翰·斯特罗姆(John Strohm)用Ada编写的普惠控制软件(Pratt&Whitney control software)的引用(非常好)。出售给澳大利亚的卡曼直升机的控制软件也是用Ada编写的


但这并不意味着,如果您决定用Ada编写下一个网站,那么您将比选择C#或Java、Python或Ruby时有更高的生产率和更少的缺陷。并非所有语言在所有问题领域都同样优秀。

普惠公司,民用和军用喷气发动机的供应商,多年前就做过这方面的研究,但实际上并不打算做这项研究

他们采用了20世纪90年代其他所有人都采用的相同标准。他们收集了一系列关于喷气发动机控制器项目的数据,包括时间卡数据。他们嘎吱作响。处理数据的可怜的sap注意到了结果中的一些东西:与民用项目相比,军用项目的程序员生产率是前者的两倍,缺陷密度是后者的四分之一

这本身就很重要。这意味着您只需要一半的程序员,而且您不会花那么多时间修复bug。更重要的是,这是一个苹果对苹果的比较。喷气发动机控制器是喷气发动机控制器

然后他去寻找候选人的解释。所有通常的候选人:个人经验、团队规模、工具集、软件过程、需求稳定性等等,都被一一列举出来,当人们看到这些项目的故事在通道两边都是一样的时候,他们就被排除在外了。在一天结束时,只有一个具有统计学意义的差异出现

民用项目是用你能想到的每一种语言编写的。军事项目都是用Ada编写的

对于普惠公司的喷气发动机控制器来说,在每一种情况下,使用Ada可以使生产率提高一倍,缺陷密度提高四分之一

我知道飞行密码猴子会说什么。“你可以用任何语言做好工作。”理论上,这是真的。然而,在实践中,似乎至少在普惠公司,语言起了作用

上次我听说这件事时,普惠公司高层管理人员下令所有的喷气发动机控制器项目将在Ada完成

不,我没有引证。从来没有写过论文。关于这个故事,我的消息来源是一个处理数据的可怜的sap


顺便说一句,这是在波音公司生产777飞机之前,以及777刹车分包商的故事发生之前。但那是另一回事。

一些轶事数据点:

关于Euler项目,该项目邀请数学问题的编程解决方案

  • 最短解几乎总是用J或K表示,这是APL的一个相对值;在相同的范围内偶尔会有MatLab解决方案。然而,可以说,这些语言专门用于数学
  • 第二名是Ruby解决方案。很多算法都可以用很小的代码包起来,而且比J/K更清晰
  • Python和Haskell解决方案在LOC方面也做得很好
这个问题问的是“最快的开发”,而不是“最短的代码”,但这是可以想象的 The number of lines written per hour is independent of the language