Garth Goldwater
09/07/2020, 4:36 PMKartik Agaram
Jimmy Miller
Kartik Agaram
There is no distinction between working at the repl and editing the source code.Does typing something at the repl add it to the file open in the editor?
testing out failure modes and simulating in real time systems going down and coming back up, watching how the system handles it.How do you turn the manual test into a reproducible automated one?
Jimmy Miller
Jimmy Miller
How do you turn the manual test into a reproducible automated one?Once it is in the shape I want, wrap on assert around it and make sure it is where my test runner picks it up. But many times that isn’t the point of the code. It is for a continually evolving system and I am just trying to understand it more, test the bounds, explore data, etc.
Chris Maughan
09/07/2020, 5:47 PMKartik Agaram
But there isn’t some separate repl window I am sending text to. I am just typing and evaluating code. The repl is a background process.Ah, I see. That is cool. I wouldn't call this a REPL, the REPL is just an implementation detail at this point. But it feels perfectly self-contained and internally consistent without needing a REPL. 👍 👍
Jimmy Miller
Jimmy Miller
Kartik Agaram
I can immediately tell Clojurians who don't use a decent repl setup from how they structure their code.
I've encountered something similar from the opposite direction. I always found all the architecture astronomy Java programmers got into to be extremely frustrating -- until I started using an IDE and realized that they were using operations that their tooling made much easier than it was for me in Vim. This is why C++ programmers write longer functions than Java programmers: the C++ grammar is context-sensitive and harder to build an IDE for. Which connects up neatly with another thread this morning, with @Jason Brennan: https://futureofcoding.slack.com/archives/C5T9GPWFL/p1599495354127000?thread_ts=1599070210.092100&cid=C5T9GPWFL
There is read-eval-print-loop. I am doing that just sending the print back to my editor. It also exposes an interface which is what people think of as a repl.
This should seem like pedantic philosophical hairsplitting, but I'm finding it interesting for some reason. The way I see it: * Your environment allows showing values of variables anywhere. * For historical reasons, it does this by using a REPL behind the scenes. * Since there's a REPL, it exposes it to you that you could use. But as you said, you don't normally use the REPL. That says to me you have something better. There's a spatial component here that sounds awesome. While it's technically correct to call it a read-eval-print-loop, I think that understates the value.
Jimmy Miller
Jack Rusher
09/07/2020, 7:58 PMGarth Goldwater
09/07/2020, 8:43 PMStefan
09/07/2020, 8:47 PMJimmy Miller
Jimmy Miller
Garth Goldwater
09/07/2020, 9:19 PMJimmy Miller
Konrad Hinsen
09/08/2020, 7:36 AMJack Rusher
09/08/2020, 7:53 AM(foo (bar 1) (baz 2))
it's trivial to position the cursor after the sub-expression (bar 1)
and evaluate just that, allowing one to tease apart a larger piece of code in order to test/understand it. In languages with more complicated syntax that lack clear scope delimiters it's much harder to make a good UX for this.Jack Rusher
09/08/2020, 7:55 AMwtaysom
09/08/2020, 8:51 AMGarth Goldwater
09/08/2020, 1:49 PMwtaysom
09/08/2020, 3:50 PMKartik Agaram
I resist anything that involves a context change (changing windows/buffers, copy/pasting more than absolutely needed, etc) – flow states are sacred.(https://clojureverse.org/t/share-the-nitty-gritty-details-of-your-clojure-workflow/1208/8) Compare https://futureofcoding.slack.com/archives/C5U3SEW6A/p1598741044000700?thread_ts=1598713285.112800&cid=C5U3SEW6A. It almost sounds like the world that CA and his acolytes were trying to bring to pass may already exist?!