Hein?

By | May 6, 2008

Cá entre nós, estou achando Perl sensacional, mas dêem uma olhada no código abaixo, que acabei de fazer:

foreach $n (0..9999) {foreach ("AAA".."ZZZ") {printf "%s-%04d\n", $_, $n;}}

A sua pergunta no momento deve ser: “Que m* é essa??”.

Pois é. Este é o “problema” do Perl, na minha opinião. Qualquer mané (aka /me) com 2 dias de curso consegue fazer um código, que funciona, mas não faz o menor sentido pros demais habitantes do planeta.

Vamos refazer este código igual gente:

@numeros=(0..9999); # Numeros de 0 a 9999
@letras=("AAA".."ZZZ"); # Letras de AAA a ZZZ

$mostra_letras='%s'; # Lugar onde serao colocadas as letras
$mascara='%04d'; # Preenche os numeros menores que 1000 com zeros na esquerda

foreach $numero (@numeros) {
foreach $letra (@letras) {
printf "$mostra_letras-$mascara\n", $letra, $numero;
}
}

Voilá. Agora está limpo, legível e qualquer um que resolver gastar alguns segundos olhando pra ele sabe exatamente o que este script faz. Mesmo sem conhecer Perl.

Agora, se os dois tem exatamente o mesmo resultado, porquê raios alguém vai preferir fazer o primeiro? Um script assim é igual filho.

Eu fico puto da vida quando preciso dar manutenção em um script Perl (eu já fazia isso antes de começar a estudar Perl) e me deparo com um treco igual o do começo.

A vontade é de virar pro desenvolvedor e falar: Amigão, qual o seu problema? Você quer provar que você é melhor que os outros ou coisa assim?

Meus scripts bash são tão extensamente documentados que não raramente tem o dobro de documentação do que linha de código. Tudo bem espaçado, identado e o caramba. Ninguém tem obrigação de saber o que estava na minha cabeça na hora que fiz o script. E pior: Não quero ninguém me enxendo o saco quando precisar dar manutenção nele. Quero que o nego abra, entenda, modifique e suba pro CVS. Mais nada.

Mas o post é só pra dizer que não tenho raiva do Perl, mas dos programadores que se acham.

3 thoughts on “Hein?

  1. Silvio Gissi

    Me disseram uma vez e eu tenho que concordar: Se tiver que implementar uma feature nova na linguagem e houver 5 sintaxes diferentes possíveis, o pessoal do Python implementa a que acha melhor, o pessoal do Perl implementa as cinco.

    Não esquenta muito sobre códigos porcos, isso acontece em qualquer linguagem 😉

  2. X

    Depende para quem ou o que voce esta programando. Pra mim a sintaxe em uma linha ta clara. Poderia acrescentar um comentario explicando tudo. Esta seboso o aninhamento de codigo mas nao precisaria alocar estas variaveis todas do codigo extendido.

    O que me irrita em codigo Perl eh ver uma expressao regular cavalar sem nenhum comentario.

    Em Python tambem da pra fazer uma coisa de varias formas. Inclusive usando mais de um paradigma. E todos ficam mais organizados por causa da identacao forcada. Python pode ateh se comportar como linguagem funcional. E da pra aninhar milhares de coisas numa linha soh com recursao e tudo.

  3. Deborah

    Eri, juro que eu venho me esforçando, mas já tem umas duas semanas que os seus posts têm sido em grego…

    Beijos!

Comments are closed.