Passei a maior parte dos últimos anos trabalhando principalmente com C # e SQL. Todo programador com quem trabalhei durante esse tempo costumava colocar a chave de abertura de uma instrução de fluxo de controle ou função em uma nova linha. Assim ...
public void MyFunction(string myArgument)
{
//do stuff
}
if(myBoolean == true)
{
//do something
}
else
{
//do something else
}
Sempre fiquei impressionado com o desperdício de espaço, especialmente nas declarações if / else. E eu sei que existem alternativas nas versões posteriores do C #, como:
if(myBoolean == true)
//do something on one line of code
Mas quase ninguém os usou. Todo mundo fez o negócio de usar cacheados na nova linha.
Então voltei a fazer JavaScript após uma longa ausência. Na minha memória, os desenvolvedores de JavaScript costumavam fazer exatamente a mesma coisa, mas com todas as novas e sofisticadas bibliotecas e outras coisas, a maioria dos desenvolvedores coloca a chave de abertura após a declaração:
function MyJavaScriptFunction() {
//do something
}
Você pode ver o sentido disso, porque como o uso de fechamentos e ponteiros de função se tornou popular em JavaScript, ele economiza muito espaço e torna as coisas mais legíveis. Então, eu me perguntava por que não era visto como algo feito em C #. De fato, se você tentar a construção acima no Visual Studio 2013, ela realmente a reformará para você, colocando a chave de abertura em uma nova linha!
Agora, acabei de ver esta pergunta na Code Review SE: https://codereview.stackexchange.com/questions/48035/questions-responses-let-me-tell-you-about-you. Em que aprendi isso em Java, um idioma com o qual eu não estou muito familiarizado, é considerado pouco rigoroso abrir o aparelho logo após a declaração, da maneira moderna do JavaScript.
Eu sempre entendi que o C # era originalmente modelado após o Java e mantinha muitos dos mesmos padrões de codificação basal. Mas, neste caso, parece que não. Então, presumo que deve haver uma boa razão: qual é a razão? Por que os desenvolvedores de C # (e o Visual Studio) impõem a abertura de colchetes em uma nova linha?
if(myBoolean == true)
faz pouco sentido para mim. Enquanto estamos nisso, enquanto não if ((myBoolean == true) == true)
? Apenas if (myBoolean)
e isso é o suficiente. Desculpe, uma irritação minha.