From: Paul Mensonides (pmenso57_at_[hidden])
Date: 2006-02-21 07:57:04


> -----Original Message-----
> From: boost-bounces_at_[hidden]
> [mailto:boost-bounces_at_[hidden]] On Behalf Of Paul Mensonides

> Well, it isn't a good option, IMO, even in an in-house
> project. A DSEL is better than a non-embedded DSL (e.g.
> Spirit compared to YACC) for a variety of reasons. It is
> better to do as much as you can with what you have (i.e. the
> language). External tools for code generation should only be
> used as a very last resort. More important than the
> introduction of another build step, the use of external code
> generators creates a significant barrior to entry and
> represents an unbounded number of possible code constructions
> (that aren't part of C++) in C++ code. It comes down to the
> same reason that a standard definition of C++ is
> important--which is not just portability, but portable understanding.

This reminds me, BTW, of the "intentional programming" paradigm. The really
powerful part of that paradigm is that you can do anything--i.e. even with the
syntax itself. The really problematic part of that paradigm is that you can do
anything--i.e. even with the syntax itself. IOW, it becomes a collection of
anything and everything all thrown together--there is no coherent language, just
a language system. One of the benefits of a more finite language is that the
set of semantics is also finite--and that really is a good thing overall
(despite how often we may beat are heads against it).

Regards,
Paul Mensonides