This page is part of the web mail archives of SRFI 72 from before July 7th, 2015. The new archives for SRFI 72 contain all messages, not just those from before July 7th, 2015.
On Sun, 21 Aug 2005, Michael Sperber wrote: >bear <bear@xxxxxxxxx> writes: > >> Check me if I'm wrong, but as far as I know the only real problem with >> that was the performance hit. >No, the problem is the loss of abstraction. It has always been my position that abstraction is something the programmer does voluntarily, not something that any automatic system can or should attempt to do. Attempting to automate abstraction locks in forms of abstraction which are sometimes wrong. >> I mean, if there were no performance problems, wouldn't it be more >> powerful to be programming in a lisp where there were no separate >> macroexpansion and compilation phases, and all the semantics were >> available at runtime? >You're joking, right? Actually, no, I'm not. That's a substantial part of what set Lisp apart initially; that's part of _WHY_ it was the most powerful programming language ever developed. Separating phases "for abstraction" seems to me a lot like static typing with required declarations "for error checking." That is, it's not a completely bad idea, and absolutely appropriate for some languages, but it's also not consistent with maximum expressiveness. In fact, I'll go further. If compiler/interpreter technology advances to the point where the performance benefits (or even just 80% or so of them) can be realized without the phase separation, I think getting rid of phase separation entirely would be The Right Thing for Lisp dialects. Bear