[Rio-pm] Perl estagnado? Morrendo? Absurdo!

Breno G. de Oliveira breno em clavis.com.br
Domingo Julho 30 10:58:10 PDT 2006


O mais interessante foi ver que o tema do post é tão absurdo que até
quem postou lá no noticiaslinux ficou com medo da repercussão ("Eu não
me arrisco a comentar o título desta notícia, apenas aponto os
links..."). Os comentários que sucederam o post também foram muito
positivos e mostram o quão fora da realidade o tema é. Títulos como esse
são comuns para chamar atenção para o verdadeiro tema nas entrelinhas,
que comento mais abaixo, e não devem ser levados a sério. Infelizmente,
para uma linguagem que já sofre tanto com o preconceito daqueles que não
a conhecem de fato, posts como esse acabam atrapalhando mais do que
ajudando.

Curioso também é que a notícia de hoje (30/7) no noticiaslinux fala
sobre como "se vingar" de usuários que roubam sua conexão wireless, e
ganha 1000 pontos quem adivinhar em que linguagem é feito o programa que
faz a "cola" entre o iptables e os binários que modificam as imagens ;)

--
Para os que leram o post original no PerlMonks, tenho alguns comentários:

Fica evidente que a principal crítica do "monge anônimo" no perlmonks é
em relação ao Perl 6. Nesse sentido, é muito triste mas eu concordo
quando ele diz que o desenvolvimento do Perl 6 está demorando muito, e
que isso desencanta programadores atuais e desestimula programadores em
potencial. Digo isso por experiência própria, pois passei pelo menos 1
ano "namorando" Perl de longe sem me arriscar a aprender por puro medo
de ter que reaprender tudo de novo quando o Perl 6 saísse a qualquer
momento. O problema é que o "qualquer momento" começou a demorar muito,
e uma busca um pouco mais aprofundada me fez perceber que não havia
previsão alguma de lançamento. Tenho certeza que muitos programadores
compartilharam minha frustração mas, ao contrário do que eu fiz,
acabaram se desinteressando e foram buscar linguagens alternativas. Já
diz o livro 5 do Tao da Programação:

"A well-used door needs no oil on its hinges.
A swift-flowing stream does not grow stagnant.
Neither sound nor thoughts can travel through a vacuum.
Software rots if not used.

These are great mysteries."

Uma linguagem de programação não tem propósito se ninguém a usa. Hoje,
milhões de pessoas usam Perl todo dia, e fazem muito bem. Mas toda a
expectativa pela revolucionária versão 6 certamente está prejudicando a
evolução da linguagem e a própria comunidade, que evita ou ao menos
pensa duas vezes antes de desenvolver algo grandioso para Perl 5, o que
é no mínimo preocupante.

Felizmente, pensando nisso, a comunidade está deixando bem claro que o
desenvolvimento do Perl 6 nunca implicou na estagnação do Perl 5, e que
este não só continua a evoluir como tem uma nova versão pronta pra sair
- essa sim muito em breve! A versão 5.10 do perl promete trazer
melhorias na engine de expressões regulares, variáveis de estado, novas
keywords opcionais, novos operadores, e novos módulos incorporados ao
seu núcleo.

