digitalmars.D - Re: D's greatest mistakes
- Kagamin <spam here.lot> Nov 29 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.
Nov 29 2010