Summary
Rename the #[deriving(Foo)]
syntax extension to #[derive(Foo)]
.
Motivation
Unlike our other verb-based attribute names, “deriving” stands alone as a
present participle. By convention our attributes prefer “warn” rather than
“warning”, “inline” rather than “inlining”, “test” rather than “testing”, and so
on. We also have a trend against present participles in general, such as with
Encoding
being changed to Encode
.
It’s also shorter to type, which is very important in a world without implicit Copy implementations.
Finally, if I may be subjective, derive(Thing1, Thing2)
simply reads better
than deriving(Thing1, Thing2)
.
Detailed design
Rename the deriving
attribute to derive
. This should be a very simple find-
and-replace.
Drawbacks
Participles the world over will lament the loss of their only foothold in this promising young language.