Perhaps practicing is a form of abstraction; you practice something now to perform it later...the prepared parts of an otherwise improvised performance?
I do like to prepare for a performance by making a new abstraction (i.e. a new combinator) but then learn how to use it during a performance. So yes, I make new abstractions in preparation offline, but I'm still working out what that abstraction 'means' online.
I think listening to music is more akin to abstraction in machine learning, as Whitehead puts it, "Art is the imposing of a pattern on experience, and our aesthetic enjoyment is recognition of the pattern." [1]
When I'm performing I think I'm listening to my own music in this machine learning sense, recognising musical abstractions which might not be explicit in the code which generates it.
Also if it's group improvisation there's learning from each other..
[1] I use this quote out a lot, but ironically it's taken from a passage that is protesting against soundbites.
This is the crux of a REPL: what would you execute a line of code in the editor though? What does it mean to execute a line of code in a method? Or even an entire method? Development via REPL requires a certain program structure and an aversion away from abstraction (at least in code being developed), and even then the programmer must be manually involved in decided what to re-execute, performing dependency tracking in their head. Smalltalk too actually, where "liveness" often comes from manipulating objects directly.
> Perhaps at this point IXI Lang stops being a REPL, and starts just being a live programming language, but I'm not sure at what point that happens. Or maybe REPL is just an outdated term, as they do tend to do a lot more than a linear read-eval-print loop.
Ya, the concept of a REPL is kind of outdated, but its the term people prefer to start from (e.g. LightTable has an Insta-repl) if they are coming from LISP. I've even heard Smalltalk environments described as a REPL before, even though the metaphors that they depend on are completely different (there is an explicit line-based re-eval though...so maybe they are similar?).