对于哪种类型的软件应用程序,动态类型化编程语言比静态类型化语言更合适?

选择动态类型的语言通常由您的业务上下文驱动,而不是由“软件应用程序的类型”驱动。

过去使用静态类型语言的主要原因有两个:1)执行速度,以及2)系统扩展时的可维护性。

前者仍然适用,因此, 如果您必须在有限的硬件上运行 (这意味着您不能选择硬件的水平扩展) ,并且您将受到计算的限制 (绝大多数系统受I / O限制),为此,“应用类型”, 您应该选择一种静态类型的语言

但是,如今可维护性的理由已经不那么正确了。 有非常大的PHP和JavaScript应用程序。 这些总是使用自动测试和自动(但受指导的)文档生成,以接近静态类型语言IMHO的所有可维护性优势。

与动态类型化的语言可以极大地提高生产力。 有些事情很容易表达。 有一定程度的抽象-如果可能的话,元编程只能通过动态语言来实现。 Java试图通过诸如Generics之类的东西来添加对此的一些支持,但是您有没有遇到Java Generic编译的地狱?

我认为当今大多数系统都受I / O限制,即使是受计算限制的系统也经常可以水平扩展。 硬件比程序员便宜…… 而失败的最大威胁通常是您没有提供足够的功能来在竞争对手之前赢得市场或满足您的利益相关者的风险。 高效率的CoffeeScript或Python程序员可以交付更多的功能,比最好的Java或C ++程序员更快。

我开发了Ring编程语言( http://ring-lang.net )及其动态语言。 使用动态语言

(1)需要根据不同类型的变量在运行时做出很多决定的应用程序。

(2)处理许多数据集合的应用程序,这些数据集合包含具有不同类型的复杂数据结构。

(3)在使用过程中对需求有快速更改并且需要开发团队快速响应的应用程序

因此,它涉及动态变化,不同的数据,生产率和原型设计。

小技巧