衡量发展速度的方法


10

我见过很多测试来衡量编程语言的执行速度的测试,但是我从未发现过衡量开发速度的测试。

我听说使用动态语言时,开发速度有所提高,但是有什么证明吗?我并不是要说动态语言效率不高,但是我想看看科学研究的结果(如果存在的话)。

更好的是有关维护设施的信息。有些语言比其他语言更容易调试吗?

编辑:我最感兴趣的是语法紧密的两种语言之间的差异。例如,我想用C编程通常会比用Java编程慢。但是Java编程比C#编程快吗?


请参阅programmers.stackexchange.com/questions/10032(但请注意,我并不声称这是重复的)。
Frank Shearar 2010年

这真的很有趣,谢谢!实际上,某些链接正是我在寻找的链接。
DistantEcho 2010年

Answers:


6

绝对地,编程语言会有所作为。但是,我认为,与程序员对每种语言的熟悉程度相比,与语言的任何特定方面相比,差异要大得多,尤其是考虑到您对具有相似语法的语言的约束。


2

对我来说,这类似于哪种类型的画笔可以让您更快地进行绘制。

如果您考虑要涂什么商品,那么刷子越大,涂漆越快。

如果您将好的代码视为一种艺术形式,那么它与笔刷的大小就不那么重要了,而更多地是您对笔刷所做的事情。

抱歉,这是对实际问题的一个无法回答的问题。


实际上,我对两个大笔刷之间的差异更感兴趣。例如,我们如何知道Python的开发速度是否会比Lua更好?
DistantEcho

1
@Niphra,你不知道。在这样的比较中,有太多不可思议的事物无法使其成为有效的度量标准。
亚当·克罗斯兰

一个很好的答案,但是前提是您不理会画家的技能
Steven A. Lowe

1

我不确定这是否相关,但这很有趣

在《神话人月》中,弗雷德·布鲁克斯(Fred Brooks)提到了比较汇编语言和高级语言的研究。他们发现程序员每年在两种语言中产生的指令量相同,但是高级语言的指令等于多种汇编语言的指令。因此,通过转换为高级语言,程序员在生产率方面无论汇编指令到语言指令的平均倍数如何,都实现了增长。

C vs Java / C#应该也是如此,我不知道C#和Java之间的真正区别。但是,每当您提高抽象级别时,就会提高生产率。但是,我也认为这将减少对计算机实际操作的控制。您必须相信该语言正在做您想要的事情。例如,在高性能软件中,垃圾收集是不可接受的,除非您完全控制垃圾的运行时间以及运行时间。


如果今天有任何研究可以比较高级语言(例如node.js和python)时再次进行此研究,那将很有趣。
SomeGuyOnAComputer

1

什么是生产力?什么是产品,甚至?从数学上讲,没人知道。

KLoC?

圈复杂度?

功能点?

我相信您必须查看业务级别,并与其他从事类似工作的程序员进行百分比比较,然后评估每个程序员提供的功能。这些都是非常复杂和微妙的要点,可以统计地度量并保留含义。


0

想象一下如何进行测试:您需要使用相同的语言(以消除程序员经验和知识的多样性)和不同的语言(以获取一些数据以比较语言)反复独立地开发一些真实项目。在我看来,实验迅速发展到难以控制的规模。

我很想听听有关“缩小”实验的方法,或有关如所述进行实际实验的尝试。


经验确实是一个问题,所以我将与一个初学者,或者甚至更好的人一起工作,以完全不同的编程语言来学习。至于项目规模,我想一个很小的项目就足以取得结果,即使它们并不完美。
DistantEcho

然而,有时候故事会说,一种语言的“胜利”只会发生在一定的大小/复杂度之后。对于比这个更小/更简单的问题,这种语言的惊人性并不明显。这么说。
Frank Shearar 2010年

我希望某个“胜利”只是超过程序员的某个复杂性和经验水平。与初学者一起进行测量通常会忽略这一点。真正使用一种语言需要特定于语言的经验。
卡斯特马
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.