Don't comment your code
version2beta.com
version2beta.com
Such pleas are always accompanied by some example in a vacuum which requires no justification for why a piece of code exists, including tricky branches that required careful reasoning to catch corner cases that might go without detection when breezing through doing maintenance or changing things. If nothing else, comments provide a nice breathing space between even short chapters of a function to help the eye track the code...much better than cramming stuff into a symbol name and relying on guesswork.
Does this mean that the post contains bad information? No, not necessarily, but for me, the headline and thesis do not follow from the otherwise reasonable techniques detailed.
More constructive commenting advice:
If your comments are supposed to explain what the code does, give a few extra minutes to considering whether the code could be clearer (some tasks might require complicated code that merits comments, but most tasks can be accomplished with self-explanatory code).
On the other hand, sometimes there are external reasons, not enscapulated within your code, why you must do something surprising. This unequivocally merits comments. "I did this because of RFC #XYZ" or "Partner FooCorp needs this bizarre format, see /global/path/to/spec", or "our data has such-and-such a distribution, thus this surprising approach, which improves the 99th %ile latency".
This isn't my experience at all. Comments don't need to be read, therefore the programmer has a greater chance of not realizing they are now out of sync with the code (this can happen on a project you're completely familiar with). Function and variable names must be read and comprehended to use, so it is much more likely that any divergence will be picked up. I completely agree with the author that descriptive function and variable names are much more valuable than comments, and thus the former should be heavily favored.
When you're taking on someone else's project do comments help, or do they make things more confusing?
eggs:=eggs+1; (* increment eggs *)
All the other comments should be kept, and maitained synchronized with the code.Now like you may want to have some tools to track the link between requirements, design and code (so that when requirements change you may know what design decisions should be reviews and what parts of the code should evolve, youl may want some tools to track the dependency between the code and the comments and check their updated at the same time.
So I would suggest, instead of throwing the baby with the bathwater, to imagine and implement the missing tools!