I used to believe that comments were unnecessary for good code but eventually found this to be false.
Now I do code annotation where every single line of code is commented.
This allows the entire program to be read as plain english which is much faster and less mentally taxing than trying to read code.
Reading english (or whatever your native language is) is much much faster than parsing code.
However, I think that the larger the project, the more sense it makes to comment heavily. Again, code clarity needs to be a priority, but so does comment clarity, so much time is spent reading code by humans who are optimized to parse natural language. So we should cater to our users, not just the users of our executable, but the users of our source too!