This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2022-06-11
Channels
- # announcements (1)
- # asami (10)
- # aws (36)
- # babashka (1)
- # beginners (32)
- # biff (13)
- # calva (2)
- # cider (2)
- # clj-kondo (3)
- # cljs-dev (5)
- # clojure-poland (2)
- # clojured (5)
- # clojurescript (7)
- # core-logic (13)
- # core-matrix (2)
- # core-typed (1)
- # datomic (1)
- # fulcro (19)
- # gratitude (6)
- # meander (15)
- # minecraft (4)
- # pathom (3)
- # podcasts-discuss (2)
- # reagent (19)
- # releases (1)
- # shadow-cljs (69)
- # sql (3)
- # tools-deps (22)
- # vim (1)
It's surprisingly hard to explain, to someone who hasn't used it, why a Clojure REPL is so much better than, say, the Python shell. I've never seen anyone do it as effectively in text* as @val_waeselynck, and I want to thank him for providing the explanation I've been sending to curious and confused non-Clojure devs for five years now. Thanks vvvvalvalval, for that and all your other contributions** to the Clojure community! . . https://vvvvalvalval.github.io/posts/what-makes-a-good-repl.html [PS -- if any readers are aware of other explanations that are as good or better at conveying just how much difference a real REPL makes, I'd love to hear about them!]
* Val's explanation is the best in text -- but for people who prefer video, @U072WS7PEβs https://vimeo.com/223309989 is unbeatable.
> Thanks vvvvalvalval, for that and all your other contributions Personally: I got a lot of value from https://github.com/vvvvalvalval/datomock for a couple of years, and https://github.com/vvvvalvalval/scope-capture is indispensable when dealing with a codebase full of functions that pass around really complicated data structures.
Thanks @U077BEWNQ! How is that working/not working on those non-Clojure devs?
Mixed, from what I've seen -- even with an excellent explanation, it seems like it's still a hard leap to make. In my experience the toughest part to convey is how transformative it is for the REPL be in the same context as your running program -- ie the range of things that you describe as 'tangibility' / 'putting you in the shoes of your code' / 'interacting with a running program'. I've been reminded of that recently, because I've been spending some time working on a (pre-existing) Python codebase for the first time in years, and the 'REPL' experience there is so frustrating after years of the Clojure REPL, exactly because of lacking those things. I've met some smart people who have been writing Clojure for a year or two and don't really make good use of the REPL -- so even once people have access to a good REPL, there's still that challenging mental leap to be made. All that said, your post on it has definitely helped more people to make that leap than anything else I've tried π