In article <[EMAIL PROTECTED]>, Pascal Bourguignon <[EMAIL PROTECTED]> wrote:
> Kirk Sluder <[EMAIL PROTECTED]> writes: > > I've not seen a convincing explanation as to why imported macros > > from some library are so much more evil than imported functions. In > > both cases one might have to dig into documentation and/or comments > > to understand exactly what that imported snippit is doing. > > And the difference with a library function is? > > (defpackage "LIBRARY" (:export "THIS-IS-A-FUNCTION")) > > (library:this-is-a-function ???) ; ??? Well, my argument is that there is little difference. Functions, objects and macros all redefine some aspect of the system's language, and all of them can be vulnerable to obfuscation or unnecessary abstraction. The question I have is why do critics single out macros and not other forms of abstraction such as objects, packages, libraries, and functions? just as an example: from foolib import * bar.bar("somefile") What does this program do? I have no idea. Its functionality is hidden behind multiple layers of abstraction (function, object, library.) -- http://mail.python.org/mailman/listinfo/python-list