“Aquellos que no pueden entender UNIX, están condenados a reinventarlo, pobremente.”
Henry Spencer, 1987
Así como “El arte de la guerra” de Sun Tzu nos puede ayudar en nuestra vida diaria, aún siendo éste un libro de estrategias militares, la Filosofía Unix también nos puede servir para mucho, aún siendo una guía para la buena programación de software.
Para todo buen informático, deberían ser una serie de reglas básicas a tener en cuenta ante cualquier diseño de software; unos principios que nos deben asegurar la calidad del trabajo y garantizar que se está realizando de la mejor manera posible.
Los principios son los siguientes:
- Regla de Modularidad: Escribe partes simples, conectadas por interfaces simples.
- Regla de Claridad: ser Claro es mejor que ser ingenioso.
- Regla de Composición: Diseña programas para que se conecten a otros programas.
- Regla de Separación: Separa las reglas del funcionamiento; separa los interfaces de los mecanismos.
- Regla de Simplicidad: Diseña para la simplicidad; añade complejidad sólo donde sea estrictamente necesario.
- Regla de Parsimonia: Escribe un programa complejo sólo cuando sea evidente que no existe otra solución posible.
- Regla de Transparencia: Diseña para la visibilidad, para hacer más fácil la inspección y la corrección de fallos.
- Regla de Robustez: la Robustez es hija de la transparencia y la simplicidad.
- Regla de Representación: Convierte el conocimiento en datos, para que la lógica de los programas pueda ser estúpida y robusta.
- Regla de Mínima Sorpresa: En diseño de interfaces, haz siempre lo menos sorprendente.
- Regla de Silencio: Cuando un programa no tenga nada sorprendente que decir, no debería decir nada.
- Regla de Reparación: Cuando tengas que mostrar un error, falla estridentemente y lo antes posible.
- Regla de Economía: el tiempo del programador es caro; consérvalo sobre el tiempo de la máquina.
- Regla de Generación: Evita hacer cosas a mano; escribe programas que escriban programas siempre que puedas.
- Regla de Optimización: Prototipa antes de pulir. Haz que funcione antes de optimizarlo.
- Regla de Diversidad: Desconfía de todo lo que diga “esta es la única forma correcta”.
- Regla de Extensibilidad: Diseña para el futuro, porque estará aquí antes de lo que piensas.
Todo esto, por largo que pueda parecer, lo podemos resumir en la primera de sus premisas: “Haz una cosa, y hazla bien”. Todo ha de seguir el Principio KISS: Keep It Short and Simple (o en su defecto, Keep It Simple, Stupid!).
Como véis, muchas de las reglas las podemos utilizar para nuestro trabajo diario, a la realización de un informe de resultados, a un diseño web, a un simple dibujo manual, a mil cosas… cada uno es el que tiene que sacarle partido.