| > REPLs are not ephemeral on Common Lisp environments. You'll have to patiently elaborate more for me. Do you mean because the editors keep track of it and that you are working with immutable/idempotent stuff? Otherwise IMO it is ephemeral because you are mutating things and you can forget what you have loaded and what not. I'm probably wrong though. > There are/were true REPLs with static languages, Mesa/Cedar and Oberon are two examples that come to mind. Yes many do including my favorite of OCaml's utop but not many allow hot code replacement for a currently running program. I think the author alluded to that. Of course I have no experience with Mesa/Cedar Oberon. I'll have to check those out. > I used to use Jython/Groovy as my Java REPL, now just have to wait for the Java 9 release. I used Groovy as well but mainly because I didn't want to load a full IDE to test a couple of things. As I mentioned before I think with Eclipse/IntelliJ + JRebel + Debug attachment you can get damn close to a REPL. And depending on how you define REPL I think hot code replacement + debugger might actually be more powerful than a REPL but I have to explore that thought some more. |
They are image based, so you can just save your session and continue using it later in another day.
> I think the author alluded to that. Of course I have no experience with Mesa/Cedar Oberon. I'll have to check those out.
On those systems, the unit of loaded code is a module and the whole OS only has dynamic libraries as executables.
So you can just reload a module and the next time you do module.proc on the repl, you will be referring to the newly loaded module.
For me an ideal REPL should be like the experience I used to have in Smalltalk.