【发布时间】:2013-06-11 01:14:56
【问题描述】:
我对函数式语言有浓厚的兴趣,因为它们有很多优点,但我不知道它们是否真的在实践中使用,以及它们可以如何集成到主流的Java、C#或C++环境中。与不了解任何函数式语言的其他程序员一起工作的程序员可以将它与其他语言结合使用吗?当其他人不理解某个团队成员生成的代码时,这是一个问题,但是用 Scala 编写的 Java 字节码可以很容易地反编译为纯 Java。
我知道 Java 和 Clojure 以及 Java 和 Scala 之间的集成效果很好, 但是 C++ 等其他语言呢?
【问题讨论】:
-
由 scalac 生成的 JVM 字节码可以反编译成 Java,但结果不会像任何可读或可维护的东西。
-
您需要更具体。 “与其他语言结合”是什么意思?根据您的应用程序领域,有多种方法可以创建同时使用 C++ 和 Clojure 的软件。根据工作流程的设计,C++ 程序员可能不需要了解任何 Clojure。
-
我的意思是 Scala/Clojure 和 Java 代码都可以编译成一个 .jar,但是 C++ 代码也可以与函数式编程语言的代码一起编译成一个可执行文件吗?在现实世界的项目场景中结合使用函数式语言和 Java 是否真的很丰富,或者可能的劣势超过了可能的收益?谢谢。
-
对于 Clojure,您可以将 C++ 代码集成到 Java 中,如本教程 javaworld.com/javatips/jw-javatip17.html 中所述。然后使用 Java Interop 从 Clojure 调用这个 Java。
标签: functional-programming jvm-languages