Clojure 1.8的socket repl和nREPL的具体区别是什么?

What is the specific difference between Clojure 1.8's socket repl and nREPL?

我一直在读这个,但是似乎没有tutorial/doc关于这两者之间的区别等等。

socket repl 会取代 nrepl 吗?

至少现在不会。 clojure.core.server/repl 只是一个普通的老式 REPL,它监听套接字,并通过套接字吐出输出。我宁愿将此套接字 repl 视为一个不错的小修复程序,无需(大量)代码更改即可通过网络添加 REPL 功能。

另一方面,nREPL 已经发布很长时间了。它提供了更多的功能,其中 middleware 是最突出的功能。 nREPL 使编辑器和 IDE 能够与 JVM 交互通信,丰富了基本 REPL 的使用体验。

tldr;

  • Socket repl 只是普通的旧 repl,在 Socket 上提供服务。它是面向流的
  • nREPL是network REPL,虽然和socket repl的名字很像,但是区别很大。 nREPL 是面向消息的程序,具有 server/client 架构。

长版: