You write nested comments by starting a multiline comment block and then starting a second multiline comment within the first block. The 'change history comment' is the old practice of writing in a history of changes at the top of the file (not on a function by function basis as you suggest) duplicating the comment recording in the source code control system, while not necessarily recording all changes because it isnt This goes a long way to making comments comprehensible. Linus has a style of inserting huge comment blocks that explain exactly what's going on, then he'll have a page of code that does it, with little or no comments.I wish I had time to go into more detail but I recommend:It's real simple. What are you trying to do with this loop? In web development, your dev cycle is often 3 months or fewer, with support cycles measured in days or even hours. E.g., a formal description of the long division taught in elementary school would generally be incomprehensible. But people NEED to remain aware of the basic principle that the only

The proper delineation of a function or method is the operation that it abstracts, not how long it is.
I would rather have to skim by a dozen comments that I don't need to read than be left hanging for the lack of one comment when something goes wrong. well-named and well-conceived, it will explain itself to a large degree, and won't require an English play-by-play of every friggin detail. Usually programmers prefer styles that are consistent, non-obstructive, easy to modify, and difficult to break.The following code fragments in C demonstrate just a tiny example of how comments can vary stylistically, while still conveying the same basic information: The above code fragment suggests that the programmer opted to disable the debugging option for some reason. Short code with a good explanation is always better than long code with poor explanation. -- Rik