Actually, there are many cases for wich I believe the comments are useful:<p>- When you have some "complex" technical code. Using natural language is sometimes the most effective way to explain what is done by the related code.<p>- When you deal with some business logic that can become weird an one point (process all these things in some ways, excepts these ones, weird edge cases, etc.). From a developer perspective, it does not always make sense, but it's always useful to have some background explaining why the code has been written in such way.<p>- When you have to consider history on a large code base. I know that people on HN mostly work on new shiny projects, but with legacy applications, you have to deal with all the bad/incorrect choices that were made before, and refactoring is not straightforward and is costly. I'm not saying it should not be done, but sometimes, you can work on it only in an incremental way. Comments allow you to add some perspective on the code (explaining the reverse engineering you've done, the initial assumptions, why they turned out to be incorrect, what should be done to improve the situation, etc).<p>Also, I disagree with the facts that comments are born out lazyness. "Lazy" developers don't bother writing comments. Actually, there don't care, and most of them do not even realise that at some point in time, someone will have to browse, read and understand their code. The only kind of comments I've seen from such people are "commented code", because "it might be useful" (it never does).<p>I see comments as a way to engage a (one way) conversation and provide useful and meaningful information to a future code maintainer. Sure, such comments should not clutter the code, be relevant and meaningful, stay up-to-date but it's - as many other things - a skill that require time to get it right.<p>Looking to eliminate all of those is not an approach that I think should be followed (but it's just my opinion). Focusing on allowing the code to be understandable by an hypothetical maintainer in the future is more relevant. If extra comments have to be added, so be it. These are tools, not ends.