我见过很多测试来衡量编程语言的执行速度的测试,但是我从未发现过衡量开发速度的测试。
我听说使用动态语言时,开发速度有所提高,但是有什么证明吗?我并不是要说动态语言效率不高,但是我想看看科学研究的结果(如果存在的话)。
更好的是有关维护设施的信息。有些语言比其他语言更容易调试吗?
编辑:我最感兴趣的是语法紧密的两种语言之间的差异。例如,我想用C编程通常会比用Java编程慢。但是Java编程比C#编程快吗?
我见过很多测试来衡量编程语言的执行速度的测试,但是我从未发现过衡量开发速度的测试。
我听说使用动态语言时,开发速度有所提高,但是有什么证明吗?我并不是要说动态语言效率不高,但是我想看看科学研究的结果(如果存在的话)。
更好的是有关维护设施的信息。有些语言比其他语言更容易调试吗?
编辑:我最感兴趣的是语法紧密的两种语言之间的差异。例如,我想用C编程通常会比用Java编程慢。但是Java编程比C#编程快吗?
Answers:
对我来说,这类似于哪种类型的画笔可以让您更快地进行绘制。
如果您考虑要涂什么商品,那么刷子越大,涂漆越快。
如果您将好的代码视为一种艺术形式,那么它与笔刷的大小就不那么重要了,而更多地是您对笔刷所做的事情。
抱歉,这是对实际问题的一个无法回答的问题。
我不确定这是否相关,但这很有趣
在《神话人月》中,弗雷德·布鲁克斯(Fred Brooks)提到了比较汇编语言和高级语言的研究。他们发现程序员每年在两种语言中产生的指令量相同,但是高级语言的指令等于多种汇编语言的指令。因此,通过转换为高级语言,程序员在生产率方面无论汇编指令到语言指令的平均倍数如何,都实现了增长。
C vs Java / C#应该也是如此,我不知道C#和Java之间的真正区别。但是,每当您提高抽象级别时,就会提高生产率。但是,我也认为这将减少对计算机实际操作的控制。您必须相信该语言正在做您想要的事情。例如,在高性能软件中,垃圾收集是不可接受的,除非您完全控制垃圾的运行时间以及运行时间。
什么是生产力?什么是产品,甚至?从数学上讲,没人知道。
KLoC?
圈复杂度?
功能点?
我相信您必须查看业务级别,并与其他从事类似工作的程序员进行百分比比较,然后评估每个程序员提供的功能。这些都是非常复杂和微妙的要点,可以统计地度量并保留含义。
想象一下如何进行测试:您需要使用相同的语言(以消除程序员经验和知识的多样性)和不同的语言(以获取一些数据以比较语言)反复独立地开发一些真实项目。在我看来,实验迅速发展到难以控制的规模。
我很想听听有关“缩小”实验的方法,或有关如所述进行实际实验的尝试。