Perl 6 virou o Santo Graal da comunidade, e embora isso traga muitos
benefícios, acaba produzindo também muitas desistências, ou pior: gente
que evita "entrar no barco" por simplesmente não saber para onde ele
está indo, ou onde vai aportar. A maioria das linguagens "da moda" de
hoje (leia-se Python/Ruby) seguem o paradigma de orientação a objetos
para resolver os mesmos problemas de sempre. Perl também faz OO, então
porque usar outra? Opiniões pessoais à parte, a OO do Perl pode ser bem
menos intuitiva do que a OO de outras linguagens - e do meu ponto de
vista esse é o principal atrativo do Ruby, que aliás possui fortes laços
históricos com Perl (quem já viu o Yukihiro Matsumoto - vulgo Matz,
criador do Ruby - dizer que Perl é o irmão mais velho do Ruby, sabe bem
disso). O contraponto é que linguagens tão específicas nascem e morrem
com uma facilidade muito maior do que linguagens adaptativas como o
Perl. Hoje, a moda é OO, e linguagens baseadas em OO estão à toda.
Amanhã a moda será outra, e essas linguagens vão rapidamente sumir do
mercado, dando espaço para outras novas linguagens baseadas em novos
paradigmas. Perl nunca foi "da moda", mas sempre esteve lá, e cumpriu
seu papel com perfeição. É "a calça jeans das linguagens de
programação(TM)". A estrutura do Perl permite uma adaptação rápida e
fácil (embora nem sempre tão bonita) a praticamente todo estilo de
programação. E quando não consegue, bom, os módulos "Inline" estão aí
para isso. Perl sempre foi a linguagem prática para extração,
manipulação e controle de informações, e continuará sendo a escolha de
todos os que tratam informação por um bom tempo.

---
Nossa, já falei demais, então vou ser bastante breve agora.
---

O outro ponto criticado pelo autor do post é que código feio é
encorajado pela comunidade. Embora ele cite um ponto muito verdadeiro em
seu argumento - que muitas pessoas fazendo programas em Perl não são
programadores de verdade e sim administradores ou hobistas que nunca
tiveram a educação necessária para produção de código modular, limpo,
fácil de manter ou simplemente bonito - ele está muito errado em achar
que códigos desse tipo sejam encorajados pela comunidade.

A comunidade encoraja que administradores, hobistas, entusiastas e
curiosos programem em Perl SIM, principalmente porque já conhecem o
poder e as facilidades que o Perl pode dar a essas pessoas. No entanto,
isso não quer dizer de forma alguma que a comunidade estimule a produção
de código "somente escrita".

Temos concursos de código obscuro e brincadeiras em geral, mas isso é
tudo diversão, parte da cultura de programadores de várias outras
linguagens (exceto, é claro, pelo JAPH) e presente apenas para ilustrar
o enorme poder que a linguagem proporciona. Se você consegue escrever
uma Wiki inteira em 3 linhas de Perl (tá bom, 4, se incluir o shebang)
não quer dizer que você DEVA escrever assim. As milhares de linhas de
documentação que vêm com o próprio perl, os diversos livros sobre a
linguagem (inclusive sobre boas práticas e design patterns), todos os
artigos espalhados pela Internet e todas as comunidades de
desenvolvedores Perl mostram (ou tentam mostrar) como garantir que seu
código possua todas as características importantes para um trabalho
profissional.

Perl está morrendo? Pelo contrário! Estamos enfrentando um momento de
renovação que gera muita ansiedade, especialmente devido ao tempo
demasiado longo - segundo opinião de muitos - em que o Perl 6 permanece
no casulo. Larry Wall e os desenvolvedores do perl nunca se importaram
muito com o mercado. Sua principal atenção é para com a linguagem, e por
isso eles não tinham pressa em 2000 e dificilmente terão pressa em 2006.
Eles querem acertar, e pela história é fácil prever que eles vão acertar.

Enquanto isso, continuamos com o Perl 5, que não vai a lugar algum.

[]s

breno

ps: dá pra passar o dia todo falando sobre isso, desculpem o email tão
longo ;)



João Gabriel wrote:
> O chato é que veio do PerlMonks...
>
>> João Coutinho wrote:
>> Monges,
>> 
>> Já viram isso: http://www.noticiaslinux.com.br/nl1153795603.html
>> 
>> Acho um absurdo divulgarem isso. Certamente não sabem o que estão
>> falando, e o pior é que a idéia vem de um post no perlmonks.com...
>> 
>> Acham que seria interessante o grupo se pronunciar?
>> 
>> [ ]'s,
>> 
>> João
>> perl -e 'print "Vida longa ao Perl!\n"'
>> _______________________________________________
>> Rio-pm mailing list
>> Rio-pm em pm.org
>> http://mail.pm.org/mailman/listinfo/rio-pm
>> 
> 


Mais detalhes sobre a lista de discussão Rio-pm