Perl: el cinta americana de Internet — historia de un lenguaje que se niega a morir

Perl lleva casi 40 años sosteniendo Internet. Descubre la historia del lenguaje creado por Larry Wall, su apogeo con la web en los 90, y por qué sigue vivo en Craigslist y Booking.com.

Perl: el cinta americana de Internet — historia del lenguaje que se niega a morir

Hero image: Perl logo sobre un terminal CRT de los años 80, iluminación cinematográfica
Hero image: Perl logo sobre un terminal CRT de los años 80, iluminación cinematográfica

El lenguaje que mueve una parte no trivial de la web se llama como una perla bíblica. Lo creó un lingüista que estudiaba cómo hablamos los humanos. Casi 40 años después, sigue corriendo en Craigslist y en Booking.com, procesando formularios en servidores que nadie se atreve a tocar. Esta es la historia de Perl, el lengua de programación que se negó a morir.

¿Qué es Perl?

Perl es un lenguaje de programación interpretado de alto nivel, creado por Larry Wall y publicado por primera vez el 18 de diciembre de 1987. Combina características de C, awk, sed y shell, y fue diseñado pensando en los lenguajes naturales: con irregularidades, contexto y múltiples formas de decir lo mismo.

Es famoso por su filosofía «There’s more than one way to do it» (hay más de una manera de hacerlo), pronunciado «Tim Toady» y conocido por las siglas TMTOWTDI. Esa postura lo convierte en la antítesis de Python.

Perl es, también, el ADN de la web en los años 90. La mayoría de los CGI que ejecutaron los primeros formularios de Internet estaban escritos en Perl. Y fue el precursor de los repositorios de paquetes modernos: CPAN (Comprehensive Perl Archive Network) es el primer repositorio de módulos de código abierto de la historia, precedente directo de PyPI, npm, Composer y Maven.

Orígenes: 1987, el nacimiento de un lenguaje modesto

Larry Wall, creador de Perl, en su entorno de trabajo de los años 80

Larry Wall, creador de Perl, en su entorno de trabajo de los años 80

Larry Arnold Wall nació el 27 de septiembre de 1954 en Los Ángeles. Se formó en Seattle Pacific University y luego cursó un posgrado en lingüística en la Universidad de California en Berkeley. No en informática. La disciplina que estudia cómo hablan los humanos terminó influyendo en cada decisión de diseño del lenguaje.

Antes de Perl, Wall ya había creado dos herramientas que aún hoy son fundamentales en cualquier sistema Unix:

  • rn, un lector de news de Usenet que fue estándar en los 80.
  • patch, la herramienta para distribuir cambios en código fuente. Si alguna vez has parcheado un kernel de Linux, has usado su código.

Wall también ganó dos veces el International Obfuscated C Code Contest, el concurso de programación deliberadamente críptica. Eso explica el estilo de Perl: feo en la superficie, poderoso en las manos adecuadas.

El problema que Perl resolvió

En los años 80, los administradores de Unix encadenaban awk, sed, sh, grep, cut y paste para tareas medianamente complejas. Funcionaba, pero era frágil. Wall quiso un solo lenguaje que sirviera para scripts de sistema, manipulación de texto y generación de reportes. Con expresiones regulares de primera clase y estructuras de datos asociativas.

El 18 de diciembre de 1987, Wall publicó Perl 1.0 en un grupo de news de Usenet llamado comp.sources.misc. Sin web, sin repositorio, sin presentación. Un mensaje. Quien lo quisiera, lo descargaba y lo compilaba.

El nombre bíblico

El lenguaje se llama Perl porque Wall quiso llamarlo Pearl (perla), pero el nombre ya estaba cogido por otro lenguaje llamado PEARL. Quitó la «a» y quedó Perl. Una referencia bíblica: la «perla de gran precio» del Evangelio de Mateo, capítulo 13, versículo 46. Hay una función interna en Perl llamada bless, también vocabulario bíblico. Wall es chrétien practicante, miembro de la Church of the Nazarene, y nunca ha escondido esa influencia.

El acrónimo canónico es Practical Extraction and Report Language. Pero Wall siempre ha preferido el autoirónico Pathologically Eclectic Rubbish Lister (lista de basura patológicamente ecléctica). Aparece en la página de manual del propio Perl. Es la ironía fundacional del lenguaje.

Filosofía: TMTOWTDI y el primer lenguaje postmoderno

El eslogan de Perl es «There’s more than one way to do it» (hay más de una manera de hacerlo). Es la contraposición directa a la filosofía de Python, que aboga por una, y preferiblemente solo una, manera obvia de hacerlo. Perl proclamaba caos productivo.

Wall justificó el caos en una charla de 1997 titulada «Perl, the First Postmodern Computer Language» (Perl, el primer lenguaje de programación postmoderno). Mezclar el caos, las múltiples maneras, con control pragmático. Citó al paleontólogo Stephen Jay Gould para defender que un potencial evolutivo para respuesta creativa requiere atributos usualmente desvalorizados: descuido, potencial amplio, rareza, impredecibilidad y redundancia masiva.

Y dejó una de las frases más citadas de la historia de la programación: «No quiero que Perl sea bello. Quiero que TÚ escribas programas bellos en Perl». La responsabilidad de la belleza es del programador, no del lenguaje.

Las tres virtudes del programador Perl

Definidas por Wall en el prefacio del Camel Book (1991):

1. Pereza: la cualidad que te hace escribir programas que ahorren esfuerzo (a ti y a otros), y documentarlos para no responder preguntas.
2. Impaciencia: la ira que sientes cuando la computadora es perezosa. Te hace anticipar necesidades.
3. Hubris (orgullo): la cualidad que te hace escribir programas que otros no criticarán.

El auge con la web (1993-2000): Perl gana Internet

En 1993, en la Universidad de Illinois, un servidor web llamado NCSA HTTPd implementó una tecnología nueva: CGI (Common Gateway Interface). CGI permitía, por primera vez, generar páginas web dinámicas en lugar de servir solo HTML estático. La especificación la había escrito Rob McCool.

Perl ganó la web. No por una estrategia. Por una combinación de circunstancias:

  • Estaba en todos los Unix donde corrían Apache y NCSA.
  • Procesaba formularios sin esfuerzo.
  • Las expresiones regulares simplificaban parsear HTML y datos URL-encoded.
  • Una sola persona podía escribir un CGI completo en una tarde.

A mediados de los 90, Lincoln Stein creó CGI.pm, el módulo que estandarizó el manejo de formularios, cookies y subida de archivos. Incluido por defecto en Perl 5.004 (mayo 1997). Cualquier programador Perl tenía acceso a él.

En esa época se formó la pila LAMP (Linux, Apache, MySQL, Perl, PHP o Python). Perl fue la primera «P» en reinar. Los sitios enormes que corrieron sobre Perl incluyen:

  • Craigslist (1995), sigue funcionando sobre Perl masivo.
  • Slashdot (1997), el «News for Nerds» original, escrito en Perl/Slash.
  • LiveJournal (1999), uno de los primeros sistemas de blogging a escala.
  • IMDb (originalmente).
  • Booking.com, que sigue usando Perl extensivamente en su backend.

La cita más repetida sobre Perl es: «Perl es el cinta americana de Internet. Es feo, oculta lo que hay debajo, pero mantiene todo junto». La autoría se disputa entre Randal Schwartz y Tom Christiansen, pero capturó una verdad: Perl era la herramienta que mantenía unida la web en pañales.

CPAN: el primer repositorio de módulos de la historia

Biblioteca sin fin de código fuente: visualización de CPAN, el primer repositorio de código abierto

Biblioteca sin fin de código fuente: visualización de CPAN, el primer repositorio de código abierto

En 1993, un finlandés llamado Jarkko Hietaniemi tuvo una idea. Inspirado en CTAN (el archivo de paquetes de TeX), creó CPAN, el Comprehensive Perl Archive Network. Online desde octubre de 1995.

CPAN es el primer repositorio de módulos de código abierto de la historia. Precedente directo de:

  • PyPI (Python, 2003)
  • RubyGems (Ruby, 2004)
  • npm (Node.js, 2010)
  • Composer (PHP, 2012)
  • Maven (Java, 2002)

Todos vinieron después. CPAN fue el primero.

Las cifras, a diciembre de 2022, son estas:

  • Más de 211.850 módulos en 43.865 distribuciones.
  • Más de 14.324 autores.
  • 245 mirrors en más de 60 países.
  • ~36 GB por mirror completo.

El sistema técnico es notable. Los autores suben módulos a través de PAUSE (Perl Authors Upload Server). Hay un ejército de voluntarios, los CPAN Testers, que prueban cada subida en distintos sistemas operativos y versiones de Perl. BackPAN retiene incluso los módulos eliminados. GitPAN da el historial completo.

El declive (2000-2010): Perl pierde la web

Perl perdió la web. No de golpe. Poco a poco.

  • PHP (1995): Rasmus Lerdorf lo creó como herramienta personal para su web. PHP estaba específicamente diseñado para web. Se podía embeber directamente en HTML; Perl necesitaba scripts separados. Los proveedores de hosting adoptaron PHP masivamente.
  • Ruby on Rails (2004): «convention over configuration». Las startups elegían Rails por productividad.
  • Django (2005): tomó la escena de CMS y aplicaciones medianas en Python.
  • Node.js (2009): JavaScript en el servidor unificó front y back. La generación que aprendió JS ya no quería aprender Perl.

El índice TIOBE lo cuenta. En los años 90 y principios de los 2000, Perl estaba en el top 5 mundial. En 2005-2010, empezó a bajar del top 10. En 2010-2020, cayó del top 15. En julio de 2020, Perl cayó fuera del top 20 del TIOBE por primera vez en su historia. La tendencia no se ha revertido: posiciones 15 a 25 según el momento del año.

Wall, en una entrevista con Slashdot en 2002, lo dijo con claridad: «Perl no compite con Python en sintaxis. Compite con la idea de que solo hay una manera de hacer las cosas».

Perl 6 / Raku: la promesa de 15 años

En el año 2000, la comunidad Perl tomó una decisión ambiciosa: rehacer Perl desde cero. El proyecto se llamó Perl 6. La idea era conservar la filosofía de Perl, las múltiples maneras, la flexibilidad, pero rehacer la sintaxis, mejorar Unicode, modernizar la orientación a objetos, añadir paralelismo.

Larry Wall sintetizó más de 300 RFCs de la comunidad en documentos de diseño llamados Apocalipsis (Apocalypses) y luego Sinopsis (Synopsis). El primer Apocalipsis se publicó en diciembre de 2001.

El problema es que tomó quince años. Quince. Múltiples implementaciones compitieron: Pugs (en Haskell, por Audrey Tang, 2005), Rakudo, Niecza. La broma interna, repetida año tras año, era que Perl 6 se publicaría para la Navidad de cada año, hasta que algún día llegara.

El 25 de diciembre de 2015, casi cinco lustros después del anuncio original, se publicó la primera versión estable de Rakudo Star. Y en octubre de 2019, Perl 6 se renombró oficialmente a Raku, separándose de Perl 5. Ambos lenguajes siguen vivos con comunidades independientes.

El caso Perl 6 es uno de los ejemplos más largos de un lenguaje de programación prometiendo reinventarse y tardando 15 años en entregar. Dividió a la comunidad Perl durante una década. Mientras Perl 6 estaba en desarrollo, Python y Ruby tomaron el espacio mental y de mercado que Perl podría haber ocupado.

Perl moderno: feo, orgulloso, vivo

Perl sigue vivo en servidores modernos: cPanel, Webmin, Booking.com, pipelines de bioinformática

Perl sigue vivo en servidores modernos: cPanel, Webmin, Booking.com, pipelines de bioinformática

Perl 5, mientras tanto, siguió evolucionando. Lanzamientos anuales desde 2010. Perl 5.38 (julio de 2023) trajo mejoras en el motor de regex, en rendimiento y en signatures. Las versiones activas hoy (5.34, 5.36, 5.38, 5.40) todas reciben parches de seguridad.

Los frameworks web modernos para Perl incluyen:

  • Catalyst (2005): framework MVC pesado, base de la mayoría de proyectos Perl serios.
  • Mojolicious (2010): sucesora espiritual de Catalyst, con WebSocket incluido.
  • Dancer (2010): port Perl del Sinatra de Ruby.
  • PSGI/Plack (2009): estándar de servidor de aplicaciones Perl.

Lo más sorprendente es dónde se sigue usando Perl de verdad:

  • cPanel (1996): el panel de control de hosting más usado del mundo, escrito en Perl.
  • Webmin (1997): GUI web para administración Unix/Linux. Más de un millón de instalaciones al año.
  • Booking.com: Perl para infraestructura crítica.
  • Bioinformática: BioPerl y muchos pipelines genómicos. El genoma humano se procesó originalmente con scripts Perl.
  • Sistemas de tickets y bugtrackers: RT (Request Tracker), Bugzilla — Perl clásico.

