Language Design: Annotations Obsolete Modifiers

Failed Attempts

Published on 2021-12-15.


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 less important annotations.