I don't grasp the motivation for the naming of keywords in D. I think the syntax would be more clear if "@" was reserved for compiler hints.
Originally @ was added for some new keywords to get a new "namespace" for keywords. There was no risk of conflict with existing symbol names since @ wasn't allowed in symbol names. Since UDA's were introduces this isn't the case anymore.
-- /Jacob Carlborg
