No data was found

Menos es más: la lección de Ken Thompson sobre productividad en programación

Una de las jornadas laborales más fructíferas de Ken Thompson fue aquella en la que suprimió alrededor de 1.000 líneas de código. Esta declaración, que a simple vista podría parecer contradictoria, condensa la filosofía que el co-creador de Unix, diseñador del lenguaje B y codesarrollador de Go ha aplicado durante más de cinco décadas construyendo algunas de las herramientas más trascendentales de la informática actual: programar de manera adecuada no implica redactar más instrucciones, sino tener la certeza de qué exactamente es prescindible.

¿Quién es Ken Thompson y por qué su enfoque sobre el código es relevante?

Thompson comenzó a marcar un antes y un después en el software a finales de la década de 1960, cuando junto a Dennis Ritchie concibió Unix en los laboratorios Bell. Más allá de ser un sistema operativo, Unix representó una forma de concebir la computación: herramientas pequeñas, modulares, que ejecutan una sola función correctamente y que se articulan con otras para solventar desafíos más complejos.

Esa filosofía de construcción minimalista y eficiente se trasladó a cada iniciativa posterior. El lenguaje B, que Thompson diseñó como heredero de BCPL, sentó las bases para que Ritchie desarrollara C, el referente absoluto en la programación de sistemas durante décadas.

Thompson comenzó a dejar su huella en el software a finales de los años sesenta, cuando junto a Dennis Ritchie desarrolló Unix en los laboratorios Bell. 

(Imagen ilustrativa Infobae)

Años más tarde, ya en Google, Thompson colaboró en la creación de Go, un lenguaje ideado para sistemas de producción a gran escala que replica exactamente el mismo patrón: priorizar la claridad sobre la complejidad, y la simplicidad frente a la sofisticación.

¿Por qué eliminar líneas de código puede ser más valioso que añadirlas?

Cada línea de código que se incorpora es, a su vez, una línea que otra persona deberá leer, comprender y mantener. Constituye un punto adicional donde podría ocultarse un fallo, un lugar extra que debe ser cubierto con pruebas y una pieza más que dificulta las modificaciones venideras.

Cuando un sistema se expande sin un criterio definido, la deuda técnica se acumula de manera silenciosa hasta que cualquier cambio, por mínimo que sea, se transforma en una maniobra riesgosa.

Uno de los días más productivos de Ken Thompson fue cuando eliminó 1.000 líneas de código. 
(Imagen ilustrativa Infobae)

En este contexto, suprimir código no significa retroceder: implica reducir la superficie de posibles errores, simplificar la arquitectura y dejar el sistema en una condición donde las futuras adaptaciones sean más rápidas y seguras.

Esa operación demanda mayor criterio que agregar funcionalidades nuevas. Obliga a comprender el sistema en profundidad, identificar lo que verdaderamente importa y tener la lucidez para descartar el resto; una combinación de destrezas que no se cuantifica en líneas escritas, sino en decisiones tomadas.

De qué manera Go encarna la filosofía de Thompson

Go nació con la misma obsesión por la transparencia que distinguió a Unix y al lenguaje B. En comparación con lenguajes como C++ o Java, su sintaxis es deliberadamente concisa, su sistema de tipos es directo y sus mecanismos de concurrencia están diseñados para ser comprendidos, no solamente utilizados.

Cada línea de código añadida es también una línea que alguien tiene que leer, entender y mantener.
(Imagen ilustrativa Infobae)

Thompson y sus co-creadores aplicaron en Go exactamente esa lógica: cada elemento que no está presente en el lenguaje es una complejidad que el programador no tiene que gestionar. Lo que se omite no es una carencia, sino una decisión consciente.

Ese planteamiento choca de frente con una tendencia extendida en muchos equipos de desarrollo actuales, donde la productividad se sigue midiendo por la cantidad de líneas de código escritas.

Esas métricas ignoran el costo de lo que se acumula, el tiempo que otros equipos necesitan para entender ese código y la fragilidad que se genera en el sistema con el paso del tiempo.

Ken Thompson es un pionero de la informática, reconocido principalmente por cocrear el sistema operativo UNIX junto a Dennis Ritchie en los Laboratorios Bell en 1969.

 (Imagen Ilustrativa Infobae)

¿Qué es el desarrollo de software?

El desarrollo de software es el proceso mediante el cual se diseña, programa, prueba y mantiene un conjunto de instrucciones que le indican a una computadora qué hacer y cómo ejecutarlo. Esas instrucciones, escritas en lenguajes como Python, Java, C o Go, son las que dan vida a las aplicaciones, los sistemas operativos, las plataformas web y cualquier herramienta digital que se emplee en la rutina diaria.

El proceso no se limita a redactar código. Incluye etapas como el análisis de los requisitos del sistema, el diseño de la arquitectura, la programación, las pruebas para detectar errores y el mantenimiento continuo una vez que el software está en funcionamiento.

Cada una de esas fases exige decisiones técnicas y de criterio que determinan si el resultado final será un sistema robusto, eficiente y fácil de modificar, o uno frágil que acumula problemas con el paso del tiempo.

Fuente: Infobae

COMPARTIR ESTA NOTICIA

Facebook
Twitter

FACEBOOK

TWITTER