Adding annotation metadata to languages is a common trend now (Started by DotNetLanguages on their first release). Classes, methods, variables, parameters and packages may be annotated. Unlike comments, annotations are reflective in that they are embedded in the files generated by the compiler and may be retrievable at run-time. Languages with annotation metadata : * All DotNetLanguages (where they are known with the name of "attributes") * JavaLanguage * ScalaLanguage ----- A question I have always had is: Is it true that AnnotationsAreUmlStereotypes ? ----- Some related discussion in HotComments, albeit with a much greater focus on the processing of annotations.