Agreed. I hate digging through a mountain of annotations to try and decipher what additional side effects some method might have (additional to any existing side effects). I have never seen a codebase where annotations were some necessary compromise; I feel like whatever crucial parameters is being passed through an annotation could have just as easily been put into the arguments and made a part of the method signature like they're supposed to be. Annotations were a mistake.
I don’t know, I think it’s closer to some LISP magic macro than Lispers would like to admit. They are extremely powerful, and thus can be responsible for some very ugly code, but when used responsible, they are huge productivity wins.
Well it is just another design pattern, i love annotations but it might be better even without it, Spring boot takes care of most of the things and it only needs very minimal annotation which makes sense.