Eu sempre vi esses comentários serem usados:
function foo() {
...
} // foo
while (...) {
...
} // while
if (...) {
...
} // if
e às vezes até
if (condition) {
...
} // if (condition)
Eu nunca entendi essa prática e, portanto, nunca a apliquei. Se o seu código é tão longo que você precisa saber qual é esse final }
, talvez seja melhor dividi-lo em funções separadas. Além disso, a maioria das ferramentas de desenvolvedores podem saltar para o colchete correspondente. E, finalmente, a última é, para mim, uma clara violação ao princípio DRY; se você alterar a condição, deverá lembrar-se de alterar também o comentário (ou poderá ficar confuso para o mantenedor ou até para você).
Então, por que as pessoas usam isso? Devemos usá-lo ou é uma má prática?
if ... then ... end if;
while ... loop ... end loop;
procedure Foo is ... end Foo;
. Acho que ajuda na legibilidade (e é verificado pelo compilador, que não são comentários).
if(condition): ... else: ... endif;