I worked once in a company that discouraged too much use of comments. Though this was for Ruby on RailsRuby on Rails. RubyRuby is a very expressive language and the Ruby on Rails framework dictates quite clearly where things belong and what they are good for. So using comments in a controller to explain what a method is good for would have been needless. So this may depend on context and language you use. Much can be already explained by using descriptive names for methods and variables. It may even force you to keep methods small and have a single, clearly defined purpose. IIf it becomes difficult to find a good name for a method, it's most likely because the thing is doing too much and should be splittedsplit in smaller parts.
Leaving old code and commenting it out is a bad habit. That's what a version control system is used for. If you want to see the former state of a file, use the functionality of gitGit or svnSVN or whatever you use. Otherwise you have to scroll through pages and pages of old stuff that makes not much sense in the actual context anymore.