Когда-то я думал, что лучше, чем комментарии - это писать понятный легко-читаемый код, но потом я начал читать много кода, который нельзя назвать легко-читаемым, и теперь я никогда не отказываюсь от комментариев :D
По мере жизни проекта комментарии имеют свойство устаревать с огромной скоростью. Поэтому имена переменных, читаемый код - вот это вот всё. Если нет такого кода, то и комментарии подведут. Комментарии только в очень неочевидных местах в стиле "почему да зачем".