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

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.