É fato que cada programador tem suas técnicas e formas de trabalhar: preferências por Frameworks – ou preferência por trabalhar sem uma – preferências na plataforma (Linux, OSX, Windows, Solaris, *BSD…), preferências por IDEs de desenvolvimento (Eclipse, Zend Studio, Aptana, NetBeans, Kdevelop, Anjuta…) e isso não seria diferente quando o assunto é indentação de códigos.
Pensando rapidamente parece um absurdo tratar sobre isto, mas acredite, assim como temos os Freetards – pessoas que têm amor ao Software Livre e critica todo o resto – Mactards, Wintards temos os programadores que descutem sobre indentação do código ! E acredite, tem “grupos” de programadores, cada qual defendendo um lado ! Loucura ? Continue lendo !
Nosso ponto de partida..
Como eu não sei exatamente onde que teve inicio isto, tomaremos como ponto de partida a publicação do livro The C Programming Language, escrito por Brian Kernighan e Dennis Ritchie. No livro você percebe que eles indentam o código da seguinte forma:

Porém, há uma exclusão aí ! Quando temos funções, a indentação desta é diferenciada, veja:

Repare que nestes casos, a abertura de chaves fica abaixo da linha que indentifica a função. Em todo o resto, a chave de abertura ficará na mesma linha.
Nota: vale lembrar que a mesma dupla que definiu que “Os nomes de variáveis e funções tem que expressar o significado do que ela armazena/executa, entretando o nome não pode ser extenso demais.”
Em desacordo, nascem outras formas…
1. Eric Paul Allman – “Allman Style”
Vejamos a forma que ele usa e defende(defendia) :

A explicação é clara, assim como o código: isso evita que tenhamos linhas cheia de “tabs” apenas com chaves lá no final. Uma vez que as chaves sempre ficariam antes do conteúdo do bloco de código. É, até que tem sentido…
2. Whitesmiths Style
Esse estilo é usado pela Symbian ao desenvolver as aplicações em C++ para seus dispositivos móveis.

As chaves do bloco ficam abaixo da última letra do nome do método/construtor da linguagem. Ao que me parece, era usado nos primórdios do Windows também. (Carece de fontes confiáveis)
3. GNU Emacs
Sim, o guru do Software Livre também entrou nessa e criou seu estilo. Ele nada mais é do que a mistura do Allman com a Whitesmiths.

O código é indentado da seguinte forma: após o *if* você vai para linha debaixo e dá 2 espaços, e então coloca a abertura da chave do bloco. Vai para a linha debaixo novamente, e dê mais 2 espaços avançando dentro dos dois anteriores. Aí agora pode colocar seu código
Analisando alguns códigos…
Vejamos alguns códigos por aí a fora para ver o que a galera acha “pop”.
- Código fonte Kernel do Linux (arquivo proc.c)

- Código fonte Mozilla Firefox (GranParadiso Alpha8) (arquivo nsBrowserApp.cpp)

- Código fonte The Vim Editor (arquivo edit.c)

- Código fonte Zend Framework 1.5 (arquivo Action.php)

- E claro, a “minha” forma de indentação

Resumindo….
Pegando emprestado o resumo do EmacsWiki.org, temos:
“gnu”
The default style for GNU projects
“k&r”
What Kernighan and Ritchie, the authors of C used in their book
“bsd”
What BSD developers use, aka “Allman style” after Eric Allman.
“stroustrup”
What Stroustrup, the author of C++ used in his book
“linux”
What the Linux developers use for kernel development
“python”
What Python developers use for extension modules
“java”
The default style for java-mode (see below)
“user”
When you want to define your own style
Para fechar o post, deixo aqui uma frase que encontra-se no livro The Programming C Language:
The position of braces is less important, although people hold passionate beliefs. We have chosen one of several popular styles. Pick a style that suits you, then use it consistently.
Veja também: (Links em inglês)
http://www.emacswiki.org/cgi-bin/wiki/IndentingC
http://en.wikipedia.org/wiki/Symbian_OS
http://en.wikipedia.org/wiki/Indent_style
http://www.gamedev.net/community/forums/topic.asp?topic_id=446444




Simplesmente use espaços, qualquer editor esperto consegue adivinhar a iNdentação dependendo do estilo do código (tabulação de 2, 4, 8 espaços…).
A minha indentação é bem parecida com a tua, só que uso espaços ao invés de tab, e nunca, mas NUNCA meeesmo faço ifs de uma linha só.
if(is_object($cate)) {
throw new Exception($cate);
}
@Henrique, essa palavra me deixou em dúvida e como não tinha nenhum dicionário próximo, deixei como identação, mas valeu ao toque, vou corrigir !
@Rafael, adotei essa medida há pouco tempo! Antes eu usava if com chaves normais, mas depois que peguei essa mania de if de uma linha, viciei haha… menos chaves voando no código, penso !
Qualquer identação faz sentido e tal, e tem seus pontos bons e ruins. Eu uso a definida no C, devido à época de faculdade e tal.
Mas, me recuso a aceitar qq. identação feita com espaços. É muito tosco e quem criou esse padrão, acho que só criou pra poder ter uma coisa diferente; dar dois espaços ao invés de um tab? Ocupa mais espaço em disco e precisa teclar duas vezes ao invés de uma…
Isso sem falar quando você precisa usar o backspace ! Duas vezes ao invés de 1
— Isso é muito ruim :/
Muito legal este post mesmo depois de muitos meses vou fazer um comentário.
O uso de espaços é pois o código fica sempre com a mesma aparencia não importa onde tu abara ele pois uma pessoa pode configurar o tab para ser equivalente a 3 espaços e outro a 2 espaços por exemplo.
e não precisa dar 2 espaços e sim apenas Tab pq a Própria IDE converte o tab em espaços!
Eu consideraria usar os espaços =)
Um abraço
[...] *O blogueiro e programador Hélio Costa Silva fez um interessante post em se Blog, mostrando diversas maneiras de se organizar (identar) o código. CONFIRA [...]
Parabéns pelo post….
Concordo com o Christian, devemos usar espaços, mas configurando sua IDE para transformar seu tab nos mesmos…..
uso o primeiro estilo de indentação, creio que é o que mais parece com o padrão PEAR, porém, qualquer indentação é válida, até que não atrapalhe a leitura do código, além do que, sempre devemos pensar em minimizar esforço, tempo, espaço e etc
Abraço e sucesso !