Nick Sabalausky wrote:
"dsimcha" <dsim...@yahoo.com> wrote in message news:got0ff$28r...@digitalmars.com...
== Quote from grauzone (n...@example.net)'s article
String mixins are awful in the first place. The only thing that could
save this kind of thing are AST macros.

Both Murphey's law and the law of D bitfields dictate that we're all going to end up hating AST macros when they finally show up ;)

????????????? String mixins are an absolute godsend. I mean really, how much more general a metaprogramming facility could you possibly ask for than the ability to generate arbitrary D code at compile time? Of course they can get ugly, so there should be better ways to do things that are done frequently (regular templates
accomplish this), but last I checked, bit fields are not an everyday
run-of-the-mill programming type of feature.

As a more general comment, of course syntax and readability count for frequently used features, but there's only so much pretty syntax available, and simplicity of the core language is a virtue. If certain things in D are going to have ugly
syntax, they may as well be niche features like bit fields.

My thought is that it's absolutely great to have string mixins, but they should never be thought of as anything more than a clumbsy substitute (athough notably less clumbsy than a preprocessor macro) for a real language feature to accomplish the same task (or possibly an AST macro).

Sure, they're open to _severe_ abuse, but for the case when they are used to generate source code (eg, from a DSL), they are absolutely perfect, and not a hack at all. In that particular scenario, they are much better than AST macros could ever be.

They're a replacement for creating a text file, adding a line to your makefile in order to invoke a program to read the text file and spit out a d source file, then add another line in the makefile to compile that d file, then link it in, and try to integrate the whole thing seamlessly. They're a beautiful solution to a really ugly problem.

It's not fair to regard them simply as a hack to get around language limitations.

Reply via email to