Por qué es importante evitar los espacios en blanco en las líneas de código

Los espacios en blanco al final de las líneas de código (en Inglés 'trailing whitespaces') si bien no son un problema que sea difícil de resolver, pueden traer ciertos problemas a la hora de escribir código cuando no son tratados correctamente.

Los espacios en blanco al final de las líneas de código (En adelante espacios en blanco) es algo que tratan de evitar editores de código modernos o sistemas de manejo de versiones como GitHub. Personalmente, siempre di por sentado que esto era algo que debía evitarse, pero nunca supe la razón exacta de por qué debe hacerse. Es por esto que hice una pequeña investigación y aquí están los resultados de ella.

Motivos históricos

Uno de los primeros motivos por el cual se evitaban los espacios en blanco, era por la limitación de recursos en los computadores clásicos, similar a por qué se exigían longitudes de línea inferiores a 80 (Por la capacidad de los monitores de antaño)

Es ruido

Cuando no tienes tu editor de código debidamente configurado para manejar este tipo de problemas y normalmente estás copiando y pegando código de internet (Cosa que no recomiendo :P), trabajando entre archivos, etc. Vas a terminar subiendo espacios en blanco a tu repositorio.

Ahora, probablemente algunos de tus compañeros tengan configurados sus editores de código para eliminarlos automáticamente o tal vez lo hagan ellos mismos a mano por que los tienen resaltados y les fastidia ver ese montón de punticos en el editor. En este caso se estarán creando commits con cambios que no tienen significado alguno para el proyecto (Agregando complejidad al proceso de revisión de código) y en algunos casos incluso, conflictos innecesarios a la hora de fusionar el código.

Hace que la navegación en el código sea tediosa

Si eres el tipo de programador que utiliza muchos atajos de teclado para programar rápidamente, seguro utilizas mucho la tecla END(Fin) para ir al final de una línea y agregar algo. Si tienes muchos espacios en blanco en tu código, al presionar esta tecla, te llevará al final de los espacios en blanco, teniendo que eliminarlos manualmente para llegar a los caracteres que de verdad importan.

Pueden introducir errores difíciles de rastrear

En algunos casos, cómo en los lenguajes que soportan strings multi-línea (Python, Javascript) se pueden incluir algunos errores debido a los espacios en blanco, observemos el siguiente fragmento de código (asumamos que los puntos son espacios en blanco):

print("Hello\·
····World")

Al ejecutar este código, obtenemos lo siguiente:

  File "demo.py", line 1
    print("Hello\
                 ^
SyntaxError: EOL while scanning string literal

Si no tenemos bien configurado nuestro editor de código es posible que no nos demos cuenta que el error es debido al espacio en blanco en la primera línea y que pasemos horas tratando de resolver el problema.

¿Cómo evitar los espacios?

Bueno, la respuesta la he dado en el transcurso del artículo: Utiliza un buen editor de código que te permita evitar los espacios en blanco al final de cada línea, existen algunos editores que te permiten resaltarlos y otros que te permiten incluso eliminarlos automáticamente al guardar los cambios en un archivo.

Espero que haya sido clara esta explicación, ¿Se me ha escapado algún motivo importante? ¿Estoy equivocado en alguno? Me encantaría leer tu opinión en los comentarios.