programacion-indentacion

Qué es la indentación de código

La indentación se refiere a la técnica de agregar un espacio inicial (indentado) al principio de las líneas de código, que ayuda a delimitar visualmente los bloques y estructuras de control.

Para hacer el indentado se agregan espacios o tabulaciones al principio de las líneas de código y resaltar la jerarquía de las estructuras de control, como bucles, condiciones y funciones.

Hay gente que prefiere tabulaciones, hay gente que prefiere tres espacios, hay gente que prefiere cuatro. No voy a entrar en ese debate, no os imaginaríais lo radicales que se vuelven algunos con eso.

Personalmente, me da igual. Lo que si es importante es que seas consecuente con el estilo que elijas dentro de un mismo proyecto, y alineados con las pautas de estilo de la empresa o organización con la que colabores.

La indentación adecuada permite que el código sea más fácil de entender y mantener, ya que ayuda a identificar rápidamente los bloques de código y las relaciones entre ellos. Además, facilita la detección de errores y mejora la colaboración en proyectos de programación.

Indentación no significativa

La indentación no significativa se utiliza en lenguajes de programación como C#, Java y C++. En estos lenguajes la indentación del código no tiene un significado semántico, y únicamente tiene efectos visuales para mejorar la legibilidad.

En estos lenguajes, la estructura del código se define mediante el uso de llaves {} u otras palabras clave específicas como end para delimitar bloques de código.

public static void CalcularDescuento(decimal precio)
{
	// <---- esa indentación es meramente visual
	if (precio > 100)
	{
		decimal descuento = precio * 0.1m;
		decimal precioFinal = precio - descuento;
		Console.WriteLine("Se aplica un descuento del 10%");
	}
	else
	{
		Console.WriteLine("No se aplica descuento");
	}
}

En este caso, la indentación en estos lenguajes es opcional, y es únicamente una convención de estilo utilizada para mejorar la legibilidad del código fuente.

De hecho, la mayoría de IDE proporcionan herramientas de autoformato, que permiten aplicar el indentado automáticamente al código, sin tener que hacer nada más que pulsar un botón o una combinación de teclas.

Indentación significativa

Por otro lado, la indentación significativa se utiliza en lenguajes como Python o CoffeScript. En estos, los bloques de código se definen mediante la propia indentación, en lugar de emplear llaves u otras palabras clave para delimitarlos.

def calcular_descuento(precio):
	# aqui la indentación es la que define el bloque
    if precio > 100:
        descuento = precio * 0.1
        precio_final = precio - descuento
        print("Se aplica un descuento del 10%")
    else:
        print("No se aplica descuento")

En estos lenguajes, la intentación es semántica, es decir, tiene significado. Por tanto es obligatoria y necesaria, y usarla incorrectamente conlleva errores de sintaxis o de ejecución.

Ventajas y desventajas

Como casi siempre existe, no hay una opción mejor que otra. De lo contrario, no existirían ambas. Cada una tiene sus ventajas y desventajas.

  • La indentación significativa, como se encuentra en Python, puede proporcionar un código más legible y estructurado, ya que fomenta una buena práctica de organización del código.

    Además, el código queda más conciso, al no depender de tantos delimitadores que ocupan innecesariamente. Ambas factores contribuyen a facilitar la comprensión y el mantenimiento del código.

  • La indentación no significativa, como en C# o Java, ofrece una mayor flexibilidad en la estructura del código y se adapta a diferentes estilos de codificación. Esto puede resultar beneficioso en escenarios específicos y puede ser preferido por algunos programadores.

    Además, con los IDE modernos y las funciones de autoindentado puedes despreocuparte de ello. Únicamente tienes que pulsar una tecla para formatear correctamente el texto.

    Pero sobre todo, es mucho más sencillo copiar y reordenar el código. Con bloques delimitados por palabras clave, únicamente tienes que copiar o mover el código, mientras que en caso contrario tienes que estar ajustando tabulaciones.

En cualquier caso, la elección entre la indentación no significativa y la indentación significativa depende del lenguaje de programación y, en gran medida, de las preferencias personales y a lo que nos hayamos acostumbrado. En cualquier caso, ahí están los dos planteamientos.