Using spaces and avoiding tabs is the only way to ensure that a
piece of code is rendered consistently in all editors and viewers.
Many editors render tabs as 4 spaces, and a lot of editors,
terminal programs and utilities render tabs as 8 spaces. Example:
printf("%s",
$arg);
Here, there are 7 spaces before "$arg". If this code was written
in an editor with 4-space tabs, it would store it as one tab and
three spaces. Now, if another developer edits the same file in an
editor with 8-space tabs, it will look like this:
printf("%s",
$arg);
Likewise, consider this code written with 8-space tabs:
if ($foo &&
$bar) {
}
If viewed in a 4-space-tab editor, it will look like this:
if ($foo &&
$bar) {
}
In a community like PEAR where people use lots of different
systems and editors, using tabs simply doesn't work. People will
end up doing whitespace commits fixing rendering in their editor,
while breaking it for others.
With only spaces it will look the same to everyone.
Jamie Zawinski has written a
piece on
the subject too.
There is also a tool called
Astyle which can help you convert your code to the appropriate
style.