[plt-scheme] Hygenic Macros

From: Jeff Stephens (jsteve17 at tampabay.rr.com)
Date: Thu Sep 12 18:55:31 EDT 2002

I was reading an article on the proposed Arc language at Paul Graham's website, 
http://www.paulgraham.com/popular.html and came across these quotes all by
Dr. Graham.  I really enjoyed these and have placed the last three in my signature
file for future use.  

"Classic macros are a real hacker's tool-- simple, powerful, and dangerous. It's so easy to understand what they do: you call a function on the macro's arguments, and whatever it returns gets inserted in place of the macro call. Hygienic macros embody the opposite principle. They try to protect you from understanding what they're doing. I have never heard hygienic macros explained in one sentence. And they are a classic example of the dangers of deciding what programmers are allowed to want. Hygienic macros are intended to protect me from variable capture, among other things, but variable capture is exactly what I want in some macros."

"Brevity is one place where strongly typed languages lose.
All other things being equal, no one wants to begin a
program with a bunch of declarations. Anything that can
be implicit, should be."

"...a hacker's idea of a good programming language is not
the same as most language designers'.  Between the two, the
hacker's opinion is the one that matters."

"Programming languages are not theorems. They're tools,
designed for people, and they have to be designed to
suit human strengths and weaknesses..." 

Paul Graham
author of ANSI Common Lisp

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.racket-lang.org/users/archive/attachments/20020912/05bd742f/attachment.html>

Posted on the users mailing list.