Make const, immutable, inout, and shared illegal as function attributes on the left-hand side of a function
Joseph Rushton Wakeling via Digitalmars-d
digitalmars-d at puremagic.com
Sun Oct 12 03:53:16 PDT 2014
On 11/10/14 06:11, Dicebot via Digitalmars-d wrote:
> Reddit users are not the ones who invest into this language. If this attitude
> won't change it is only a matter of time until you start losing existing
> corporate users deciding to go with other language or a fork instead (likely
> latter).
>
> ...
>
> #pleasebreakourcode
You propose ignoring Teh Internetz and try to enlist a Twitter hashtag to that
end? ;-)
> Consistency and being robust in preventing programmer mistakes is single most
> important feature in the long term. @nogc, C++ support, any declared feature
> - it all means nothing with a simple necessity to not waste money fighting
> the language.
>
> ...
>
> Hardly anything matters more than that. Issues like that consume our time
> continiously for years, accumulating in wasted days weeks of worker time.
> Compared with time needed to adjust even several MLOC project gain is clear.
I don't think this message can be over-emphasized enough. By far the major
difficulty of programming effectively (in any circumstances, but particularly in
a corporate environment) is having to deal with quirks and special cases in a
language and its libraries where "the right thing" and "the obvious thing" diverge.
Such quirks don't just lead to more frequent programmer error, they also lead to
uglier and less easily maintained codebases, which almost always has a
multiplicative effect in terms of the overall quirkiness the developer has to
deal with. It's a LOT of lost time.
By contrast, when a language and/or library successfully conflates "the easy
thing" and "the right thing", the effect is multiplicative in the other
direction -- as a programmer, it helps you learn and implement good design
patterns that carry all the way up the software stack. I'm firmly of the belief
that D's successes in this respect not only made it easier for me to program,
they made me a better programmer.
D2 is, for the most part, excellent in this respect, but it could and should be
even better. Well-managed, well-documented and well-publicized breaking changes
in support of usability and correctness are desirable, not something to be avoided.
More information about the Digitalmars-d
mailing list