Now someone just needs to implement a reliable way to add/reload dependencies without restarting the REPL.
Now someone just needs to implement a reliable way to add/reload dependencies without restarting the REPL.
Alex Miller is working on this as an official clojure functionality, see the add-lib, add-lib2 and add-lib3 branches of deps.alpha. It's just brewing very slowly... hopefully with Tonsky now on board they are able to speed up this and other topics!
The other issue, though, is that I think the JVM and a couple of Clojure’s core design decisions are hampering the “everything is reloadable” workflow you get with Common Lisp: in CL, I can leave my REPL running for months and load five or six projects in parallel with no problem. In Clojure, I’ve found that I’m continuously restarting the REPL because things like protocol implementations are hard to reload cleanly.