miércoles, septiembre 06, 2006

Estética

Otro pensamiento medio cocinado.

Cada vez creo más en la importancia de la estética en la informática. No me estoy refiriendo (únicamente) a la interfaz del usuario, la característica más visible del software, o al menos la de público más amplio. Me estoy refiriendo sobre todo a la estructura interna, la arquitectura, el uso de patrones, el estilo del código, los nombres de las variables, los diagramas de bases de datos, los diagramas de clases, la claridad de la descripción en los casos de uso...

En ese sentido, creo que otras ingenierías artísticas (o artes ingenieriles), como por ejemplo la arquitectura, tienen mucho que ver con la informática. Conceptos como los de simetría, repetición, coherencia (integridad conceptual, The Mythical Man-Month, Brooks), etc. los veo fácilmente aplicables a la ingeniería del software.

Creo además que incluso la literatura nos puede ayudar (Knuth). El desarrollo de software tiene que ver mucho con escribir un buen libro, o crear un edificio.

Una pequeña nota. Cuando antes hablé de repetición, no me refería al modelo de reusabilidad de código que denomino copypaste (es decir, si este código me vale, lo copio, y lo pego en mi proyecto con pequeñas modificaciones), sino más bien a la inteligibilidad que otorga que lo que es conceptualmente igual se refleje de la misma manera en el código (Añadir y Agregar son sinónimos, pero en un código estético sería imperdonable utilizar en unos sitios un identificador, y en otros sitios el otro.

Me gusta la idea, creo que reincidiré en ella.