有没有人看到最近(并且相当平衡)研究使用不同语言进行软件开发的相对成本?我特别想看看Java V的相对成本.C#Vs. 德尔福.
som*_*one 37
不.但我不是任何人的狂热者,而是作为顾问工作,并根据我的每一个要求推荐其中一个.因此,这里有一些事实可以让您更轻松地选择使用什么来满足您可以拥有的系统开发需求.
他们都是各自领域中最好的:
他们都有:
所有这些都是:
C#更好的3件事:
Java更好的3件事:
德尔福更好的3件事:
(*)有一个非常可靠的事实,有更多其他的语言,开发人员可以在C#以外的语言,开发者可以在Java代码中,这意味着它更容易找到C#程序员编写代码.也许这可以解释为什么在许多网站(像这样)和论坛,让多国语言的问题,重构等,通常有更多的C#的问题和答案(84K VS 50K).此外,由于Java的作业最好支付在世界的许多地方,常识指出,Java开发人员不再停留在他们的工作比C#的,这使得更难以找到比C#那些可用的Java开发人员.当然,也有可以讨论一些其他的因素,但我敢肯定它通常是更容易找到比Java的一个C#程序员.
Mas*_*ler 33
我不知道正式的研究,但我听到很多关于公司在Delphi中使用现有应用并用C#重写它的轶事说法有这样或那样的原因.他们都以同样的方式结束.
在C#中重写程序需要花费两倍的时间,因为它最初用Delphi编写它,即使所有的业务逻辑和领域知识已经解决并以现有Delphi代码库的形式呈现.在此期间,他们没有发布更新,因为他们所有的资源都忙于重写,允许他们的竞争获得市场份额.当它完成后,它是1.0级产品.毛病,缓慢且难以使用,通常具有严重的向后兼容性问题.
之所以可以解释,但我认为使Delphi比C#(或Java)更具生产力的主要因素之一就是语言的外观和感觉.
众所周知,维护和调试现代程序要花费更多的工作,时间和精力,而不是最初使用它们,但这个原则并不经常遵循其逻辑结论.如果需要最多的工作就是维护程序,那么在编写代码的基础上选择一种语言就是过早优化.如果您使用易于阅读和维护的语言,您将获得更好的投资回报. 而在代码可读性方面,Pascal(Delphi)击败了C家族.
这不是一个正式的研究,但值得思考.
Jos*_*ley 13
这种定量的比较将是非常难以确定,由于复杂变量的数目:开发者的语言经验,语言到目标域的适宜性,开发人员的综合素质(它被认为是非主流语言吸引更高质量的开发人员),与最终产品进行权衡(Ruby或Python应用程序与编写良好的Delphi或C++应用程序一样快)?等等.
在Code Complete,第2版.,Steve McConnell根据其表达能力列出了几种语言(在每种语言的单个语句中可以表达多少行等效C代码).有人建议,无论语言如何,程序员在代码行中的生产率都是相对恒定的; 如果这是真的,那么每种语言的表达能力应该粗略估计每种语言的相对发展成本.从表4.1,第62页:
LANGUAGE LEVEL RELATIVE TO C C 1 C++ 2.5 Fortran 95 2 Java 2.5 Perl 6 Python 6 Smalltalk 6 Visual Basic 4.5
他列出了该表的几个来源:使用Cocomo II 估算软件成本,软件成本估算,以及"七种编程语言的实证比较"(来自IEEE计算机的Prechelt,2000年10月).
McConnell引用的数字已经有好几年了,但据我所知,Cocomo II模型非常详细,因此目前的Cocomo II材料可能会提供Delphi和C#的最新数据.
我从来没有寻找过这样的研究,但如果存在的话,我会感到惊讶.任何旨在以适当的科学方式测量和比较多种语言的实际开发成本的实验都将非常昂贵.
要做得恰当:
您需要在一系列应用程序域中指定许多非平凡的项目.
您需要组建一个项目团队,每个团队都由在使用其中一种语言开发大型应用程序方面具有丰富经验的开发人员组成.
然后,您需要为每种语言实施N次项目...以获得统计上显着的结果.
所以你需要相当于开发人员的努力project-size * nos-languages * nos-projects * nos-repetitions.假设一个非平凡的项目需要1个人年,那么有5个项目,每种语言开发5次(为了给我们足够大的样本量,具有统计意义),即25个经验丰富的开发人员年. ..说200万美元到500万美元......每种语言都有考试.
这些数字(显然)被拉出了空中,但我的观点是,对不同语言的开发成本进行适当的科学比较会非常昂贵.
即便如此,研究结果也无法解决:
结果将在3至5年内过时.