Boost logo

Boost :

From: Paul Mensonides (pmenso57_at_[hidden])
Date: 2004-06-11 19:50:06


> -----Original Message-----
> [mailto:boost-bounces_at_[hidden]] On Behalf Of Vesa Karvonen

> Paul Mensonides:
> >Chaos, as opposed to Order, intentionally encourages better
> >understanding of the actual language being used (which is not Chaos,
> >but the preprocessor) rather than trying to hide it as much
> as possible.
>
> I've discussed this with you earlier, but I'd still like to
> point out that the intention behind the design of Order has
> not been to "hide as much as possible" or to discourage
> "better understanding", but rather to *provide* a language
> that definitely *is* easy to understand and convenient to use.

It wasn't intended to be condescending, merely to illustrate different design
aims. Order hides the complexity of the language that is the preprocessor by
providing a replacement language. Chaos provides tools to manipulate the
preprocessor language directly. Neither is necessarily better, but they are
fundamentally different.

> A person unfamiliar with Boost.PP should be able to learn to
> use something like Order and use it for productive, even
> non-trivial, work (which is usually C or C++ code generation)
> in significantly shorter period of time than it takes to
> learn how to do similar things with Boost.PP (or Chaos).

So what? I didn't say otherwise. I said that Chaos is fundamentally more
powerful, which is true. That doesn't mean that it is easier or better for all
possible applications.

> I also noticed other, IMO, misleading comments on Order [vs
> Chaos], but I don't have the time to comment on those at the moment.

None of them are misleading--and none of them are intended to be derogatory. In
particular, the continuation machine enforces a particular style of design and
is therefore design altering. Sometimes that is worth it, sometimes not. Chaos
is significantly looser in this regard. Similarly, if you use the higher-level
language that is implemented internally on the continuation machine, you pay for
that indirection. For trivial uses--on preprocessors that don't have abysmal
speed in general--the cost may very well be worth it. In non-trivial uses, the
cost becomes significant--even on relatively good preprocessors like gcc. None
of this means that either Chaos or Order is better than the other, it simply
means that there are tradeoffs involved. That is the opposite of the stance
that you take--mostly because of other reasons like language purity, etc., which
I don't consider to be nearly as important as you do. I also consider total
high-level abstraction without the accompanying low-level techniques to be
destructive to the field in particular and to the notion of critical thinking on
a more general level.

Regards,
Paul Mensonides


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk