En marzo de 2016 ocurrió un suceso insólito que puso en evidencia la fragilidad de nuestra infraestructura digital: un sencillo y poco conocido paquete ‘open source’ compuesto de tan sólo 11 líneas en JavaScript, fue eliminado por su autor del repositorio NPM (una referencia para los programadores web de todo el mundo), y eso bastó para que buena parte del ecosistema de desarrollo web colapsara durante varias horas. ¿Cómo fue posible que algo tan pequeño tenga consecuencias tan enormes?
La historia del paquete left-pad lo explica todo. El paquete left-pad tenía una función muy simple: agregar caracteres a la izquierda de una cadena de texto para que alcanzara una longitud específica: por ejemplo, convertir el número ‘7’ en ‘007’, una tarea trivial que cualquier programador podría escribir en minutos.

Sin embargo, precisamente por su trivialidad, tenía sentido prescindir de reescribir las mismas 11 líneas una y otra vez, por lo que el paquete que las contenía fue ampliamente adoptado como dependencia en otros proyectos, muchos de ellos fundamentales en el ecosistema JavaScript: Babel, Webpack, React… entre muchos otros.
En la práctica, el correcto funcionamiento de millones de proyectos terminó dependiendo, directa o indirectamente, de este pequeño fragmento de código.
El detonante: una disputa por un nombre
Durante varias horas, amplios sectores del ecosistema de JavaScript quedaron paralizados. No es que las aplicaciones web dejaran de funcionar: pero nuevas instalaciones y despliegues fallaban, especialmente en entornos de integración continua (CI/CD). Y ‘NPM’ tuvo que reaccionar reinstaurando (de nuevo a espaldas de Koçulu) el paquete con el mismo nombre, algo que normalmente no está permitido, debido a la urgencia de la situación.
En definitiva, un episodio bastante movido que terminó generando todo un debate ético y técnico sobre la gobernanza del software libre.