Das Wort Annotation heißt laut Duden erst mal nichts anderes als „Anmerkung“ oder „Vermerk“. Der Begriff leitet sich von den lateinischen Wörtern annotatio, was sich mit schriftlicher Bemerkung übersetzen lässt, und nota, was ganz allgemein einen Hinweis bezeichnet, ab. In jedem Fall haben Annotationen einen ergänzenden, erklärenden Charakter. Sie enthalten wichtige Zusatzinformationen, sind aber selbst nicht wichtig für den Haupttext. Je nach Fachdisziplin erfüllt eine Annotation dann noch weitere Funktionen, in der Sprachwissenschaft beispielsweise ist eine Annotation die Beschreibung einer syntaktischen Struktur. In der Linguistik sind es analytische oder auch deskriptive Anmerkungen innerhalb eines Textes, wie zum Beispiel allgemein Wortart, Kasus, Genus oder Grundform des Verbs, Singular oder Pluralform.
Annotationen in Programmiersprachen sind, ähnlich wie in den Sprachwissenschaften, Zusatz- oder Metainformationen enthaltende Strukturelemente im Quellcode eines Programms. Diese werden vom Computer bei der Ausführung der Software ignoriert, sie sind hierbei wichtig, um Kommentare in den Quelltext einzufügen, die das Verständnis des Textes vereinfachen oder dabei helfen, den Quelltext zu strukturieren und somit unterteilen zu können.
Als Sprachelemente mit sehr einfacher Syntax sind Annotationen sehr flexibel, sodass sie für ganz unterschiedliche Zwecke verwendet werden können, zum Beispiel für die Dokumentation, für Hinweise, Fehlervermeidung, aber auch für die Compilersteuerung (ein Compiler übersetzt Programmcode aus höheren Programmiersprachen, so dass der Computer ihn ausführen kann) und um neue Annotationen zu definieren.
Scriptsprachen Java, C#, Python, Ruby und VB.NET sind unter anderem Programmiersprachen, die die Einbindung von Annotationen unterstützen. In Java gibt es bereits ein Set vordefinierter Annotations-Typen mit festen Bedeutungen, die durch eine bestimmte Zeichenfolge gekennzeichnet sind. Im Fall von Java beispielsweise zeigt ein vorangestelltes „@“ eine Annotation an. Mit Hilfe von Zusatzwerkzeugen oder Tools lassen sich Annotationen auch in die Programmiersprachen einfügen, in denen die Syntax sie erstmal nicht vorsieht.
Java-Annotationen und Software-Engineering: Wolf im Schafspelz? (JavaMagazin)