Why do some language-defined attributes have @ and some not?

Jonathan M Davis via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Wed Oct 22 19:22:39 PDT 2014


On Thursday, 23 October 2014 at 00:59:26 UTC, Shriramana Sharma 
via Digitalmars-d-learn wrote:
> I thought D was beyond carrying historical baggage. DMD 2.x is 
> not
> necessarily language-compatible with DMD 2.(x+1) since the 
> language is
> still evolving. You can deprecate one syntax and enforce the 
> other in
> a later version.
>
> I submit that the syntax for attributes should be streamlined. 
> Shall I
> go and open a Bugzilla item?

LOL. I understand the sentiment, but it's a waste of time. We've 
long since reached the point where we try and not break people's 
existing code unless we have a really good reason for it (and for 
better or worse, aesthetics definitely don't make the cut). No, 
D2 is not as fixed in stone as C++ is, but we are trying to have 
a stable enough language for programmers to use in production 
rather than treating the language as being experimental and/or 
rapidly changing in incompatible ways.

So, yes, we do have historical baggage, albeit nowhere near as 
much as C++ does. But the reality of the matter is that _every_ 
language that gets used in production has historical baggage, 
because you never get everything right, and you frequently can't 
afford to change it, because it would break too many existing 
programs. And for better or worse, fixing attribute names doesn't 
even come close to being on the list of things that Walter Bright 
would consider worth changing. It's hard enough to get him to 
agree to make breaking changes when most of us agree that we'll 
be better off with the changes in spite of the code breakage that 
they cause, let alone on a controversial topic like attribute 
names which has been discussed to death.

Walter and Andrei very much want D to be being used in production 
at this point, and so the focus on features is entirely on what's 
required to make the language fully usuable for companies looking 
to use D, and tweaking things to make them cleaner just isn't 
going to happen without a really good, practical reason for it. 
Breaking changes are sometimes made still, but not for something 
like that

- Jonathan M Davis


More information about the Digitalmars-d-learn mailing list