研究不同语言开发的相对成本

2022-08-31 16:25:10

有没有人看到最近(并且相当平衡)对使用不同语言进行软件开发的相对成本的研究?我特别想看看Java与C#与Delphi的相对成本。


答案 1

不。但我对任何一个都不是狂热的,并且作为顾问工作,并习惯于为我的每一个要求推荐其中之一。因此,这里有一些事实,可以更容易地选择使用什么来解决您可以拥有的系统开发要求。

共有:

他们都是各自领域的佼佼者:

  • Java是最好的Java开发选项。
  • C# 是最好的 .NET 开发选项。
  • 德尔福是最好的原生开发选择。

他们都有:

  • 提供优质组件和库的全球第三方供应商。
  • 用它们创建的全球知名应用程序(例如Delphi应用程序可能更为人所知:Yahoo Go for TV!,Macromedia Captivate,TotalCommander,MediaMonkey,FinalBuilder,InstallAware,WinLicense,MySQL Administrator等)。

它们都是:

  • 具有 RAD 功能的高度可靠的技术。
  • 由最好的开发辅助工具(UML等)提供支持。
  • 发布其技术的重大升级(Java 7,.NET 4.0和Delphi multiplatform)。

差异:

C#更好的3件事:

  • 可以在其中编码的可用开发人员的数量(与Java相比)(*)。
  • 背后有微软。
  • 在工资方面(通常)更便宜的发展成本。

Java更好的3件事:

  • 可以在其中编码的可用开发人员的数量(与Delphi相比)(*)。
  • 可移植性。
  • 后面有太阳。

德尔福更好的3件事:

  • 速度(时间关键型系统具有更好的性能)。
  • 占用空间小(Delphi 编译器生成非常小的二进制文件)。
  • 没有明确的依赖关系(更容易分发)。

(*)有一个非常可靠的事实,即可以使用C#编写代码的其他语言开发人员比可以用Java编写代码的其他语言开发人员更多,这意味着更容易找到C#程序员。也许这就解释了为什么在许多允许多语言问题,重构等的网站(如这个)和论坛中,通常有更多的C#问题和答案(84k与50k)。此外,由于Java工作在世界许多地方的薪水最高,常识指出Java开发人员比C#开发人员在工作中停留的时间更长,这使得找到比C#开发人员更困难的Java开发人员。当然,还有其他一些因素可以讨论,但我非常确定找到C#程序员通常比找到Java程序员更容易。


答案 2

我不知道正式的研究,但我听说过很多关于公司出于某种原因在Delphi中采用现有应用程序并用C#重写它的轶事。它们都以相同的方式结束。

用 C# 重写程序所花费的时间是最初用 Delphi 编写的时间的两倍,即使所有业务逻辑和领域知识都已经以现有 Delphi 代码库的形式完成和呈现。在此期间,他们没有发布更新,因为他们的所有资源都忙于重写,让他们的竞争对手获得市场份额。当它完成时,它是一个1.0级的产品。故障,缓慢且难以使用,通常存在严重的向后兼容性问题。

原因可以解释,但我认为使Delphi比C#(或Java)更有效率的主要因素之一是语言的外观和感觉。

众所周知,维护和调试现代程序的工作量,时间和精力比最初编写它们要多得多,但是该原则通常不会遵循其逻辑结论。如果最需要做的是维护程序,那么在编写代码容易或快速的基础上选择一种语言是不成熟的优化。如果您使用易于阅读和维护的语言,您将获得更好的投资回报。在代码可读性方面,Pascal(Delphi)击败了C系列。

这不是一项正式的研究,但值得思考。


推荐