4 ms·
Used Clojure for ~4 years, doing REPL-driven development in Emacs. Have used Ruby and Java since. Maybe it's a rosy retrospection, but in terms of program produ
by mbil 4y ago
Used Clojure for ~4 years, doing REPL-driven development in Emacs. Have used Ruby and Java since. Maybe it's a rosy retrospection, but in terms of program production I think that was the most productive I've ever been. Falling into a flow state was much easier. Translating complex ideas into code was much easier. Building constructs up piece by piece felt natural and smooth. Sometimes I worry I'll never work in a LISP again.
- wawjgreen 4y agoDo you mean "falling into flow state was much easier" when you switched to java/ruby?
- mbil 4y agoNo, sorry, I meant it was easier back when I was using Clojure. Even invoking Java unit tests in the IDE or referencing a Ruby REPL in another window, while fast, are enough to break my concentration. Those seconds of context switching can derail my train of thought. At least in my case, building a piece of logic incrementally with near instant and continuous feedback from a REPL-integrated editor in Clojure just felt like an extension of my internal thought process.
- sorry_i_lisp 4y agoNot to make you feel too bad, but based on your sentence you may appreciate a recent addition to my personal REPL toolkit in Clojure which I very much enjoy. You may remember the rich comment forms in Clojure development as a communication tool to your future self and others. Now someone made them testable https://github.com/hyperfiddle/rcf#readme https://github.com/hyperfiddle/rcf#readme I feel this is even closer to the platonic ideal Clojure way of serializing your thoughts to file.
- thom 4y agoI also love Clojure and find it a very productive language. But surely the article makes it clear it falls very short of ‘real’ Lisp environments? There’s not much that Emacs and CIDER do that is so different to modes for other languages mentioned in the article with REPLs. If you’ve ever had stale protocol/record definitions in a Clojure REPL you know it doesn’t provide the features described. The whole ‘reloaded’ workflow is built around these limitations. All that said I’ve never really liked this idea of editing as you go with extreme late binding in the debugger. Just seems a recipe for non-reproducible code. I love being able to explore and experiment in the REPL, but ultimately everything coalesces into code and tests in files. These give me far more confidence to move forward than a long lived REPL session. There’s stuff like Reveal[0] which is interesting but I’ve only ever found it a marginal upgrade on pretty printing, at the cost that it sits outside Emacs so slows me down anyway. 0: https://vlaaad.github.io/reveal/ https://vlaaad.github.io/reveal/