Language Design: Annotations Obsolete Modifiers
Kotlin gave up on it, as they couldn’t figure out how to recognize annotation usages as early in the compiler pipeline as modifiers previously.
This lead to the determination that modifiers (without the prefix
@) had to stay, but annotations would not always be
able to omit the prefix
@, leading to inconsistencies.
Ceylon tried the route in which everything is an annotation, but looks like a modifier (i. e. without prefix
This made it hard to distinguish between important keywords, and not-so-important annotations.