各种语言的开发时间

sti*_*mms 35 performance programming-languages

有没有人知道在各种语言中开发相同应用程序需要多长时间的研究或基准?我真的在寻找Java与C++,但任何比较都会很有用.我觉得代码完成中有一节关于此,但我的副本正在运行.

编辑:

这个问题有很多有趣的答案,但似乎缺乏真正好的研究.我在meta上就这个问题提出了一个建议.

Joh*_*ohm 38

普拉特惠特尼(Pratt&Whitney)是民用和军用喷气发动机的供应商,多年前对此进行了一项研究,但实际上并没有打算进行这项研究.

在20世纪90年代,他们继续执行其他人所做的相同指标.他们收集了大量关于喷气发动机控制器项目的数据,包括时间卡数据.他们嘎吱作响.那些不得不扼杀数据的拙劣的人物注意到了结果:军事项目统一的程序员生产率是民用项目的两倍,缺陷密度是民用项目的四分之一.

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

然后他去寻找候选人的解释.所有常见的候选人:个人经验,团队规模,工具集,软件流程,需求稳定性,一切都被淘汰出局,当看到这些项目的故事在两侧统一相同时,它们被排除在外.走道.在一天结束时,只有一个统计上显着的差异出现.

民用项目是用您能想到的每种语言编写的.军事项目都是用阿达写的.

在每一个案例中,与Pratt&Whitney的喷气发动机控制器相比,对于其他所有人来说,使用Ada可以提高生产率和缺陷密度的四分之一.

我知道飞猴代码会说些什么."你可以用任何语言做好工作." 从理论上讲,这是事实.然而,在实践中,似乎至少在普惠公司,语言有所不同.

最后我听说过,Pratt&Whitney高层管理人员下令所有喷气发动机控制器项目都将在Ada完成.

不,我没有引用.没有写过纸.我在这个故事中的消息来源是那些喋喋不休的闷棍.

顺便说一下,这是在波音公司完成777之前,以及在777刹车分包商故事发生之前.但这是另一个故事.

  • 有制动分包商的故事吗?一定要告诉. (11认同)
  • 根据http://www.adaic.org/atwork/pw.html,唯一的比较是**汇编程序**所以Ada的生产率更高,缺陷少于汇编程序?令人震惊! (7认同)
  • 我有兴趣听听是否有任何民事努力使用阿达,以及他们的表现是否与军方一致. (5认同)
  • 在1990年代的航空航天中,"反对其他所有人"可能意味着什么,Fortran 77,K&R C,装配,可能是Algol 68或Pascal?我认为重要的是存在差异,但鉴于编译器技术的进步,过去20年的新语言以及大多数程序比喷气机更宽松但更广泛的要求,它对今天的Ada并不是非常赞赏引擎控制器. (4认同)
  • @Ken - 我当时在P&W担任工程师.是的,他们写了很多Fortran 77和K&R C,但也有很多C++.Java开始出现. (2认同)

Don*_*art 22

从ARPA和ONR资助的90年代初,我从少数资助的科学研究之一,我知道跨语言生产力,

我们描述了一个实验的结果,其中几个传统的编程语言与功能语言Haskell一起用于原型海军水面作战中心(NSWC)对几何区域服务器的要求.由海军选择的委员会审查了由此产生的计划和发展指标.结果表明,Haskell原型开发时间明显缩短,并且比...更简洁,更容易理解.

  • @duffymo OP清楚地说"任何研究......任何比较都会有用",这是进行这种比较的极少数研究项目之一. (6认同)

Chr*_*heD 13

本文(pdf)在C,C++,Perl,Java,Perl,Python,Rexx和Tcl之间有一些基准(注意它是2000年).

我认为一些常见的观点是正确的(也在文章的某处):

The number of lines written per hour is independent of the language

  • ......但这些线的实现程度取决于语言. (6认同)

Pav*_*sky 10

意见:更重要的是对于给定的开发人员来说更快,例如你自己.你习惯了,通常会更快.如果你已经习惯了20年的C++陷阱并且永远不会跳过未初始化的变量,那么对于任何人来说,这都会比Java快.

如果你记住了CreateWindowEx()的所有参数,它将比MFC或winforms更快.

  • 当然,如果你不知道如何打开烤箱,那么通过将棍子搓在一起开火会更快.我认为他所期待的是"给予相同的经验,表现的分布是什么?".我的烤箱示例并不是物理世界所独有的:我知道黑客多年来一直与Perl挣扎,然后在周末拿起Python并提高效率. (5认同)

Car*_*icz 6

一些轶事数据点:

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

  • 最短的解决方案几乎总是写入J或K,APL的相对; 偶尔MatLab解决方案在同一范围内.但可以说,这些语言专门研究数学.
  • 亚军是Ruby解决方案.许多算法都可以包含在非常少的代码中,并且比J/K更易读.
  • 在LOC方面,Python和Haskell解决方案也做得非常好.

问题是"最快的开发",而不是"最短的代码".但可以想象,更短的解决方案可以更快地提出 - 当然对于慢打字员来说!


每年都有机器人专家的竞争.参赛者会获得一些硬件规格,软件需要解决的实际问题以及时间有限.当然,这也是非常具体的领域.程序员可以选择工具,包括语言.每年,获奖团队(通常是一个人)都使用Forth.


这个公认的有限样本表明"发展速度"和"语言对速度的影响"通常非常依赖于问题领域.

  • 不过,我认为其中一些结果可能与语言没有直接关系.*根据我的个人经验*,我发现在Haskell,Forth等语言方面经验丰富的程序员总体上比其他程序员更有天赋; 同样,聪明的程序员倾向于不使用像C,C++等语言来解决像Project Eulers这样的"有趣"问题,尽管他们可能会对这些语言一样成功. (3认同)

Bri*_*ian 5

也可以看看

有统计学研究表明Python"更有效率"吗?

关于这类问题的一些讨论.