D's greatest mistakes

Kagamin spam at here.lot
Mon Nov 29 12:26:51 PST 2010


so Wrote:

> > What I can see now, mistakes are mostly syntactical like switch, auto,  
> > const, rebindable, array ops, full slice, arbitrary-code-contracts  
> > instead of single bool expression. Choice for round braces for templates  
> > leads to slightly unreadable template code: foo!(params params)(yet more  
> > params). Omissible parens feel like omissible semicolons :-/
> > Implicitly nested classes.
> > Versions should be typed variables.
> > C baggage is still around.
> > Extensive use of unsigned ints.
> > Well, I admit, properties are hard to get good.
> >
> > Zealous backward compatibility with baggage, early desing and legacy  
> > code: these issues are no more fixable, I'm afraid.
> 
> I agree on switch, version, backwards compatibility and maybe "const" but  
> could you at least give a few examples to others or give some links to  
> your reasoning?
> For example what is wrong with auto?

It used to mean automatic storage. Rebindable - no syntax to declare rebindable const class variable. Array ops/full slice - see bugs 3395 and 3889. Arbitrary-code contracts require the body keyword, while single bool expression is enough (like for template constraints).
Hmm... statement about nested classes may be invalid, I only vaguely remember there was some problem with it.


More information about the Digitalmars-d mailing list