Éramos magos – un prólogo a Learning Perl (1993)

Los primeros días de Perl se recuerdan como una especie de “brujería”, en la que la expresividad del lenguaje, el ecosistema CPAN y el potente procesamiento de texto lo hacían sentir como un puente casi telepático entre la idea y el código. Los comentaristas contraponen esa libertad creativa y esa velocidad —especialmente para one-liners, scripting y tareas intensivas en regex— con la reputación de Perl como lenguaje “de solo escritura”, su evolución desordenada y su asociación cultural con el cowboy coding, factores que, según muchos, empujaron a la industria y a la educación hacia lenguajes más rígidos y aptos para equipos como Python y Java. Hay un amplio acuerdo en que, aunque Perl ha perdido protagonismo, sigue destacando como una herramienta de sistemas ubicua y encarna ideas de diseño —desde el modo taint hasta la programación de orden superior— que siguen siendo influyentes y poco apreciadas.

Perl como “mágico” y expresivo

  • Muchos recuerdan Perl como especialmente adecuado para la programación en “stream of consciousness”: las ideas fluyen directamente al código con poca ceremonia.
  • Su sintaxis flexible, sigilos y potentes regex lo hacían sentir como una extensión de la mente del programador, especialmente para texto y código de pegamento.
  • Algunos vinculan esto a sus raíces en la lingüística práctica y su tolerancia al contexto y la ambigüedad, a diferencia de lenguajes diseñados de forma más formal.

Productividad vs. Mantenibilidad

  • Varias anécdotas describen proyectos Java fallidos y pesados, reemplazados en semanas por pequeños equipos de Perl o incluso por un solo desarrollador.
  • Sus defensores sostienen que el mal código es un problema de personas, no del lenguaje, y que es posible escribir Perl mantenible y de alta calidad con disciplina.
  • Los críticos replican que la expresividad del lenguaje y sus muchas aristas peligrosas fomentan activamente el “cowboy coding” y el código que solo se puede leer escribiéndolo, especialmente en sistemas grandes y de larga vida.

Diseño del lenguaje y seguridad

  • Los aficionados destacan el apoyo temprano y sólido a pruebas unitarias, modos estrictos, tainting/modos seguros y compatibilidad retroactiva a largo plazo.
  • Otros critican una orientación a objetos añadida de forma chapucera, el manejo torpe de errores, el manejo de señales, la falta de un gran REPL y la hinchazón conceptual.

CPAN, ecosistema y proliferación de dependencias

  • CPAN es elogiado como un ecosistema de paquetes nativo de Internet, temprano y ejemplar, con buena herramienta, documentación y pruebas.
  • Existe preocupación de que “hay más de una manera de hacerlo” lleve a muchos módulos solapados (múltiples sistemas OO, bibliotecas JSON, clientes HTTP) coexistiendo en un mismo runtime y complicando las dependencias.

Perl frente a Python y otros

  • Algunos ven Perl y Python como muy similares pero optimizados de forma distinta: Perl busca hacer que la computadora se adapte al humano, Python lo contrario.
  • Perl se considera mejor para one-liners concisos y procesamiento ad hoc de flujos; Python, más claro para sistemas y equipos grandes.
  • Entre las razones citadas para el declive de Perl están que una gran empresa web estandarizó en Python, el stack científico/de datos, y la confusión y el retraso alrededor de Perl 6 / Raku.

Nicho actual, ubicuidad y legado

  • Perl sigue ampliamente instalado en sistemas tipo Unix y aún se prefiere para scripting multiplataforma cuando sed/awk o shell difieren.
  • Varios comentaristas todavía usan Perl con regularidad para scripts pequeños y medianos, pero ven pocas oportunidades greenfield.
  • Los libros y revistas sobre Perl se recuerdan como inusualmente divertidos, opinativos e influyentes en las carreras de muchos programadores.