研究不同语言开发的相对成本
有没有人看到最近(并且相当平衡)对使用不同语言进行软件开发的相对成本的研究?我特别想看看Java与C#与Delphi的相对成本。
有没有人看到最近(并且相当平衡)对使用不同语言进行软件开发的相对成本的研究?我特别想看看Java与C#与Delphi的相对成本。
不。但我对任何一个都不是狂热的,并且作为顾问工作,并习惯于为我的每一个要求推荐其中之一。因此,这里有一些事实,可以更容易地选择使用什么来解决您可以拥有的系统开发要求。
他们都是各自领域的佼佼者:
他们都有:
它们都是:
C#更好的3件事:
Java更好的3件事:
德尔福更好的3件事:
(*)有一个非常可靠的事实,即可以使用C#编写代码的其他语言开发人员比可以用Java编写代码的其他语言开发人员更多,这意味着更容易找到C#程序员。也许这就解释了为什么在许多允许多语言问题,重构等的网站(如这个)和论坛中,通常有更多的C#问题和答案(84k与50k)。此外,由于Java工作在世界许多地方的薪水最高,常识指出Java开发人员比C#开发人员在工作中停留的时间更长,这使得找到比C#开发人员更困难的Java开发人员。当然,还有其他一些因素可以讨论,但我非常确定找到C#程序员通常比找到Java程序员更容易。
我不知道正式的研究,但我听说过很多关于公司出于某种原因在Delphi中采用现有应用程序并用C#重写它的轶事。它们都以相同的方式结束。
用 C# 重写程序所花费的时间是最初用 Delphi 编写的时间的两倍,即使所有业务逻辑和领域知识都已经以现有 Delphi 代码库的形式完成和呈现。在此期间,他们没有发布更新,因为他们的所有资源都忙于重写,让他们的竞争对手获得市场份额。当它完成时,它是一个1.0级的产品。故障,缓慢且难以使用,通常存在严重的向后兼容性问题。
原因可以解释,但我认为使Delphi比C#(或Java)更有效率的主要因素之一是语言的外观和感觉。
众所周知,维护和调试现代程序的工作量,时间和精力比最初编写它们要多得多,但是该原则通常不会遵循其逻辑结论。如果最需要做的是维护程序,那么在编写代码容易或快速的基础上选择一种语言是不成熟的优化。如果您使用易于阅读和维护的语言,您将获得更好的投资回报。在代码可读性方面,Pascal(Delphi)击败了C系列。
这不是一项正式的研究,但值得思考。