On Tuesday, 22 September 2015 at 18:17:42 UTC, Maxim Fomin wrote:
Well, in case of C/C++ there is also rationale for decision,
but not in the forum form.
Yes, but you get it post facto and nobody listens to you anyway,
it's like a parliament.
But providing rationale is not helpful if there is
disagreement.
Well, what do you suggest then? To implement a different fork of
D for every opinion / user request? Excuse me, but I cannot
follow your rationale. It is only when there is disagreement that
you have to provide a rationale. If there is general agreement
you don't need to provide a rationale.
To elaborate. If the issue is comparing chances of changing
language in a user-oriented way of D and standardized
languages, then it is definitely no. First of all, there is
huge information gap between language hackers and users.
Yes, but where do you draw the line between random requests
(sometimes contradictory) and real long-term enhancements? As Ola
said, the community often doesn't agree with itself.
Secondly, it is hard to beat the 'committee' argumentation even
if they are wrong - they are simply to skilled and experienced.
Yes, it's hard to beat experience. However, if a feature - albeit
useful - would break too much code, Walter takes a conservative
stance, else D would lose most of its clients. We need a proper
transition strategy.
[1] https://github.com/higgsjs/Higgs
Two examples. I am aware of only one case when Walter and
Andrei agreed with community. It is epic bugzilla discussion
[1] regarding contract programming. It took 60 comments to
convince.
[1] https://issues.dlang.org/show_bug.cgi?id=6857
The second example is more recent dmd pull discussion regarding
template linkage behavior (Walter + Martin vs. Kenji). After
long discussion the outcome was that some rare but used feature
was dropped for the sake of dmd internals convenience. Walter's
argumentation was that the language feature was working by
chance, so relying on it is a mistake (to be more precise, the
question was whether to write new code to support feature in
another context or to drop it and make code cleaner). After new
release there were couple issues filed in bugzilla that
complained about new behavior, but were closed as invalid
(sorry, don't have link, recollect from memory).
So, my point is that D except communication channel is pretty
much the same as standardized languages with respect to
changing language. I would say there are better chances that
some feature will suddenly be changed and backfire existing
code rather than user will convince to tweak the existing
features to make it user - friendly at the expense of internals
complexity. I do admit that discussions of new features and
simple enhancements provide better chances (discussion is about
significant issues, not trivial enhancements - isn't it?).
There has been a lot of movement. E.g. when Higgs[1] couldn't
beat C++'s performance, Walter and Andrei agreed (as far as I
remember) that the current GC is indeed an issue as is full C++
compatibility. And there are other cases. I think the problem is
that everybody has their own pet issues and follows only these -
and if there is no movement, they get the impression that nothing
ever happens (you know, toys, pram...). However, if you follow
this forum over the years, you can see that there is movement due
to user input.
The question is, do certain issues really keep you from using the
language successfully and why? And is it an issue for a
substantial part of other users?