みんな名前違って毎回わすれる
- アノテーション (Annotation): Java, Scala, Kotlin
- デコレータ (Decorator): Python, JS, TS
- 属性 (Attribute): C#, Rust, PHP
- Java の仲間のアノテーションは Annotation Processor でコード生成したり、リフレクションしたり、バイトコード変換したりする。
- Pytohn, JS, TS のデコレータの実態は高階関数。対象の関数やクラスを引数に適用してから名前を付ける。
- Rust のは大体手続きマクロで処理される。
- C# のは分からないけど Java っぽそう。
- PHP は全然分からない。