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?"

Reply via email to