dynamic classes and duck typing

Andrei Alexandrescu SeeWebsiteForEmail at erdani.org
Wed Dec 2 16:00:50 PST 2009


retard wrote:
> Wed, 02 Dec 2009 21:16:28 +0000, BCS wrote:
> 
>> Hello Leandro,
> 
>>> Again *optimization*. How many times should I say that I agree that D
>>> is better than almost every dynamic languages if you need speed?
>> I'm not arguing on that point. What I'm arguing is that (at least for
>> me) the primary advantages of metaprogramming are static checks (for
>> non-perf benefits) and performance. Both of these must be done at
>> compile time. Runtime metaprogramming just seems pointless *to me.*
> 
> Both the language used to represent D metaprograms and D are suboptimal 
> for many kinds of DSLs. A dynamic language can provide better control 
> over these issues without resorting to manual string parsing. If the DSL 
> is closer to the problem domain, it can have a great effect on program 
> correctness.
> 
> For instance, you could define natural language like statements in your 
> DSL with functional composition. In D you basically have to write all 
> metaprograms inside strings and parse them with CTFE functions. In e.g. 
> lisp or io the DSL is on the same abstraction level as the main language. 
> These are of course slow, but in some environments you need to be able to 
> provide non-developers an intuitive interface for writing business logic. 
> Even the runtime metaprogramming system can provide optimizations after 
> the DSL has been processed.
> 
> I understand your logic. It's very simple. You use metaprogramming to 
> improve performance. 

Static dimensional analysis doesn't improve performance, and I recall he 
mentioned that.

Andrei



More information about the Digitalmars-d mailing list