Я считаю, что нужно писать краткие комментарии о том, для чего
нужны модуль, класс, функция, какие аргументы, какие возвращаемые
значения, может быть назначение отдельных переменных, может
комментировать отдельные абзацы кода. Причём писать не формальные
комментарии (вида Callback(); // callback function), не doxygen из
которого ничего не понятно, а своими словами, что подразумевалось,
а не что в коде сделано. Потому, что бывает подразумевалось одно, а
из-за ошибок и логических заблуждений сделано другое. И я считаю, что по-возможности, комментарии нужно писать на русском языке. Если организация не 100% российская, то приходится конечно на английском, но не считаю, что к этому нужно стремиться -- я в конце-концов на языке же и мыслю. И мыслить на чужом языке полноценно никогда не смогу. Смогу, но по-другому, примитивно.