19-Dec-2014 18:08, deadalnix пишет:
On Friday, 19 December 2014 at 14:38:02 UTC, Tobias Pankrath wrote:
As for Walter already saying "no" a lot, given how many features D
has, obviously one can still wish he went from 99% "no" to 99.5%. ;)
You don't need to be around the D community forever to feel that D
still has too many features that made it in.
Care to name a few and justify why exactly those features should be gone?
- lazy . It is completely unable to interact with all qualifier code
that run should be able to have.
- scope in its current state. Do not ensure anything.
- in and out parameters.
+1
- optional parenthesis. They cause confusion and great language
complication in their current form.
Unless there was a way for author to enforce one way of writing it.
Which gets us to some useful @properties.
- Non first class functions. Useless baggage from C and C++, which
only benefit are to complicate the situation with optional () and cause
a large part of the standard lib to go banana when passed a non first
class function via alias parameter.
- inout. Completely underpowered for its cost, ambiguous and can cause
compiler crash in some ambiguous cases.
I too never understood the appeal of inout. Not only interfaces now
allow template final functions but also the bolierplate is easily
removed with (template) mixins.
- most of traits. They are completely inconsistent, for instance, some
return aliases, some return strings and there is no way to really know.
- __parameters. Yes, this is a keyword.
That's just baggage that's far less destructive.
That is what you get you add half assed feature to solve an immediate
problem, but don't look at the broader picture.
--
Dmitry Olshansky