É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.