Kirk Haines wrote:
> Tabs are also faster for me.  It's a tangible difference when I am writing 
> a lot of code, and when I am really into a coding groove it's always my 
> fingers that are the limiting factor to how fast I can produce the code, 
> so every little bit helps.

In emacs ruby-mode, hitting 'tab' means to indent the code by the 
appropriate amount.  For me, it always does this using spaces.

> Spaces mixed with tabs can mess the indentation up (though not 
> necessarily), but I don't find that to be a significant factor, for me.  
> If there are spaces mixed with tabs, I've been sloppy, and I fix it.  It 
> rarely affects me adversely, though, whereas the freedom to adjust 
> indentation through editor settings and the speed increase that I get from 
> it helps me.  If I had a neural interface that reduced the bottleneck that 
> my fingers impose on me, tabs would lose much of their advantage over 
> spaces, for me.

Again, with emacs, if you want to change your indentation level, just 
change your 'basic-offset' setting, select the whole buffer and run 
'indent-region', it will reformat the entire buffer (or just the 
selected part) according to your new setting.

As others have said, the problem isn't with tabs or spaces, it's with 
tabs *AND* spaces.  If you mix them, you cause problems.  The trouble 
is, it's really easy to mix them.  Take the following code snippet:

print("This is the start of a very long string that " +
       "I'm continuing on the next line.")

Most people that I know would want it lined up as above, so that the 
start of the second string lines up with the start of the first one, 
however that's six characters in.  What happens when both lines are 
indented, as in:

if (print_string)
     print("This is the start of a very long string that " +
           "I'm continuing on the next line.")
end

If you're using tabs to indent, the second line should contain 1 tab, 
followed by 6 spaces.  But what if your editor thinks that a tab is 4 
spaces?  I would bet that under most circumstances it would insert 2 
tabs and 2 spaces.

Anyhow, some good reading on this issue, with some vi/emacs methods of 
dealing with it can be found on Jamie Zawinski's site:

http://www.jwz.org/doc/tabs-vs-spaces.html

Ben