The big key, imho, is whether or not the language natively provides facilities for that (such as Perl and Ruby) or forces you to write a DSL that does (like C or Haskell).

The other side of that argument is: Why burden all your programs, classes and instances with all the infrastructural overhead of a Domain Generic Language, which is all the greater because it is generic and therfore must cater for all foreseable eventualities, when all you achieve by doing so is the defferal of the construction of the required DSLs--one for each use case--on top of the DGL (MOP), until runtime?

When you could construct one or more DSLs, at compile-time, that have far lower infrastructural requirements because they only build what they need for this particular use, and then apply them to just those programs, classes and instances that need it.

And despite my difficulties with the both the languages (Haskell & Lisp (see Paul Graham's arc)) that exemplify this approach to code construction, I have a great affinity for the principles: brevity==clarity; and YAGNI, that they embody. And it is hard to challenge the results of the approach(*).

(*) Anyone at a loose end next weekend?


Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
"Science is about questioning the status quo. Questioning authority".
In the absence of evidence, opinion is indistinguishable from prejudice.
"Too many [] have been sedated by an oppressive environment of political correctness and risk aversion."

In reply to Re^6: Runtime introspection: What good is it? by BrowserUk
in thread Runtime introspection: What good is it? by BrowserUk

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.