Ken thompson: la simplicidad como arma secreta del software
El legendario programador Ken Thompson, figura clave en la creación de Unix, B y Go, ha revelado un secreto que podría revolucionar la forma en que entendemos el desarrollo de software: la eliminación deliberada del código innecesario. No se trata de retroceder, sino de un acto de ingeniería fundamental para la robustez y la eficiencia.
n
El dogma de thompson: menos es más
nThompson, un hombre que ha moldeado la computación con su filosofía de construcción mínima, argumenta que cada línea añadida es una puerta de entrada a errores y complejidades. Su afirmación de que eliminar 1000 líneas de código fue su día más productivo es una declaración sorprendente, pero que subraya un principio básico: la simplicidad es la madre de la eficiencia.
nDesde sus inicios en Bell Labs, junto a Dennis Ritchie, desarrollando Unix, Thompson abrazó una mentalidad que trascendió el sistema operativo. La modularidad, la funcionalidad específica y la eliminación de redundancia se convirtieron en pilares de su trabajo. Con el lenguaje B, precursor directo de C, y posteriormente con Go, un lenguaje diseñado para la producción a gran escala, Thompson replicó esa misma filosofía.
nGo, en particular, es un ejemplo paradigmático. Su sintaxis, deliberadamente escueta, su sistema de tipos directo y sus mecanismos de concurrencia, están diseñados para ser comprendidos y utilizados con facilidad, no para ser domados por una complejidad innecesaria. Esta postura choca frontalmente con la tendencia actual en muchos equipos de desarrollo a medir la productividad únicamente por la cantidad de líneas de código escritas.
nLa deuda técnica, una amenaza silenciosa. La acumulación de código sin criterio genera una deuda técnica que, de no ser gestionada, puede paralizar cualquier proyecto. Un cambio, por pequeño que sea, se convierte en una operación de riesgo. Thompson no solo elimina código, sino que reduce la superficie de error, simplifica la arquitectura y prepara el sistema para futuras modificaciones.
nUn reto para los ingenieros. Esta práctica exige un juicio superior al de simplemente añadir nueva funcionalidad. Obliga a comprender el sistema en profundidad, a identificar lo verdaderamente importante y a prescindir del resto. Bjarne Stroustrup, creador de C++, ha expresado esa misma idea:
