I think the @author
tag actually confuses things. First of all, if it isn't updated judiciously, it becomes wrong. Also, what if you (not being the original author) change half a class? Do you update the @author
? Do you add one? And what if you change only a few lines in the class?
I also think it promotes code-ownership, which I don't think is a good thing. Anybody should be allowed to change a file. If there's an @author
tag, people will tend to let this author make all the changes instead of doing it themselves and maybe learning something in the process.
Finally, as you said, the same information, in much more detail, is available from your VCS. Anything you add in Javadoc is duplication. And duplication is bad, right?
EDIT: Other answers mention the fact that you may not have access to the VCS, and in such cases the @author
tag is useful. I humbly disagree. In such cases, you're most likely dealing with a 3rd party library, or perhaps an artifact from a different team inside your company. If that's the case, does it really matter who the individual was who created a certain class? Most likely, you only need to know the entity who created the library, and talk to their contact person.