All function attributes possible with "@"?
01010100b via Digitalmars-d
digitalmars-d at puremagic.com
Wed Dec 14 22:40:06 PST 2016
On Thursday, 15 December 2016 at 03:56:56 UTC, Jonathan M Davis
wrote:
> This does _nothing_ except maybe improve your ability to have
> aesthetically pleasing code if you think that slapping @ on all
> of the attributes is aesthetically pleasing (and a number of
> folks think that the @s are downright ugly).
This doesn't follow, one can think that all @s is downright ugly
(I think so for example) yet still consider it _less_ ugly than
an effectively random mix of some with @ and some without @, ie
if your preferences are: no @ > all @ > mixed.
> It doesn't cause problems beyond the fact that it spmetimes has
> to be explained to newbies, because they figure that the @ must
> mean something, when it really doesn't.
It will cause a problem every time you want to add a new
attribute to the language.
Right now it seems the worst decision was taken. If you want the
language, in its current state, to remain fixed then you might as
well take the hit and change the @attributes to keywords and be
done with it once and for all. If you want the language to be
extensible with future attributes, then you're better off
reserving a set of strings, prefixed with for example #, and take
the hit now so that you won't incur a breaking change for every
single future attribute which might get added.
Given that this situation arose exactly because people kept
adding attributes to the language after the list of keywords got
fixed, I'm going to assume that it is likely people will want to
do so in the future as well.
And if the goal is greater adoption of the language then I don't
think it's true that only technical changes matter. Going by the,
admittedly small, sample of myself the problem is not not being
able to learn which attributes to write with @, but that this
just screams "bad design!" at me. Which then leads me to wonder
"if I invest more into learning and experimenting with this
language to see if it can solve the problem I want it to solve,
how likely will it be that I will run into more such things which
then eventually lead me to reject the language in favour of
another alternative, thereby wasting my investment in it?"
More information about the Digitalmars-d
mailing list