El 24 de junio de 2020 se anunció Perl 7 como sucesor «moderno» de Perl 5. Plan cancelado por miedo a romper la compatibilidad con los miles de módulos CPAN existentes. En la práctica, Perl 5 sigue evolucionando gradualmente, sin rupturas. Que es exactamente lo que siempre ha hecho.

Larry Wall sigue activo

Larry Wall, nacido en 1954, sigue activo en la comunidad Perl. Treinta y ocho años después de crear Perl, sigue siendo la misma persona que respondió en comp.sources.misc en diciembre de 1987. Tiene 71 años. Y sigue manteniendo su lenguaje.

¿Perl sigue valiendo la pena en 2026?

Perl no es la elección obvia para un proyecto nuevo en 2026. Pero sigue siendo útil para:

  • Mantenimiento de código legacy en grandes infraestructuras (cPanel, Webmin, sistemas internos).
  • Procesamiento de texto y logs donde las expresiones regulares de Perl siguen siendo las más potentes.
  • Bioinformática y pipelines de datos donde BioPerl y los módulos CPAN existentes tienen décadas de validación.
  • Sistemas de tickets y bugtrackers como RT y Bugzilla.
  • Automatización de sysadmin en entornos Unix donde Perl sigue preinstalado.

Si tienes que aprender un lenguaje nuevo hoy, probablemente no sea Perl. Pero si te encuentras con un script Perl de 2003 que sigue procesando tus transacciones, no lo toques. Lleva 40 años manteniéndose unido. Probablemente sabe más que tu framework favorito.

Preguntas frecuentes sobre Perl

¿Qué significa Perl?

Perl son las siglas de Practical Extraction and Report Language. Larry Wall siempre ha preferido el acrónimo autoirónico Pathologically Eclectic Rubbish Lister (lista de basura patológicamente ecléctica).

¿Quién creó Perl?

Larry Wall, lingüista y programador estadounidense, publicó la primera versión de Perl el 18 de diciembre de 1987.

¿Perl está muerto?

No. Perl cayó del top 20 del TIOBE en 2020, pero sigue activo en infrastructura crítica: cPanel, Webmin, Booking.com, bioinformática, sistemas legacy. CPAN cuenta con más de 200.000 módulos y sigue siendo mantenido por voluntarios.

¿Cuál es la diferencia entre Perl y Raku?

Raku (antes Perl 6) es un lenguaje hermano, renombrado en 2019. Conserva la filosofía de Perl pero tiene sintaxis y semántica diferentes. Ambos lenguajes son mantenidos por comunidades independientes.

¿Perl es difícil de aprender?

Perl tiene fama de «write-only language» por su sintaxis flexible. La curva de aprendizaje es moderada. La documentación oficial (perldoc) es exhaustiva. Para principiantes, el Llama Book (Learning Perl) es el recurso canónico.

¿Qué empresas usan Perl?

Booking.com, Craigslist, Slashdot, IMDb (originalmente), cPanel, Webmin, además de bancos, aseguradoras y sistemas bioinformáticos.

Recursos para profundizar

  • Camel Book (Programming Perl, 1991) — Larry Wall, Randal Schwartz, Tom Christiansen. La biblia.
  • Llama Book (Learning Perl, 1993) — Randal Schwartz. La introducción.
  • perl.org — Documentación oficial y noticias.
  • MetaCPAN.org — Buscador de módulos CPAN.
  • The Perl Foundation — perlfoundation.org.
  • Wikipedia: Perl — Artículo enciclopédico completo.

Conclusión

Perl fue diseñado como la «lista de basura patológicamente ecléctica». Casi 40 años después, sigue ahí. Feo, orgulloso, vivo. Cuando pagues con tarjeta, reserves un hotel en Booking, leas un paper de bioinformática o configures un servidor con cPanel, habrá un script Perl haciendo algo. Lo que diseñó un chrétien practicante para que los administradores de Unix sufrieran menos, terminó sosteniendo una parte no trivial de la infraestructura digital moderna.

Perl nos enseñó que los lenguajes de programación no tienen por qué ser bellos. Tienen que funcionar. Y a veces, funcionar significa seguir vivos 40 años después, contra todo pronóstico.


¿Te ha gustado esta historia? Compártela con alguien que todavía piense que Perl es cosa del pasado. Y suscríbete al blog para más historias de nostalgia informática.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *