Moving back to .NET

Chris via Digitalmars-d digitalmars-d at puremagic.com
Wed Sep 23 02:44:08 PDT 2015


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?


More information about the Digitalmars-d mailing list