Éramos magos – um prefácio a Learning Perl (1993)

Perl como “mágico” e expressivo

  • Muitos se lembram do Perl como especialmente adequado à programação em “fluxo de consciência”: as ideias fluem diretamente para o código com pouca cerimônia.
  • Sua sintaxe flexível, sigilos e expressões regulares poderosas faziam com que parecesse uma extensão da mente do programador, especialmente para texto e código de cola.
  • Alguns ligam isso às suas raízes em linguística prática e à tolerância por contexto e ambiguidade, ao contrário de linguagens mais formalmente projetadas.

Produtividade vs. Manutenibilidade

  • Várias anedotas descrevem projetos Java pesados e fracassados sendo substituídos em semanas por pequenas equipes em Perl ou até por um único desenvolvedor.
  • Defensores argumentam que código ruim é um problema de pessoas, não de linguagem, e que Perl de alta qualidade e fácil de manter é possível com disciplina.
  • Críticos contrapõem que a expressividade da linguagem e seus muitos pontos frágeis incentivam ativamente “cowboy coding” e código que só o autor entende, especialmente em sistemas grandes e de longa duração.

Design da linguagem e segurança

  • Fãs destacam suporte precoce e forte a testes unitários, modos strict, modos de taint/safe e compatibilidade retroativa de longo prazo.
  • Outros criticam OO improvisado, tratamento de erros desajeitado, tratamento de sinais, falta de um grande REPL e o inchaço conceitual.

CPAN, ecossistema e proliferação de dependências

  • CPAN é elogiado como um ecossistema de pacotes nativo da internet, precoce e exemplar, com boa ferramenta, documentação e testes.
  • Há preocupação de que “there is more than one way to do it” leve a muitos módulos sobrepostos (múltiplos sistemas de OO, bibliotecas JSON, clientes HTTP) coexistindo em um único runtime e complicando dependências.

Perl vs. Python e outros

  • Alguns veem Perl e Python como muito semelhantes, mas otimizados de maneiras diferentes: Perl tenta fazer o computador se adaptar ao humano, Python o contrário.
  • O Perl é visto como melhor para one-liners concisos e processamento ad hoc de streams; o Python, como mais claro para sistemas maiores e equipes.
  • Entre os motivos citados para o declínio do Perl estão uma grande empresa da web padronizando em Python, a stack científica/de dados, e a confusão e o atraso em torno de Perl 6 / Raku.

Nicho atual, ubiquidade e legado

  • O Perl continua amplamente instalado em sistemas do tipo Unix e ainda é favorecido para scripting multiplataforma em que sed/awk ou shell diferem.
  • Vários comentaristas ainda usam Perl regularmente para scripts de pequeno a médio porte, mas veem poucas oportunidades greenfield.
  • Livros e revistas sobre Perl são lembrados como invulgarmente divertidos, opinativos e influentes nas carreiras de muitos programadores.