Hay una gran cita de Platón que es particularmente importante que los programadores sepamos y recordemos siempre: "La belleza en el estilo, la armonía, la gracia y el buen ritmo dependen de la simplicidad". Creo que esta cita resume en una sola oración todos los valores a los que deberíamos aspirar los desarrolladores de software.
En nuestro código, nos esforzamos por lograr una serie de cosas:
LegibilidadMantenibilidadVelocidad de desarrolloLa esquiva cualidad de la belleza
Platón nos está diciendo que el factor que nos permitirá alcanzar todas estas cualidades es la simplicidad.
¿Pero qué hace bello al código? Ésta puede ser una pregunta muy subjetiva. La percepción de la belleza depende mucho de nuestro trasfondo individual, tal como sucede con cualquier otra cosa. La gente formada en las artes tiene una percepción (o enfoque) sobre la belleza que es distinta a la de la gente formada en las ciencias. En el ámbito del arte se tiende a analizar la belleza del software comparándola con obras de arte, mientras que en el de las ciencias se habla de la simetría y la proporción áurea; se intenta reducir las cosas a fórmulas. En mi experiencia, la simplicidad es la base de los argumentos en ambos lados de la moneda.
Piensa en el código que has estudiado. Si no has pasado un buen tiempo leyendo el código de alguien más, deja de leer esto ahora mismo y ve a buscar algo de software libre para estudiar. ¡En serio, no es broma! Busca en Internet algo de código en tu lenguaje preferido, escrito por algún experto reconocido.
¿Ya has regresado? Bien. ¿Dónde estábamos? Ah, sí... Me he encontrado con que el código que me llama la atención y que considero hermoso siempre posee una misma serie de características. La más importante es la simplicidad. Me encuentro con que, sin importar qué tan complicada sea la aplicación o sistema en su totalidad, las partes individuales deben mantenerse simples: los objetos deben ser sencillos, poseer una única responsabilidad y contener métodos similarmente simples, con una tarea bien definida y nombres descriptivos. Algunos piensan que la idea de escribir métodos breves, de entre cinco y diez líneas de código cada uno, es bastante extrema, y algunos lenguajes hacen que sea muy difícil lograr esto, pero yo creo que esta brevedad es un objetivo deseable.
En resumen, para que el código sea bello debe ser simple. Cada pieza individual debe ser sencilla, y poseer responsabilidades y relaciones simples con otras partes del sistema. De este modo se logra que nuestros proyectos puedan mantenerse en el tiempo, con código limpio, sencillo y verificable, lo cual permite mantener una alta velocidad de desarrollo durante el tiempo de vida del proyecto.