dsi*_*cha 5 complexity-theory programming-languages language-design
从我关于语言设计的讨论来看,似乎很多人都认为不存在也永远不会有“一种真正的语言”。这些人表示,另一种选择是熟悉几种语言并选择适合工作的工具。 这对于整个项目或大型子项目来说是非常有意义的,因为它们只需要通过一个非常狭窄的、定义良好的界面与项目的其余部分进行交互。
另一方面,当试图优雅地解决许多小子问题时,使用大量不同的语言似乎是一件非常尴尬的事情。换句话说,恕我直言,在所有方面都表现良好的通用语言仍然很重要。举一个简单的例子,假设您需要执行以下操作:
这是一个相当简单的项目,除了编写计算密集型的自定义矩阵处理例程之外,但关于使用哪种语言的唯一好的答案似乎是一种在所有方面都不错的通用语言。
我在这里缺少什么?一个人如何有效地使用多种语言来发挥各自的优势?
我参与过许多包含多种语言的项目。除非是 .NET 项目,否则您通常会在不同层或不同进程中使用这些不同的语言。也许您的 Web 应用程序是 PHP 语言,而您的应用程序服务器是 Java 语言。因此,您并没有真正在方法级别进行“混合和匹配”。
在 .NET 和某些 java vm 语言中,规则发生了一些变化,因为您可以更自由地混合。但这些语言的特性大部分是由类库定义的——这是常见的。因此,在 .net 中切换语言的动机通常是由其他因素驱动的,例如开发人员了解哪种语言。F# 实际上提供了相当多特定于该语言的语言功能,因此它在 .NET 中似乎有点例外。一些java VM语言还在标准java库中添加了方法,添加了java中不可用的功能。
实际上,只要所有语言都有良好的 IDE 支持,您就会非常习惯使用多种语言。如果没有它,我真的认为我会迷路。