Jump to content
Rubemlrm

[Discussão]Perl nos dias de hoje

Recommended Posts

Rubemlrm

Ora bons dias,

Criei este tópico com o intuito de criar um tópico de discussão , para o pessoal discutir sobre o perl nos dias de hoje.E tentar perceber porque é que o perl parece não ter grande popularidade tendo em conta que é uma linguagem tão transversal e que se adapta a todos os projetos.

    Mas por algum motivo parece não ter tanta popularidade como outras linguagens de scripting exemplo python e coisas do género.É  por ser mais "fraca" ? Mais complicada ? Penso que não será disso , possivelmente é mais por falta de divulgação e esforço para a utilizar ainda mais.

  Sim eu sei que é uma linguagem mais orientada para o scripting e que nesta área mostra as suas mais valias , mas para websites tambem demonstra ser uma bom linguagem.

  Por isso que é que vocês acham que esteja a causar isto?

Nota Final:Muitas comparações que eu fiz foram feitas baseadas em certos gráficos e mesmo em pedidos de emprego que vi.

Share this post


Link to post
Share on other sites
pedrotuga

Há muito a cultura das modas, o perl já teve a sua. Neste momento não é muito hip.

Mas há que referir que uma coisa é que está na moda, outra é o que se usa silenciosamente em ambientes de produção empresariais sem grande alarido. O perl continua sem dúvida a ser utilizado.

Olhando para o python, em termos sintáticos é mais simplificado, mas sinceramente não sei até que ponto isso tem influência na popularidade. Linguagens como coffeescript, ruby ou scala têm sintaxes extensas e com muitos truques, no entanto as popularidade estão em constante crescendo.

No entanto, eu acredito que a simplicidade sintatica do python lhe dê mais longevidade do que as linguages que acabei de referir, um pouco à imagem com o que se passa com o java.

O python foi feito por um actual empregado do google, e durante algum tempo foi publicitado como a linguagem secreta de produtividade do Google, o que obviamente é uma forma romanceada de ver as coisas.

PERL é uma sigla para Practical Extraction and Reporting Language e para esse efeito continua sem dúvida nenhuma a ser a linguagem melhor. Se o teu trabalho é extrair dados de logs, criar relatórios, scripts de manutenção e instalação de software em servidores, é de longe a melhor escolha.

O que acho que pode confundir algumas pessoas é que em perl não existe referenciação implícita. Para um programador de C, isto não e novidade nenhuma. Mas para quem começa ou está habituado a java, python, etc. acredito que possa ser confuso ter que criar referências manualmente cada vez que se quer criar uma estrutura de dados.

Actualmente já há implementações de modelos de objectos (Moose) modernos. Pessoalmente nunca usei nada disso, pelo que não sei em que medida mitigam o 'problema' da falta de referenciação implícita.

Por último, a comunidade online não está tão activa como a de outras linguagens. Eu conheço pelo menos um projecto open source que mudou de perl para pyton por falta de suporte para bibliotecas perl em que dependia.

Share this post


Link to post
Share on other sites
Rubemlrm

@pedrotuga obrigado pelo teu contributo.Relativamente a história da criação do python desconhecia o que falaste.Mas por exemplo eu tive um pequenina passagem pelo python e achei aquilo "estranho" no sentido de organizaçao.Aquilo não parece tão organizado como o perl entre outros.

Apesar de tal como teres dito o perl ser o melhor na área empresarial acho que também tem enormes potencialidades em outras áreas.

Share this post


Link to post
Share on other sites
falco
  Sim eu sei que é uma linguagem mais orientada para o scripting e que nesta área mostra as suas mais valias , mas para websites tambem demonstra ser uma bom linguagem.

O PHP não é uma linguagem compilada e não é utilizada para sítios web? O Perl não foi antes do PHP a linguagem mais utilizada para sítios web dinâmicos (ao ponto de lhe chamarem: ducktape of the internet)?

Então porque é que raio estás a dizer que uma linguagem não compilada pode não servir, ou servir menos para sítios web, ou qualquer outra coisa?

