From: Robert A Duff <bobduff@world.std.com>
Subject: Re: conditional compilation
Date: 2000/08/03
Date: 2000-08-03T00:00:00+00:00 [thread overview]
Message-ID: <wcc7l9y316j.fsf@world.std.com> (raw)
In-Reply-To: Pine.BSF.4.21.0008021448510.22894-100000@shell5.ba.best.com
Brian Rogoff <bpr@shell5.ba.best.com> writes:
> On Wed, 2 Aug 2000, Robert A Duff wrote:
> > In any case, from a language design point of view, if you think the
> > compiler should see things in a different order or different
> > organization than human beings, then clearly the programming language is
> > poorly designed.
>
> That isn't so clear to me. I don't think Common Lisp, Scheme and Dylan are
> poorly designed because they include powerful macro systems.
I completely agree with you, so if you think we disagree, I think you
misunderstand what I mean. I have nothing against Lisp macros -- they
are quite powerful and useful. Note that one feeds them directly to the
compiler, and also reads them as is.
What I object to, is using Literate Programming to stir the code around
in an obfuscatory manner. In cases where Literate Programming improves
the structure of the code, that indicates a flaw in the underlying
programming language. In cases where it damages the structure of the
code (see my previous post about loop exits), well, that's not a good
thing.
Note that Lisp macros operate at a completely different level than
text-based macros. Lisp macros don't stir the code around in ways that
totally violates the language rules. Text-based macros are evil.
>... I believe
> their designers feel that syntactic abstraction is important enough to
> include facilities in the language for extensible syntax. That may
> conflict with some of the design goals of Ada, but I don't thnk it
> clearly indicates poor design.
>
> > Macros can be used to get around poor language
> > designs.
>
> They can also be used to change the syntax of the language so that it is
> more suitable for a particular problem. There are lots of things I don't
> like about Lisp, but the inclusion of a powerful macro system is not among
> them.
>
> -- Brian
- Bob
next prev parent reply other threads:[~2000-08-03 0:00 UTC|newest]
Thread overview: 50+ messages / expand[flat|nested] mbox.gz Atom feed top
2000-07-31 0:00 conditional compilation Matthew Woodcraft
2000-07-31 0:00 ` Marin D. Condic
2000-07-31 0:00 ` Ira D. Baxter
2000-08-01 0:00 ` Simon Brady
2000-07-31 0:00 ` Marin D. Condic
2000-08-01 0:00 ` Ted Dennison
2000-08-01 0:00 ` Robert A Duff
2000-08-01 0:00 ` Laurent Guerby
2000-08-02 0:00 ` Simon Brady
2000-08-02 0:00 ` Georg Bauhaus
2000-08-02 0:00 ` Simon Brady
2000-08-01 0:00 ` William J. Thomas
2000-08-02 0:00 ` Robert A Duff
2000-08-02 0:00 ` Georg Bauhaus
2000-08-03 0:00 ` Robert A Duff
2000-08-02 0:00 ` Brian Rogoff
2000-08-03 0:00 ` Robert A Duff [this message]
2000-08-03 0:00 ` Florian Weimer
-- strict thread matches above, loose matches on Subject: below --
2000-09-19 0:00 Conditional Compilation Kenneth Kueny
2000-09-19 0:00 ` Jeffrey Carter
2000-09-19 0:00 ` Samuel T. Harris
2000-09-20 0:44 ` Robert Dewar
2000-09-19 0:00 ` Ted Dennison
2000-09-19 0:00 ` David Starner
2000-09-19 0:00 ` Richard Riehle
2000-09-19 0:00 ` E. Robert Tisdale
2000-09-19 0:00 ` David Starner
2000-09-20 0:52 ` Robert Dewar
2000-09-19 0:00 ` Larry Kilgallen
2000-09-19 0:00 ` Jeff Allen
2000-09-20 0:49 ` Robert Dewar
2000-09-19 0:00 ` Bobby D. Bryant
2000-09-24 0:00 ` Robert Dewar
2000-09-20 0:47 ` Robert Dewar
2000-10-09 0:00 ` John McCabe
2000-09-20 1:33 ` tmoran
[not found] ` <8qauu3$7ei$1@nnrp1.deja.com>
2000-09-24 0:00 ` Robert Dewar
2000-09-25 2:45 ` Ted Dennison
2000-09-25 0:00 ` peter
[not found] ` <39CA31F2.E160F0D8@res.raytheon.com>
2000-09-24 0:00 ` Robert Dewar
2001-01-02 13:27 ` Andrew Hately
2001-01-02 16:46 ` Robert Dewar
1989-12-12 0:08 conditional compilation Emery
1988-06-13 0:24 Conditional compilation Steinar Haug
1988-06-17 13:53 ` rds
1988-06-22 0:44 ` Jeff Bartlett
1988-06-23 13:01 ` Arny B. Engelson
1988-06-27 18:01 ` Dave Seward
1988-06-29 13:32 ` brucej
1988-06-17 14:48 ` rjs
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox