我可以将 Play 和 Akka 与 Clojure 一起使用吗?

Can i use Play and Akka with Clojure?

一般来说,是否可以将 Scala 框架与 Clojure 一起使用,反之亦然? 我听说过很多关于 Akka 和 Play 的好消息,但我更喜欢 Clojure 而不是 Scala。

当然可以。您可以从 Java 调用 clojure 代码,反之亦然。你也可以用 scala 做同样的事情,虽然我从未尝试过,但我认为你也可以从 clojure 调用 Scala,反之亦然。

但我无法想象如何以一种有用的方式做到这一点? Clojure 是数据优先,而 类 是 Java,而 Scala 是主要概念,我看不出人们会如何以相同的方式使用它们。 也许从一侧或另一侧围绕库编写一个包装器,这样您就可以在一种语言中处理您的业务逻辑,这似乎很有用。

OTOH,我认为它没有用,并不意味着它没有用例。

不过,我还是建议用 Scala 和 Akka 为你的问题做一个原型,然后将它与用 clojure 和 core.async 制作的原型进行比较,看看哪个更适合你。

Java 和 Scala 代码之间存在互操作性问题。本质上,您可以毫无问题地使用 Scala 中的 Java 库,但是使用 Java 中的 Scala 库会有一些限制。特征和隐式等一些特性不是 Java 语言的一部分,它们可能是库的重要组成部分。如果您最终选择 Clojure,我怀疑您会 运行 遇到与从 Java 调用 Scala 代码时遇到的相同问题。

总而言之,如果您要使用 Play!使用 Clojure 的框架,我建议使用 Java API 而不是 Scala。阿卡也有JavaAPI