On 10-Feb-09, at 1:46 PM, vasil wrote:
REPL is not an IDE. They are very different by definition. REPL is standing just for "read-eval-print-loop", IDE - "integrated development environment"
You are reading into those acronyms way too much!
Basically an IDE is a tool to help you develop and debug your program. It allows you to interact with the system to edit code, debug code, etc. The IDE helps you out with autocompletion, cross referencing, build automation, etc.
Gambit's REPL is such an IDE. It is textual rather than graphical but it has the same purpose: help you develop and design programs. And the "I" of IDE is completely appropriate... the REPL is integrated to the environment so it is always there when you encounter a problem, allowing the user to debug programs at any time, even if the program was considered to be bug free (a feature I call "live debugging" or "open heart debugging"). It also allows you to debug programs that run on environments, such as embedded systems, that don't have a screen or enough memory to run a full-featured IDE.
Gambit's REPL is more sophisticated than you might think. It is not simply as you suggest:
(define (repl) (pp (eval (read)) (repl))
There is a lot of logic to give access to the environment, backtrace, threads, error messages, etc.
Moreover Gambit's line editing has features that are more sophisticated than what is available in rlwrap. For example symbol completion, input highlighting, and emacs keybindings for s-expressions.
Perhaps you can live without these things, but I can't. I use the REPL all the time from the shell. A full-featured IDE is too heavyweight for most of my needs (I don't want to have to wait a long time for the IDE to start, just do debug a simple script or experiment with a short piece of code).
Marc