5 ms·
> you only start a REPL once, so does not really matter People say this a lot in Clojure, but don't you worry about global vars that no longer point to what yo
by funstuff007 4y ago
> you only start a REPL once, so does not really matter
People say this a lot in Clojure, but don't you worry about global vars that no longer point to what you thought they pointed to? For this reason alone, I almost always load a new Python REPL.
- kimi 4y agoNot sure what you mean here, but... no. You can rebind, of course, but I never found myself in a situation where the REPL was too bad to be used. I usually restart the REPL only when I add a dependency, so it will be fetched without me caring about it.
- phtrivier 4y agoI kept getting in this exact situation when defining tests and wanting to _forget_ a test. And the OC's onboarding experience reminds me of mine. You need some external tutorial / book to get setup. Also, last time I used calva, the only thing I got was kondo complaining they the default test created in a brand new project were using unknown symbols, or something. So I assumed my setup was wrong, and gave up. Clojure is "simple made easy _once you've done all the hard part as a bizuthage_"
- kaba0 4y agoFP languages are quite immune to that. Sure, you can probably do some stupid thing, but that likely never happens. At least that’s my experience with Clojure REPLs and Haskell’s GHCI.
- mjul 4y agoExactly. It ties to the excessive startup overhead. If you rename things and change stuff you must run the tests in a fresh JVM to ensure that everything has been evaluated in a consistent state rather ad hoc evaluation in the REPL. This means running from the command line in addition to your REPL or restarting the REPL regularly.
- frou_dh 4y agoI don't know - the kind of programmer who's always worried about every what-if probably shouldn't choose any dynamic interactive language in the first place. There are plenty of language permutations out there for all sensibilities.
- synthc 4y agoBut programmers should be worried about every what-if scenario, regardless of language.
- funstuff007 4y ago> worried about every what-if I hear you about this, but during prototyping one cannot be excessively concerned with did I change the global state enough such that it's better to just start a new REPL (and have to worry about the associated costs)? And if you ask this question a lot, long running REPLs are not a good idea for development.
- synthc 4y agofor prototyping a long running repl is fine. For validation/testing starting with a clean slate takes away a lot of my worries.
- CraigJPerry 4y agoThere’s a tool called Clerk which among other things resolves this concern about out of sync definitions https://github.com/nextjournal/clerk https://github.com/nextjournal/clerk