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