On Friday, 5 November 2021 at 06:15:44 UTC, Walter Bright wrote:
>On 11/4/2021 9:11 PM, max haughton wrote:
>On Friday, 5 November 2021 at 04:02:44 UTC, Walter Bright wrote:
>On 11/4/2021 7:41 PM, Mathias LANG wrote:
>If you want to fix it, just deprecate the special case and tell people to use foreach (dchar d; someString.byUTF!(dchar, No.useReplacementDchar))
and voilà.
And if they don't want it to throw, it's shorter:
foreach (dchar d; someString.byUTF!dchar)
(or byDChar
).
People will always gravitate towards the smaller, simpler syntax. Like [] instead of std::vector<>.
I have never observed this mistake in any C++ cod,
You've never observed people write:
int array[3];
in C++ code?
>unless you mean as a point of language design.
D (still) has a rather verbose way of doing lambdas. People constantly complained that D didn't have lambdas. Until the => syntax was added, and suddenly lambdas in D became noticed and useful.
>This decision should be guided by how current D programmers act rather than a hyperreal ideal of someone encountering the language.
The only reason D's associative arrays continue to exist is because they are so darned syntactically convenient.
I've seen over and over and over that syntactic convenience matters a lot.
The value of convenience should not be underestimated
It's what enables productivity, which in my opinion should be the main metric of success. Everything else is just "fluff".
In how many seconds can you transform idea A into program B.
That is how you measure success imo.
It doesn't matter if you have a cool or super interesting way of achieving something, if person X is still trying to figure out how to do some cool thing while person Y is already done and focusing on the next thing, person X has lost.
Because, person Y always optimize and refractor later (before the deadline), but person X can't because the deadline is already over.
The value of convenience should not be underestimated