¿Cuál es el principio más importante del diseño de software?
Diseñar para el que vendrá,
para quien tendrá que entenderlo, mantenerlo y ampliarlo,
ya sea un humano, yo mismo en el futuro, o una máquina.
¿Y para qué, si todo va a volverse obsoleto pronto?
Porque justo ahí está la clave:
si mi software sobrevive a las revoluciones tecnológicas,
será más valioso cuanto más desaparezca el de los competidores,
cada vez más indiferenciados.
La mística
Un programador es un nómada que
conduce una larga caravana de software y datos
a través de décadas de revoluciones tecnológicas,
sabiendo que las pérdidas son inevitables,
pero que la acumulación y la continuidad son su gran ventaja.
Escribir para las máquinas que nos leerán
En los años 90, cuando los programadores me preguntaban
por qué era importante escribir comentarios en el código,
yo respondía:
«Porque algún día las máquinas serán tan inteligentes que
no necesitarán ejecutar nuestro código.
Leerán nuestros comentarios, entenderán lo que queríamos hacer y
lo harán aún mejor.
Pero si no hay comentarios,
tendrán que deducir nuestras intenciones a partir de
un código lleno de errores, oscuro y sucio, y
el resultado será siempre peor».
Ahora me doy cuenta de que, en los 90,
ya intuía lo que vendría en los 2020.