5 ms·
To be fair, in Clojure you have to reach for horrible external hacks like Component and Mount to have a "real" interactive development.
by Scarbutt 9y ago
To be fair, in Clojure you have to reach for horrible external hacks like Component and Mount to have a "real" interactive development.
- grzm 9y agoWhat would you describe as "real" interactive development? And while the reloaded[0] workflow is one benefit of using a library like Component or Mount, it's hardly the only benefit. [0]: http://thinkrelevance.com/blog/2013/06/04/clojure-workflow-reloaded http://thinkrelevance.com/blog/2013/06/04/clojure-workflow-r...
- didibus 9y agoNot really, I often don't need them. They're mostly for being able to reset the full app state back to how it is at startup. You can also just restart the REPL, though some people find waiting 5 second for that too annoying. I wish the restart times were much faster, but its not as big a problem as most people make it sound like. Often time, you can just learn to mold your program in smarter ways, so that you don't get yourself in weird inconsistent states, or you learn how to fix your state instead of starting over. Or you use mount, components. Integrant, etc. They're really low overhead, mount is trivial to add, its like 4 more characters per global variable. Having said that, Clojure isn't the best thing ever, just the most interactive language I know of currently that is mature enough and has a large enough ecosystem I can use it for commercial software. Do you have other recommendations for a language that meets these criterias?
- Scarbutt 9y agoYou can also just restart the REPL, though some people find waiting 5 second for that too annoying. That's true only if clojure is your only dependency, in real project with libraries is more like 15 seconds with lein repl, cider is much worse. Do you have other recommendations for a language that meets these criterias? Some would say Common Lisp.
- didibus 9y agoAnother Lisp, I see. I've heard good things. It seems just a different set of trade offs. Clojure tradeoffs align better with me. The extra emphasis on immutability, concurrency, and functional programming, and embracing the JVM and JavaScript ecosystems. As well as the extension on the syntax for better data notation. But I'll eventually give Common Lisp and Scheme a try.