www.digitalmars.com         C & C++   DMDScript  

digitalmars.D - Re: D's greatest mistakes

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.
Nov 29 2010