值得动态打字的语言所有的批评?

时间:2010-07-16 18:24:55

标签: programming-languages enterprise dynamic-typing

我在互联网上阅读了一些关于企业中编程语言选择的文章。最近,许多动态类型语言已经流行,即Ruby,Python,PHP和Erlang。但是许多企业仍然使用静态类型语言,如C,C ++,C#和Java。

是的,静态类型语言的一个好处是编程错误可以在编译时,而不是在运行时捕获。但动态类型语言也有优势。 (more at Wikipedia

企业不开始使用Erlang,Ruby和Python等语言的主要原因似乎是它们是动态类型的。这似乎也是StackOverflow上人们决定反对Erlang的主要原因。请参阅Why did you decide "against" Erlang

然而,似乎对企业中的动态类型提出了强烈的批评,但我并不认为它为什么 强大。

真的,为什么企业中存在如此多的反对动态类型的基本主义?它真的会影响项目的成本那么多,或者是什么?但也许我错了。

2 个答案:

答案 0 :(得分:3)

“企业”这个词对我来说并不是什么意思,所以我只是假设你在谈论大公司。

动态类型只是:动态。无法使用动态类型语言有效地静态分析您的程序。静态类型允许开发人员在编译或运行代码之前捕获错误,这在企业界非常重要。它使调试变得更加痛苦,从而提高了整体生产力(或者他们认为这就是他们所说的)。静态类型在团队设置中也非常重要,因为它允许您的IDE告诉您如何使用您从未见过的方法。使用动态类型语言实现这些“提示”非常困难,如果不是不可能的话。

另一件大事是,动态语言并不像静态语言那样成熟。 C ++,Java和C#等语言已经在企业界使用了数年,数年和数年,而动态类型语言最近才开始发挥作用。用Java编写的代码比用Python编写的代码要多得多,并且对前者的支持也要多得多。


请注意,我不是在争论任何一方。我个人更喜欢动态类型的语言,因为它们允许我更快地编写代码并花更少的时间来思考问题,但我可以在庞大的企业环境中看到C#等语言的吸引力。

答案 1 :(得分:2)

这可能更多地是关于人们熟悉的东西而不是其他任何东西。从经理的角度来看,他/她需要一个很好的理由来使用以下技术:

  • 该公司可能从未使用过某个项目,
  • 团队中没有人有任何经验,
  • 不(似乎)得到微软,IBM等固体“企业”公司的支持

如果项目需要在未来几年内保持多年,这些因素尤为重要。

我不是在捍卫这种观点,只是指出它存在并且可能是这种批评的来源。