+1
On Monday, 26 January 2015 at 11:39:23 UTC, Jonathan M Davis
wrote:
On Monday, January 26, 2015 01:54:36 Andrei Alexandrescu via
Digitalmars-d wrote:
On 1/26/15 1:50 AM, Brian Schott wrote:
> On Monday, 26 January 2015 at 09:29:42 UTC, Paolo Invernizzi
> wrote:
>> If someone is not following the merges, well... [1] !!
>>
>> ---
>> Paolo
>>
>> [1]
>>
http://forum.dlang.org/post/54c5f10ae5161_1b783fd49bfbf2c034...@hookshot-fe4-cp1-prd.iad.github.net.mail
>>
>
> I'm running out of ideas for DConf topics.
Heh, I infer that's a good thing. Nevertheless we should
probably
discuss this and its impact; don't forget we can always undo
it before
2.067. Thoughts! -- Andrei
In theory, the increased consistency is welcome, but the
increased visual
noise definitely is not. And if we leave in pure and nothrow
without @,
then we're going to have code out there doing both, which adds
to the
confusion, and if we deprecate pure and nothrow without @, then
we'll be
forced to change pretty much every D program in existence.
But It's not like this really improves consistency all that
much anyway,
because public, protected, package, private, final, override,
static, const,
immutable, inout, and deprecated all don't have @. So, most
function
attributes _don't_ have @ on them, and we just added @ to some
of them,
making things even _less_ consistent. In fact, priore to this,
@safe,
@trusted, @system, and @property were the _only_ function
attributes with @
on them. So, if we really wanted to improve consistency IMHO,
we'd get rid
of @ from everything that's built-in and leave it for
user-defined
attributes, but that would break existing code too.
Ultimately, I really don't see this as an improvement, because
it really
doesn't fix the consistency problem with attributes, and we're
either going
to have to change existing code or end up with both @pure and
pure, and
@nothrow and nothrow in the language, which is just ugly. But
aside from
having duplicate attributes for the same thing, I don't know
that it really
makes things any worse - though at least before this, we could
just say that
@property, @safe, @trusted, and @system were oddballs that were
added late
in the game and that they had @, because we didn't want to add
new keywords.
With this change, I expect that it will be even less clear
which attributes
have @ on them and which don't.
Personally, I'd much prefer that we not make this change. It's
just
shuffling things around in an attempt to make them more
consistent while
actually making them _less_ consistent.
- Jonathan M Davis