Ken Thompson: el secret per ser més productiu eliminant codi

Descobreix per què Ken Thompson va considerar el seu dia més productiu quan va eliminar 1.000 línies de codi. La clau és la simplicitat.
Ken Thompson explicant com augmentar la productivitat programant menys codi i evitant complicacions innecessàries
Ken Thompson explicant com augmentar la productivitat programant menys codi i evitant complicacions innecessàries

Imagina un dels genis fundacionals de la informàtica, Ken Thompson, celebrant que un dels seus dies més productius va ser quan va eliminar 1.000 línies de codi. No és ironia, és una filosofia que canvia la manera de programar.

Quan un llegendari creador com ell defensa que menys és més en programació, val la pena parar-hi atenció i plantejar-nos si estem valorant realment la productivitat al món del desenvolupament.

Qui és Ken Thompson i per què les seves idees importen

El creador d'Unix i la revolució de la simplicitat

Ken Thompson, juntament amb Dennis Ritchie, va crear Unix als anys seixanta als laboratoris Bell, un sistema que no només era un sistema operatiu, sinó una nova forma d'entendre la computació.

Unix es basa en eines petites i modulars que fan una sola cosa però molt bé, i que es poden combinar entre elles. Aquesta filosofia de construcció senzilla i eficient ha marcat la seva trajectòria i la de tota la indústria.

El llenguatge B i l'origen de Go

Thompson va dissenyar el llenguatge B, precursor directe del famós C desenvolupat per Ritchie. Aquesta evolució va establir les bases per a la programació de sistemes durant dècades.

Més tard, ja a Google, va co-crear Go, un llenguatge amb la mateixa obsessió per la claredat, la simplicitat i l'eficiència, deixant clar que en programació la complexitat no és aliada.

Per què eliminar codi és sovint més valuós que escriure'n

Els riscos de sumar línies sense control

Cada línia de codi nova és una oportunitat més per a errors, bugs i complicacions futures. Quan un projecte creix sense criteri, la seva «deute tècnica» es dispara i qualsevol canvi esdevé una aposta arriscada.

Eliminar codi redueix la superfície d'error, simplifica l'arquitectura i fa que els futurs canvis siguin més àgils i segurs. No és tornar enrere, és avançar amb més solidesa.

El criteri darrere de la simplificació

Treure codi exigeix entendre profundament el sistema, identificar què és realment necessari i tenir la valentia de prescindir del que sobra.

Aquesta decisió és més difícil que afegir funcionalitat nova, però és la que fa la diferència entre un codi clar i mantenible o un embolic impossible de gestionar.

La filosofia de Go i el llegat de Ken Thompson

Go, un llenguatge fet per a la claredat

Go va néixer per oferir una sintaxi escueta, un sistema de tipus directe i mecanismes de concurrència fàcils d'entendre, evitant la complexitat innecessària dels llenguatges com C++ o Java.

Tot el que no està al llenguatge és una complexitat que el programador no ha de gestionar, i això reflecteix perfectament la filosofia de Thompson.

El debat sobre la productivitat en programació

Molts encara mesuren la productivitat per la quantitat de línies escrites, ignorant que el cost real està en l'acumulació de codi difícil d'entendre i mantenir.

Ken Thompson ho va resumir: programar bé no és escriure més, sinó saber què no cal escriure. Un missatge que els millors enginyers de software practiquen des de fa dècades.

Aspecte Mesura per línies de codi Mesura per simplicitat
Productivitat Quantitat de codi escrit Codi funcionant i clar
Mantenibilitat Complicat per l'excés Fàcil d'entendre i canviar
Riscos Més bugs i errors Menys possibilitats d'error

La clau és reduir la complexitat per augmentar la qualitat.

La reflexió de Ken Thompson no és només una anècdota, sinó una guia per a tothom que vulgui millorar com a programador i com a equip.

Si ets desenvolupador, planteja't quin és el teu dia més productiu: escriure més o simplificar?

La realitat és que entendre quan eliminar codi i com fer-ho amb criteri és un dels veritables secrets per dominar el desenvolupament de software.