Siempre se deben usar espacios, ya que las pestañas por sí solas no son lo suficientemente flexibles para muchos estilos, y la combinación de pestañas y espacios (casi) siempre produce un desorden absoluto.
Para un ejemplo de un estilo que generalmente necesita espacios, considere algo como:
call_some_function(parameter1,
parameter2,
parameter3,
parameter4,
parameter5,
parameter6,
parameter7);
A menos que esté dispuesto a cambiar el nombre de todas sus funciones para que sean un múltiplo exacto del tamaño de la pestaña (menos una para el paréntesis), las pestañas por sí solas simplemente no harán esto.
En cuanto a la combinación de pestañas y espacios, casi inmediatamente se encuentra con un problema grave: las pestañas no se expanden de la misma manera. Algunos programas tratan una pestaña como equivalente a un número específico de espacios. Otro software expandirá un módulo de pestañas un número específico de espacios, por ejemplo, un elemento después de una pestaña siempre comenzará en un número de columna que es un múltiplo de (digamos) 8.
Incluso si puede asegurarse de que los espacios no se mezclen con sus pestañas, todavía tiene un problema: las pestañas también funcionan mal con las fuentes de ancho variable. Este problema surge cuando (por ejemplo) desea alinear comentarios finales:
a.m = 9; // this is the slope
a.i = 4; // this is the intensity
a.x = 1; // this is the x-intercept
Tal como están ahora, todos se alinean perfectamente. Visto con una fuente de ancho variable, sin embargo, las cosas se ponen feas. Con espacios, los comentarios pueden (a menudo lo harán) ligeramente desalineados. Con las pestañas, sin embargo, la desalineación a menudo se vuelve bastante radical:
a.m = 9; // this is the slope
a.i = 4; // this is the intensity
a.x = 1; // this is the x-intercept
De repente, la pequeña diferencia de ancho entre la 'i' y la 'm' o 'x' en nuestra fuente de ancho variable se ha ampliado a una tabulación completa.
La conclusión es que casi cualquier cambio en la forma de ver el código con pestañas, sin importar cuán aparentemente trivial, puede y generalmente producirá un lío ilegible.
Para responder a sus otras preguntas: otras ya lo han señalado, pero no puedo imaginar a nadie en un editor de programación (o mucho más) que realmente use la barra espaciadora para insertar los espacios, por lo que su pregunta sobre: "escribir spacespacespacespace" es irrelevante porque nadie lo hace de todos modos. Del mismo modo con el retroceso: es difícil imaginar un editor que requiera presionar BkSpccuatro veces para ir a una tabulación anterior, por lo que (nuevamente) la pregunta es irrelevante.
En pocas palabras: las pestañas están bien si usted (y solo usted) alguna vez mira su código, y solo lo hace con un solo editor que nunca reconfigura (¡en absoluto!) Sin embargo, esas condiciones son casi imposibles de exigir que solo haya una respuesta razonable: nunca use pestañas.
tab
. Si no puede configurar eso en su editor favorito, necesita un mejor editor.