Silicon Valley es **una de las series de moda de HBO**. Su historia narra las aventuras de “El Flautista”, una empresa de compresión que nace en el seno de Silicon Valley, la cuna del emprendimiento tecnológico del mundo.

A lo largo de sus tres temporadas, **los protagonistas se enfrentan a diversos retos y situaciones que reflejan fielmente lo que sucede en Silicon Valley día tras día**. Una de esas situaciones es el recurrente debate entre el uso de espacios y tabulaciones en la programación. En la serie de HBO, Richard Hendrix, sus empleados y una amiga conocida como Winnie mantienen una serie de discusiones respecto a este debate tan común en Silicon Valley y en otros entornos tecnológicos.

Las tabulaciones y los espacios se utilizan en la programación con dos objetivos: mejorar la estética del código y mejorar la legibilidad y comprensión del mismo

Los espacios y las tabulaciones **son utilizados por los programadores para estructurar el código de una forma determinada**. La primera línea de código (sin espacio o tabulación) inicia un “bloque” de contenido. Si las sucesivas líneas de código forman parte de ese mismo bloque (encerrado entre corchetes) o forman nuevos sub-bloques, estas se van desplazando hacia la derecha para indicar esa subordinación. En caso de formar un bloque completamente nuevo, se mantiene en la misma posición que la línea inmediatamente anterior.

A nivel funcional, **la diferencia entre el uso de espacios o tabulaciones es nula.** Cuando el código pasa por el compilador antes de ser ejecutado, la máquina interpreta de igual forma ambos formatos. No obstante, sí existen diferencias técnicas que marcan la diferencia entre el uso de tabulaciones y espacios:

- **Precisión.** Una tabulación no es más que un conjunto de espacios agrupados. Por norma general, este conjunto suele ser de 8 caracteres, pero puede variar. ¿Qué quiere decir esto? Que cuando un mismo fichero de código se abre en dos máquinas diferentes, la apariencia del código puede ser diferente. En cambio, el uso de espacios no conlleva este problema: un espacio siempre ocupa el mismo “espacio” —valga la redundancia— y asegura que el código se visualiza de la misma forma en todas las máquinas.

- **Comodidad.** En el caso de las tabulaciones, basta con pulsar la tecla de tabulación una única vez para estructurar correctamente el código. En el caso de los espacios, es necesario pulsar varias veces la misma tecla para lograr la estructura deseada.

- **Almacenamiento.** El uso de tabulaciones también reduce el tamaño el fichero final, mientras que el uso de espacios lo aumenta. Lo mismo sucedería con el uso de espacios en lugar de saltos de línea.

Entonces, ¿cuál es la más correcta? **La realidad es que todo depende de las preferencias personales.** Si necesitas optimizar el tamaño de los ficheros al máximo —como en el caso de “El Flautista”—, el uso de espacios se convierte en un sacrilegio. Si, en cambio, tu código debe lucir exactamente igual en múltiples máquinas, el uso de espacios puede ser más conveniente para lograr esa homogeneidad.

Por suerte, **existen múltiples editores en la actualidad que trabajan y facilitan la transición entre ambos sistemas.** Asimismo, los equipos de desarrollo de software establecen en sus *guidelines* el uso de espacios o tabulaciones, tal y como podemos ver en Silicon Valley. De esta forma, se evitan conflictos entre los programadores de una misma empresa y se alcanza esa homogeneidad tan deseada.