On 11-Sep-09, at 11:26 AM, Brian Harvey wrote:

>> The REPL is first and foremost a programming
>> convenience for interactive development. It is not meant to be an  
>> end user
>> interface, and it is not meant to be some "primary means" of  
>> deploying
>> software programs, at least not in most cases. Usually, software is
>> deployed in files, and not typed in manually or loaded through the  
>> REPL.
>
> I categorically reject this view.  You are thinking of C, or C++, or  
> Java.
>
> What makes Lisp Lisp is two non-negotiable things: lambda, and the  
> repl.
> Compilers are negotiable.  Efficiency is negotiable.  The REPL is not.
>
> If you want to invent some very complicated way to implement the  
> REPL that
> allows for the other things you want to do, *while still 100%  
> maintaining
> traditional correct REPL behavior*, more power to you.

I agree with this view, but I think your emphasis on the REPL is not  
quite right.  The "features" I believe are more fundamental (in the  
Lisp mindset) are dynamism and introspection.  Dynamism means that  
things can change late in the game (e.g. redefinition/mutation of a  
variable at run time).  Introspection means that you have access at  
run time to internal parts of the system from the system itself (e.g.  
s-expressions, eval, macros).  The REPL is a debugging tool and  
development paradigm that is possible because of these features.

Marc


_______________________________________________
r6rs-discuss mailing list
[email protected]
http://lists.r6rs.org/cgi-bin/mailman/listinfo/r6rs-discuss

Reply via email to