Aliás no que diz respeito ao desenvolvimento para web há quem acredite que o Perl está cada vez melhor (http://blogs.perl.org/users/joel_berger/2012/01/perl-is-more-viable-for-web-development-than-ever.html) e eu acredito mesmo que é a melhor linguagem para o desenvolvimento web, tendo mais recursos e em alguns casos recursos muito superiores, por exemlpo: o mod_perl dá uma sova ao mod_php do Apache, tem suporte nativo no segundo servidor mais utilizado para alojar sites, o Nginx (mais nenhuma linguagem tem), tem o melhor suporte para UTF-8 (o encoding por omissão para XML), etc...

E não é só para isto para a web que o Perl é bom... Parsers? É com o Perl... Tenho diversas aplicações em Perl

a fazer parsing de ficheiros que têm dezenas de GB de tamanho, tenho aplicações a fazer operações sobre dados em bases de dados, tenho aplicações em Perl que são serviços de rede de vários tipos, até mesmo como um serviço de radius a responder a mais de 300 pedidos por segundo...

E não sou só eu (os clientes do meu empregador), a Amazon, a Cisco, a Opera, o SAPO, a Booking.com, a Zon Multimédia, a Sonae.com, etc...

O único ponto em que acho que os recursos disponíveis para Perl não são tão bons como deviam é na área do multimédia (manipulação de vídeo e audio, porque em imagens estáticas está bem servido).

  Por isso que é que vocês acham que esteja a causar isto?

Já aqui disseram modas e concordo que é um dos factores, mas não é só, a ignorância sobre as capacidades do Perl do seu eco-sistema também. Mas não tudo é culpa dos outros, durante alguns anos (já relativamente distantes) o desenvolvimento core do Perl abrandou bastante e isso deu a ideia de que a linguagem estaria a morrer.

Eu sou um programador de Perl e quase não passo um dia de trabalho sem criar umas boas dezenas (algumas centenas) de linhas de código em Perl. Não faço só isso, mas definitivamente é uma linguagem que ainda é usada, mas é mais discreta que as outras...

Por último, a comunidade online não está tão activa como a de outras linguagens. Eu conheço pelo menos um projecto open source que mudou de perl para pyton por falta de suporte para bibliotecas perl em que dependia.

Isso não é verdade, a comunidade é muito activa, apenas é mais pequena e muito auto-centrada (tem os seus sítios e tende a ficar só por lá)...

Esse projecto pode ter feito essa mudança, se o fez, é porque preferiu não a suportar esses módulos...

Há alguns modulos de Perl que são orfãos, a equipa do CPAN procura activamente resolver isso, procurando pessoas que possam estar interessadas em manter e desenvolver esses módulos (em quantas comunidades de outras linguagens se faz isso?), mas normalmente módulos abandonados são módulos que a comunidade não gosta (a comunidade de Perl é bastante exigente e experiente), eles podiam ter mudado de módulos (é raro haver apenas um módulo em Perl para fazer o que quer que seja) e não de linguagem...

Provavelmente o verdadeiro problema deles, foi que escolheram mal os módulos (acontece), mas a comunidade de Perl procura activamente facilitar a vida dos programadores a escolher publicando muita documentação: livros, apresentações, cursos, recomendações, sites próprios com pontuações e comentários e revistas a modulos. Mais ainda procura integrar isto tudo em ferramentas fáceis de utilizar.

O esforço da comunidade em divulgar conhecimento não se fica pela documentação:

* os Perl Mongers estão nas principais cidades do mundo e reunem-se com alguma frequência;

* é também comum em cada país haver um workshop anual;;

* haver uma conferência internacional anual por continente, sendo que a esses eventos vão sempre os programadores do Perl e muitas outras referências da comunidade o que permite divulgar uma grande quantidade de bom conhecimento entre a comunidade;

* claro muitas vezes estes "gurus" da comunidade viajam e dão cursos e palestras mesmo fora desses eventos...

Por cá  só no o ano passado tivemos cá o Damian Conway (pela terceira vez) a fazer uma apresentação sobre linguagens de programação (sobre como devemos aprender com todas elas) e a dar formações de Perl e Vim para o pessoal do SAPO, o brian d foy (no Portuguese Perl Workshop) e este ano já está anunciado para Abril outro curso do Damian Conway...

Também temos por cá algumas das referências mundiais da comunidade de Perl como o: José Castro (antigo comunity leader da Perl Foundation e a quem foi atribuído um Camel Award), o Alberto Simões, o Nuno "Smash" Carvalho, etc...

Share this post


Link to post
Share on other sites
pedrotuga
Esse projecto pode ter feito essa mudança, se o fez, é porque preferiu não a suportar esses módulos...

Referia-me em concreto ao zim ( http://zim-wiki.org/ )

Inicialmente era escrito em perl, mas após alguma frustração com a falta de suporte por parte da comunidade em perl-gtk, o autor decidiu experimentar criar um branch python e durante quatro meses ver no que dava.

Ao fim dos quatro meses, o resultado era satisfatório, e tinha conseguido, com a ajuda da comunidade, resolver muitos problemas relacionados com o gui que no branch the perl estavam pendentes.

Num à parte: dêm uma olhadela no zim, é um software magnifico para tirar notas e escrever documentação.

E não é só para isto para a web que o Perl é bom... Parsers? É com o Perl... Tenho diversas aplicações em Perl

a fazer parsing de ficheiros que têm dezenas de GB de tamanho, tenho aplicações a fazer operações sobre dados em bases de dados, tenho aplicações em Perl que são serviços de rede de vários tipos, até mesmo como um serviço de radius a responder a mais de 300 pedidos por segundo...

Enquanto isto ainda é verdade, principalmente para parsing mais ad-hoc, outras linguagens já têm feitos grandes progressos nesse sentido e podem mesmo deixar o perl para trás mesmo nesse campo. Estou a falar em particular de Scala e Ruby.

dois links interessantes para quem gosta de parsers:

http://www.codecommit.com/blog/scala/the-magic-behind-parser-combinators

http://www.complang.org/ragel/

Ok, escrever um compilador de state machines como o ragel, é uma tarefa mais ou menos ao alcance de qualquer linguagem. Mas ainda assim, o ragel está escrito e pronto a usar em produção.

Mas os parser combinators do Scala são o sonho molhado de qualquer hacker de parsers.

Share this post


Link to post
Share on other sites
KTachyon

Na comparação web, acho mais interessante ver um Python vs Perl que um PHP vs Perl. Penso que os benchmarks seriam muito menos one-sided. Por outro lado, o footprint do Python é geralmente bastante mais reduzido que o de Perl, o que influencia outros factores como a manutenção dos sistemas.

Mas penso que o "problema" é o facto de que o mercado estar a ser sobrelotado de pessoas que sabem programar um conjunto de linguagens de programação que são consideradas de fácil aprendizagem e que ocupam de tal maneira o "espaço" que não permitem às outras linguagens obter uma visibilidade decente. Isto não torna o Perl numa má linguagem, muito pelo contrário. O facto de não ser uma linguagem considerada fácil pode implicar que as pessoas que a estudem com objectivos profissionais sejam mais expostas a conceitos e boas práticas que um programador de PHP, que pode nunca sequer vir a saber da existência de alguns/algumas durante toda a sua vida profissional (é bastante provável encontrar alguém que diga ser programador de PHP, mas cuja qualidade técnica não seja, de todo, adequada).

Entre outras coisas, existem determinadas linguagens que têm algumas facilidades que podem levar a que os programadores recorram a más práticas (correcções coladas com cuspo) muito mais regularmente que outras, empancando projectos com maior regularidade que com linguagens que permitam visualizar problemas arquitecturais que possam aparecer durante o processo de desenvolvimento.

Desenvolver software não é apenas bater código e implica muitas vezes um processo de planeamento cujo detalhe dependerá da experiência da equipa de desenvolvimento e da complexidade do projecto a ser desenvolvido. A escolha da linguagem de programação e/ou framework(s) depende muito desse planeamento e dessa experiência. Para além disso, muitos projectos de software utilizam modelos de desenvolvimento iterativos, onde há mudanças de requisitos regulares e pedidos de novas funcionalidades que podem obrigar a alterações bastante profundas em projectos que estejam mal estruturados.


“There are two ways of constructing a software design: One way is to make it so simple that there are obviously no deficiencies, and the other way is to make it so complicated that there are no obvious deficiencies. The first method is far more difficult.”

-- Tony Hoare

Share this post


Link to post
Share on other sites
Rubemlrm

@falco não percebeste o que quis dizer.Eu gosto de programar em perl(apesar de ainda não perceber muito) e foi das poucas linguagens que me deu piada aprender porque via a utilidade daquilo em campo.Relativamente a parte que referi do web eu sei que existem websites com base de perl e tenho de certa forma pena de não haverem mais sites a fazerem isso.Nunca pos em causa da capacidade do perl em relação a outras.Mas sim a utilização do perl em sites em comparação com PHP para sites.

Share this post


Link to post
Share on other sites
falco
Enquanto isto ainda é verdade, principalmente para parsing mais ad-hoc, outras linguagens já têm feitos grandes progressos nesse sentido e podem mesmo deixar o perl para trás mesmo nesse campo. Estou a falar em particular de Scala e Ruby.

Não! É verdade, para muito mais do que parsing ad-hoc!!!

Pois, mas o pessoal do Perl também não tem estado parado:

http://www.jeffreykegler.com/marpa

Ruben, eu entendi perfeitamente o que disseste. Só que passo-me de chegar a colocar essa hipótese, porque o mais provável seria que não houvesse aqui ninguém para negar isso e quem viesse ver sem conhecer a realidade, pensaria que era verdade...

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.