【发布时间】:2009-11-21 01:03:41
【问题描述】:
即使在 20 年前,也可以调用用一种语言编写的代码来调用用另一种语言编写的代码;在学校里,我们从 Ada 代码中调用汇编图形例程来完成一项课堂作业。值得注意的例外是从脚本中运行编译代码或从编译代码中执行系统命令;但是我们很少用 C++ 编写一个库来在我们的 Java 应用程序中使用。当 Java 第一次出现并且速度仍然很慢时,可以选择用 Java 编写主应用程序并将瓶颈代码移动到一些 C/C++ dll 中以使用 JNI 调用。
那么,这么多年过去了,是什么让我们无法编写多语言应用程序?我想到的主要场景是,如果一种语言不是因为某些性能瓶颈(比如早期的 Java 时代)而被认为是一个不错的选择,所以它完全用 C 语言编写,而不是混合使用两种语言。
我从架构和语言设计的角度对此感兴趣。你有什么好的例子、成功案例或引言吗?
[编辑] 最好的例子之一是对 Java 的强烈反对,因为它早期的性能很慢。尽管 JIT 编译器已经解决了这个问题,但我的问题始终是关于用一种更容易编写、阅读和维护的语言编写软件。如果存在瓶颈,请在汇编或 C 中编写一个例程来解决瓶颈。这样你就应该两全其美,至少在理论上是这样。
【问题讨论】:
-
这是一篇博文的咆哮。不是问题。
-
您的意见是基于什么?你怎么知道人们在做什么?那里有数百万个应用程序。我认为只有在某些应用程序中这种东西无论如何都会有用,并且它有相关的成本(即,现在你需要雇用懂两种语言而不是一种语言的人)。
-
人不是白痴。当今流行的语言是一体式的(或至少是一体式的)。世界上没有一个高效的人会决定用多种语言编写应用程序,除非他确信它会更快地得到他想要的(或将想要的)。
标签: architecture programming-languages