Andrei Alexandrescu:
It's a bit inappropriate to bind Walter to such a social
contract upon having asked an informal question.
Those comments weren't required, but they improve the quality of
this community. So it's work and time well spent. Every person
attracted to work on D development is a chance to increase
significantly the development speed.
FWIW there is little agreement among answers.
Right, but a thread like this is comparable to the first phase of
a Brainstorming process, where ideas are produced freely, where
agreement is not required.
Later there is a phase of selection, that needs to be based on
the quality of the single ideas; because technology/science
decisions can't be based (too much) on popularity.
Eliminating today's semantics of comma inevitably underlies the
hope that it can be retrofitted for something else, which I
think is near impossible without changing semantics of working
code.
Removing/restricting the usage of the comma operator is probably
able to avoid some bugs (and increase syntax uniformity in D code
written by different programmers), so it has a usefulness even if
later they are not used for tuple syntax. How much important such
bugs are, is a judgement.
One feature to remove stands out - the struct initialization:
struct S { int x, y; }
S s = { 1, 2 };
This, was noted, makes the order of members effectively part of
the struct's interface, which is subtly dangerous. I think we
should remove this feature.
It's a partially redundant feature, and it's able to introduce
some long-term rigidity in the code. On the other hand when you
have to write many struct literals, nested inside other literals
of different structs, repeating the names introduces a bit of
extra redundant code.
Thank you for the answers,
bye,
bearophile