On 7/26/2012 6:18 PM, Wes wrote:
1. It has *practically forces use of the GC, since turning it off means I can't use many features of the language. This isn't as big of a deal to me as it is to many C++ devs (my assumption). A GC gives the impression of slow managed, even if the language isn't scripted/bytecode.
C++ doesn't have features that would require a GC - not using the GC in D does not mean the language is crippled to be less than C++.
2. It doesn't have ways of introducing new syntax (e.g. $, @, # operators or different variable attributes like myconst). I don't see this as a major flaw as I don't know of any other language other than scheme/lisp/ratchet that allow this.
We've explicitly decided not to do user defined syntax.
3. It can't run *all* forms of code at compile time. 4. It doesn't have a simple prettyprint operator. I think .stringof is a big step forward from .ToString() for simplicity, but obviously $variable would be more terse. 5. It doesn't have a way to iterate over every id in scope. I can't think of a good reason to do this anyway.
We try not to add features just because we can - we try to do ones only if they have compelling use cases.
