O Perl ainda é uma linguagem viável e útil? [fechadas]

77

Eu sei que pode ter sido perguntado antes, mas aqui não vai nada ...

Perl ainda é algo que seria considerado útil? Se alguém fosse um novo programador (completamente novo em programação ou apenas alguns meses / anos de experiência), Perl seria algo a ser considerado interessante de aprender?

O Perl ainda é usado com frequência? Ainda é popular?

Ou o Perl está morrendo em comparação com linguagens como Python, Ruby, PHP, ASP.NET etc.?

Basicamente, tudo se resume a isso:

  • Ainda é usado / ainda é usado com frequência? Se sim, está morrendo? Se não, fará um retorno?
  • É algo que valeria a pena aprender?
  • Como ele se compara na demanda a idiomas como Python, tanto em popularidade quanto em usabilidade / viabilidade? Idiomas como Python ou Ruby podem ser considerados substitutos do Perl?

Além disso, as versões mais recentes do Perl realmente trarão uma grande melhoria para a comunidade Perl, e talvez trarão o Perl de volta ao centro do palco em comparação com outros idiomas?

EDITAR:

Ok, suponho que aqui está uma pergunta melhor reformulada:

O Perl ainda está crescendo ou está "morrendo"? Ainda é um idioma que vale a pena aprender e usar? Em quais projetos ele realmente "brilha" em comparação com outros idiomas? O que faz do Perl um idioma para escolher? Essencialmente: o Perl está ficando obsoleto em comparação com outros idiomas? Se sim, você espera que isso mude ou continue?

E obrigado a todos que responderam até agora, a discussão foi realmente interessante!

Bob
fonte
12
Não vamos perder a perspectiva, de acordo com o TIOBE, ele ainda está entre os dez primeiros, à frente do Ruby e até do JavaScript.
Daniel

Respostas:

60

Primeiro de tudo, é sempre melhor desambiguar .

As empresas falam sobre o Perl 5 ao falar sobre o Perl, mas em uma região longínqua, além da ilha de reflexão profunda , a tribo de design por comitê ainda está cozinhando uma bolada pesada do Perl 6 (e está quase pronta, com um motor escrito em Haskell e alimentado pelas lágrimas dos deuses )

Ok, dito isso, para que o Perl 5 é usado hoje?

  • sistemas web herdados / intrawebs - alguns simplesmente não morrem

  • mineração de dados / análise estatística - o mecanismo perl regex, mesmo que um pouco desatualizado , ( PCRE, uma biblioteca desativada, o cobre de todas as formas possíveis e é o PHPmecanismo padrão ) ainda é bom para análises simples

  • Administração do sistema UNIX - O Perl sempre deve ser instalado no UNIX.
    Você pode contar com a disponibilidade imediata, mesmo no Mac OS X.

  • prototipagem de rede - muitos especialistas em redes principais aprenderam o Perl quando tudo isso estava acontecendo; e eles ainda fazem suas provas de conceito com ele.

  • segurança - muitos especialistas em segurança também precisam de prototipagem rápida . (e correções automáticas rápidas) O Perl pode cobrir isso.

A extensa coleção de CPAN é muito útil quando se lida com protótipos.
(As pilhas podem não estar incluídas, mas ainda estão ali, na prateleira )

Lembre-se das desvantagens :

  • O suporte a objetos no Perl é péssimo , você abençoa referências e faz coisas profanas em nome de objetos, depois se pergunta por que você teve todo o problema em primeiro lugar.
  • Ler o Perl de outras pessoas é mais do que uma habilidade, é ciência e também é doloroso .
  • Perl é bacana, faz você pensar bacana, faz você se sentir bacana, você se torna uma estrela do rock da programação . Agora, pense em levantar e ir trabalhar em um escritório cheio de estrelas do rock : é um "barco que balança" com força. Espere flutuações selvagens.
ZJR
fonte
19
O @WorldEngineer concordou, mas o pior é que, vindo do perl, Ruby não se sente nada bacana : apenas parece uma versão estúpida e com baixo desempenho do perl.
ZJR 24/10/11
12
Eu só vejo uma desvantagem lá. Pessoalmente, eu gosto de abençoar minhas referências, mas, para quem não gosta, existe o Moose (no CPAN), que é um sistema de objetos suficientemente bom para que outras línguas o copiem. E, embora eu adore a astúcia, ainda não conheci tantas estrelas do rock obcecadas no mundo Perl. Existem desenvolvedores muito mais sérios e disciplinados (que gostam de curtir o tempo livre) na comunidade Perl do que os rockstars. (I explicitamente negar ser um programador de rockstar e até menos que as mulheres começam a jogar suas calcinhas para mim enquanto eu escrever código.)
Dave Sherohman
3
@johannes ainda tem que lidar com a lei de Van Rossum: "Whenever you find a python executable preinstalled, it's the wrong version"Corolário:"sometimes the right version is available, but it has the wrong name"
ZJR 8/12/12
2
Perl também ainda é bastante grande no espaço da bioinformática.
amigos estão dizendo sobre dietbuddha
3
+1 para administração do sistema. Eu nunca vi um sistema operacional baseado em unix não incluir perl. Eu já vi isso em alguns sistemas operacionais Linux embarcados que usavam o Busybox para suas
terras de usuários.
23

Na minha opinião, depois de trabalhar com o Perl novamente depois de alguns anos quase sem usá-lo, está melhor do que nunca. O Perl 5 tem muita grandiosidade no CPAN, até o OO pode ser feito agora. (Dê uma olhada no Modern Perl )

Perl 5 está longe de estar morto. Basta dar uma olhada em alguns sites Perl e CPAN e, no horizonte, existe uma linguagem totalmente nova - Perl 6.

Existem muitos recursos na web, blogs e apresentações sobre por que não é ruim e por que tem uma má reputação que não merece - basta olhar para aqueles para entender.

Nornagest
fonte
7
Na minha opinião, o CPAN é ótimo se você precisar de uma roda de qualquer forma, mas menos ótimo se precisar de uma fábrica de automóveis.
@ ThorbjørnRavnAndersen O CPAN é ótimo se você precisar de uma roda de qualquer formato. O problema é que shape($wheel) == 'round' ? available_in_cpan($wheel) : false;não é um filtro válido.
Jason Lewis
Só porque o OO existe no Perl não significa que ele seja realmente bom.
precisa saber é o seguinte
22

A principal coisa que o Perl ainda tem a oferecer é o CPAN - existem tantos módulos pré-escritos que é muito fácil encontrar algo que você precisa.

Dito isto, eu não aprenderia Perl. Perl é uma ótima linguagem para pessoas que já a conhecem (como eu), mas Python parece ser (da perspectiva de quem está de fora) uma linguagem melhor para fazer o tipo de arquivo rápido e sujo de análise de arquivos e textos que Perl costumava ser o " idioma para "go-to" para.

Peter Mortensen
fonte
E você acha que isso dá vantagem a outras línguas? Ou isso apenas o iguala a outros idiomas. Por exemplo, a estrutura .NET também parece estar compactada com vários métodos e classes úteis.
Bob
6
@ Paul Tomblin - Essa é uma maneira bastante grosseira de colocar isso. "A principal coisa que o perl ainda tem para oferecer ..." <- A principal coisa que o C / C ++ tem para eles é que muito software ainda está escrito neles. Além disso, eles são lixo.
Rook
Concordou com Idigas, desde que você poderia dizer o mesmo sobre Java ter um monte de pacotes ...
Izkata
1
A questão não era "C ++ ou Java é uma boa linguagem". A questão era se o Perl ainda é viável. E há duas razões pelas quais ainda estou escrevendo meus aplicativos da Web em Perl: CPAN e tenho uma tonelada de código que já escrevi.
Paul Tomblin
7
Se eu estivesse começando agora, provavelmente usaria Python. Mas eu uso Perl porque sou bom em Perl.
Paul Tomblin
19

Quando eu decidi aprender Perl como minha primeira língua alguns anos atrás, havia vários fatores que orientaram minha decisão:

  • existe muito material de referência bom no idioma?
  • posso encontrar facilmente ajuda para minhas perguntas?
  • o idioma está em uso ativo por uma grande população diversificada?
  • existem projetos ativos que me ajudarão com meus objetivos?

Para mim, a resposta foi sim. Sou designer gráfico. Aprendi HTML e CSS anos atrás, mas precisava atualizar minhas habilidades depois que os clientes queriam mais de seus sites. Eu tinha usado vários frameworks php que me deram o bug para realmente aprender a programar. Fiz muita pesquisa e encontrei projetos bem suportados, como o Template Toolkit, bem como novos, como o Perl Dancer e o Mojolicious. A documentação que acompanha o Perl tem sido muito útil, assim como a biblioteca de publicações.

Eu achei as listas de correio do Perl bastante amigáveis ​​para iniciantes e ativas. No PerlMonks, pessoas de todo o mundo vêm com perguntas e respostas para uma ampla gama de aplicações. Existem vários sites de notícias, blogs e transmissões de Perl ativos. Esses recursos me ensinaram muito sobre Perl e programação.

Concedido, essa é a minha experiência. Não sei exatamente quantas pessoas fazem logon nesses sites, se inscrevem nas listas de correio ou criam seus aplicativos da Web, por exemplo, usando Perl. Também não posso comentar quanto melhor ou pior minha experiência teria sido se eu tivesse escolhido outro idioma para começar. Não duvido que tenha encontrado muitos dos mesmos aspectos positivos nas comunidades de outras línguas. Posso dizer que ainda estou feliz com a escolha que fiz.

luis.roca
fonte
Eu aprendi Perl como meu primeiro idioma em 1996 porque havia acabado de mudar para o Linux a partir do Windows para o meu sistema operacional principal. O Perl nunca foi uma excelente linguagem da Web (embora o PHP seja a pura destilação de todo o mal que o Perl tem a oferecer), mas é fantástico como um substituto para os scripts do bash. A questão surge quando as pessoas tentam fingir que existe uma bala de prata.
Jason Lewis
16

A popularidade de um idioma tem muito pouco a ver com sua viabilidade ou usabilidade. Perl ainda é uma linguagem muito utilizável. Sua reputação, merecida ou não, como hostil aos novatos acabou por significar que ninguém novo a aprenderia se pudesse ajudá-la. A única razão de eu não usá-lo mais é que ninguém mais conheço o usa mais.

Karl Bielefeldt
fonte
5
Portanto, a afirmação "A única razão pela qual eu não a uso mais é que ninguém mais a conheço mais" indica o fato de que a popularidade talvez tenha algo a ver com sua viabilidade ou usabilidade? Enfim, esse não é o ponto da minha pergunta, o que eu realmente quero saber, o Perl ainda é útil? Quando você o escolhe em outros idiomas (como em quando realmente brilha)?
Bob
1
Os idiomas existem como um meio de expressão para outras pessoas, dizendo que a popularidade de uma linguagem pelo valor que ela apresenta é infundada na minha opinião.
erros cometidos
4
Isso é muito baseado no ambiente ... Se você é um administrador de sistemas * nix, suas escolhas para realizar tarefas comuns se resumem a Perl vs. sed + awk + grep + bash ... e o Perl geralmente é mais fácil do que lembrar de 4 sintaxes para um script único.
Jason Lewis
12

Para o registro, eu tenho programado em Perl 5 por cerca de 15 anos, então sou um pouco tendencioso. Dito isto, eu realmente gosto de Perl. Não ouça os pessimistas e não pense que sua idade é de alguma forma um indicador de sua prateleira ao vivo. A melhor maneira de ver o Perl é vê-lo em comparação com outros idiomas:

  • PHP - PHP é uma linguagem de programação web muito boa; não me interpretem mal. Mas, é apenas uma linguagem de programação da web. Até aplicativos da Web precisam de seus cronjobs para limpar processos, e você precisa fazer algumas coisas estranhas para que isso aconteça. Não importa ter que escrever um script rápido para o administrador do UNIX ou analisar um arquivo de texto. Além disso, o PHP não possui CPAN.

  • Ruby - A linguagem é muito nova e "script kiddie" para o meu gosto. A única coisa que eu ouço sobre Ruby é Ruby on Rails. O Perl possui o Catalyst e o Dancer (como estruturas MVC), que são excelentes MVCs, mas não são a pedra angular da linguagem. Você não encontrará o "Ruby" como um requisito nas ofertas de emprego em breve (se houver). Além disso, Ruby não possui CPAN.

  • Python - Nas palavras de Larry Wall, Python é apenas óleo de cobra. Python se preocupa com espaços em branco e a última linguagem que usei que se preocupou com espaços em branco foi o BASIC. Além disso, como o BASIC, ele foi essencialmente projetado para ser um idioma para iniciantes fácil de usar. Finalmente, não há CPAN aqui.

  • Java - Java é uma linguagem filho problemática. O conceito era ter essa máquina virtual que roda em qualquer plataforma, mas devido à enorme popularidade da linguagem nos cursos universitários, você vê aplicativos Java em todos os lugares onde eles não deveriam estar. Por exemplo, aplicativos da web baseados em servidor interno não deveriam existir. É um servidor único com especificações que eles definem e é agrupado em uma VM separada com um espaço de memória limitado. Java está inchado e eles não têm CPAN.

  • C # - Na verdade, tenho usado bastante essa linguagem agora e parecia ter formado uma relação de amor e ódio com ela. Ser capaz de sobrecarregar métodos com parâmetros diferentes é legal e divertido. Mas, se você quiser um idioma que seja problemático em todas as suas linhas de código sobre conversão de tipos , então o C # é para você. Meu Deus, ele quer que você coloque elenco explícito EM TODA PARTE! Fazer aulas é divertido, mas de repente você percebe que está gastando mais tempo fazendo aulas para tornar a linguagem maldita apenas TRABALHADA do que realmente escrever código real.

    Além disso, o C # não tem ... tudo bem, ele tem o .NET, que é realmente bom e extenso. No entanto, ainda gosto mais do CPAN, porque você ainda pode escrever seus próprios módulos e reclamar com o autor sobre um bug ou falha de design. E eles são todos gratuitos. Além disso, o Perl está trabalhando no sentido do Perl.NET no futuro, portanto, podemos projetar aplicativos Windows em breve.

Perl é uma ótima linguagem que possui:

  • Expressões regulares - Se uma coisa que Perl pode fazer bem, é a manipulação de texto. Sim, muitas linguagens têm expressões regulares, mas o Perl quase as inventou, e há uma razão pela qual o grep tem um modo "Perl Regular Expression", ou pelo fato de a Oracle ter uma seção sobre "Extensões influenciadas pelo Perl nas expressões regulares do Oracle". É embutido e não requer nenhum módulo.

  • Flexibilidade - Você tem três tipos básicos de variáveis: escalares, matrizes e hashes. É isso aí. É tudo o que você precisa. Você não tem int, byte, string ou nada disso. Perl descobre isso muito bem. E você pode usar as referências que quiser, sem medo de vazamento de memória ou causar a falha do PC inteiro. A linguagem simplesmente funciona.

  • Portabilidade - Perl funciona muito bem na web. Funciona muito bem no UNIX. Até funciona muito bem no Windows. Não é um furo para uma única função. É um jogo de tudo, mas também um mestre de (principalmente) tudo.

  • É fácil fazer muito com um pouco de código - me dê um arquivo em branco de 1K e eu posso escrever todo tipo de coisa com esse espaço. Mesmo um liner Perl é ótimo para adicionar em um canal de linha de comando.

  • CPAN - Não posso enfatizar o quão bom é encontrar praticamente tudo o que você precisa. O que é "qualquer coisa"? Bem, que tal módulos de banco de dados para cada banco de dados ou coisa que você possa imaginar, variando de Oracle a iPod, CSV, Adabas e Yaswi? Que tal vários servidores da Web com todos os recursos? Que tal um leitor de arquivos do Excel, um módulo SNMP ou um módulo que lê comentários para linhas de depuração ou módulos que ajudam a programar mais rapidamente? Um projeto que estou fazendo no momento está escrevendo um gerador de mapa Terraria dinâmico, ampliando a partir de um módulo existente chamado Games :: RolePlay :: MapGen. O .NET nunca teria algo assim.

    Além disso, é muito fácil instalar qualquer módulo via CPAN. Obtenha do Debian. Instale-o diretamente do CPAN. Ele faz um trabalho tão bom quanto o apt-get na resolução de dependências. Não tenho nenhum problema em dizer ao meu sysadmin para instalar o módulo X do CPAN, pois é apenas um comando simples de uma linha.

Sim, tem suas falhas, e sim, sou inclinado a isso, mas você provavelmente já ouviu os negativos muitas vezes. Eles não superam os aspectos positivos, não por um longo tiro.

Brendan Byrd
fonte
14
-1 principalmente por não reconhecer que outros idiomas têm ferramentas tão boas quanto não melhores que o CPAN. Maven Central para Java, por exemplo? Ele possui mais artefatos do que o CPAN e é um liner 0 para instalar artefatos do Maven, pois eles são identificados automaticamente através da análise de dependência do Modelo de Objeto do Projeto. Também tenho menos experiência com Ruby Gems, mas acredito que elas sejam aproximadamente equivalentes ao CPAN.
Mikera #
8
PHP tem PEAR. E não é apenas uma linguagem de programação da web.
precisa saber é o seguinte
25
Eu não diria que você é um pouco tendencioso. Você é claramente tendencioso. Não acredito que você possa desprezar o Python principalmente porque ele possui espaços em branco significativos e porque Larry (certamente não uma fonte objetiva aqui) usou a expressão óleo de cobra. E não há ofertas de emprego para Ruby? Quando você viu o mercado de trabalho pela última vez? Pelo menos, se esforçou ao tentar estabelecer as credenciais de Perl.
Muhammad Alkarouri 3/11
6
-1 para uma perspectiva claramente tendenciosa e não pesquisada em outros idiomas. Eu concordo que Python é óleo de cobra, mas Ruby == "script kiddie" é um absurdo. Nunca vi uma tentativa de invasão baseada em Ruby em nenhum dos servidores que mantenho. É principalmente Python. PHP é uma linguagem de programação aceitável em algum sentido? Travessuras. Seus comentários no C # demonstram uma ingenuidade surpreendente em relação à digitação e / ou orientação a objetos. Atenha-se ao Perl, amigo. Sério, eu sempre amarei o Perl porque foi minha primeira linguagem de programação 'real' e é brilhante para tarefas sysadmin, mas essa resposta é pior que ruim.
Jason Lewis
8
+1 Por descartar todos os idiomas que eu já amei (ou odiei) - exceto Perl, é claro. :-)
jpaugh
12

O desempenho é um dos principais motivos para optar pelo perl. Comparado com Python, Ruby ou qualquer uma das linguagens de script baseadas em JVM, é extremamente rápido.

É por isso que nunca foi substituído no espaço de mineração de dados; todos os outros idiomas (gratuitos) são mais lentos quando se trata de lidar com grandes volumes de dados.

James Anderson
fonte
6
Você pode fornecer suporte / referências para essa afirmação? Parece-me que os últimos benchmarks que eu vi para Perl vs. Ruby / Python favoreceram o último, esp. ao incluir implementações alternativas deste último.
Jason Lewis
2
Quaisquer observações sobre desempenho devem ser uma generalização, a menos que versões e ambientes específicos sejam citados. Muitas marcas de referência por aí - hentenaar.com/serendipity/index.php?/archives/… onlyjob.blogspot.com/2011/03/… são bastante típicas. Você está certo de que as versões mais recentes do ruby ​​são bem rápidas, mas o perl tem lançamentos regulares de "aprimoramento de desempenho", portanto não deve haver problemas em acompanhar. LUA supera tudo.
James Anderson
Lua é bastante ardente.
Jason Lewis
12

Perl tem seu lugar. Sua "má reputação" geralmente se deve a isso, permitindo uma grande flexibilidade para fazer coisas que realmente devem ser feitas por uma ferramenta diferente.

Se você se perguntar: "O que estou tentando alcançar? E existem ferramentas apropriadas para isso?" então você faz parte do caminho até lá.

Se você estiver escrevendo um script rápido, o uso de uma linguagem de script faz sentido. Se você deseja criar um aplicativo complexo, pode "escrever" no Perl, mas provavelmente não deveria.

No entanto, como sua pergunta está relacionada a um programador novato, sugiro deixar o Perl sozinho por enquanto. Simplesmente porque você aprenderá menos maus hábitos em um idioma menos flexível.

Ptolomeu
fonte
3
Tudo bem, mas o Python é uma opção perfeitamente viável para criar um script rápido, mas você também pode esticá-lo para criar programas maiores. O mesmo não vale para Perl? Isso torna o Python melhor que o Perl?
23411 Bob
@ Bob: Eu acho que é principalmente o que você está acostumado a escrever e o seu gosto. Às vezes, também há algumas bibliotecas perl úteis que você não possui em python e vice-versa.
Dagnelies 23/10/11
1
@ Bob: Eu sugiro que ele tente python primeiro, é mais amigável para noob. Então, eu diria para ele escolher um idioma completamente diferente como segundo idioma, como Scheme.
Dagnelies 23/10/11
1
@ Bob: Toda a estrutura .NET está disponível apenas no Windows. No espaço Unix / Linux, o Perl é uma ótima linguagem para substituir scripts de shell, administrar o sistema e qualquer coisa que envolva muito processamento de texto e não muito mais. Ele faz as coisas diretamente para as quais o Python (da última vez que olhei) precisava de um pouco de estrutura. Isso geralmente torna o Perl uma linguagem de programação geral pior, mas melhor para suas aplicações mais especializadas.
David Thornley
1
@ Bob Na verdade, esse é um ponto interessante. Perl é realmente útil se você tiver um script de shell que está forçando os limites do bash. O Perl acomoda-o com muita facilidade, já que você pode colocar backticks em torno da maioria dos comandos e ainda funcionará.
Stephen Gross
12

Fiquei atraído pelo Python por seu layout - a estrutura do bloco é "o que você vê é o que você obtém" - e não entende por que existem pessoas que se deixam levar por isso. Eu acho que foi e é uma boa ideia.

Voltei para Perl, no entanto. Apenas parece melhor pensado como uma ferramenta prática. Na teoria da ciência da computação, Python e Ruby são "melhores". Mas eu trabalho no mundo real.

Ruby e Python estão mais na moda entre as crianças recém-saídas da faculdade. A maioria dos programadores que estão no Facebook segue a moda atual e segue Ruby ou Python. O post original ilustra isso: ele conflita "Vale a pena" com "Ainda é popular?"

Não sei nem me importo se o Perl é "popular" no mundo do Facebook. É provavelmente a linguagem de script mais usada entre as pessoas que realizam muito, o que é uma coisa muito diferente. Alguns dos comentaristas que pensam que seu idioma favorito tem um recurso comparável ao CPAN não têm idéia de quão amplo e profundo é o CPAN.

user83421
fonte
5
Espaço em branco significativo é uma péssima idéia. Sempre foi, sempre será. Dito isto, embora eu use Ruby em qualquer lugar que faça sentido, ainda tenho alguns scripts Perl para tarefas sysadmin que não tive nenhum motivo para reescrever no Ruby. Por quê? Eles funcionam muito bem e estão no ponto ideal de Perl. Por que criar mais trabalho?
Jason Lewis
1
Forçar as pessoas a recuar corretamente é uma boa idéia, independentemente do idioma. Linguagens melhores (como Python) apenas aplicam mais força.
Brendan
10

Perl é a linguagem para escrever ferramentas descartáveis. Existem várias outras aplicações em que o Perl é mais ou menos persistente e útil, mas se você não tiver um comando shell para fazer uma coisa estranha, se precisar de um stub para capturar alguns dados de um soquete estranho, se tiver um arquivo de log ou um banco de dados e precisa extrair algum conteúdo fora do alcance do SQL, se você precisar extrair algumas imagens do servidor ou se todos os modelos de página da Web contêm o mesmo tipo de erro e desejam corrigi-los - chicoteamento um script Perl de 10 minutos é o caminho a percorrer.

Escrever a mesma coisa no Shell provavelmente seria possível, mas devido a advertências estranhas da sintaxe do shell, levará mais tempo e pode ser muito mais difícil. Escrever isso em qualquer linguagem "profissional", como C ++, C #, Java etc, levará aproximadamente uma hora em comparação. Escrever isso em uma linguagem de script concorrente como Python, Ruby ou PHP é uma alternativa viável e provavelmente levará até 20% mais tempo para escrever.

Sim, os programas em outros idiomas serão mais fáceis de manter e mais fáceis de ler. Mas se você precisa de uma solução AGORA, Perl é o caminho a percorrer.

SF.
fonte
8

Veja os "carregamentos recentes para CPAN" - página . Há> 20 novos módulos ou módulos atualizados sendo carregados todos os dias. Acho que o número médio de envios diários tem aumentado lenta mas constantemente. Essa atividade é sinal de uma linguagem que está morrendo? Não!

Sempre me impressiona como alguns módulos importantes (por exemplo, programação na Web ou interfaces com drivers RDBMS) foram mantidos e refinados ao longo de muitos anos. Frequentemente, pelo autor original ou por novos mantenedores. Muitas vezes, isso criou código muito maduro.

Para inserir um módulo no CPAN, os autores são encorajados a percorrer um longo caminho para manter a compatibilidade com versões anteriores (com versões anteriores do perl 5), bem como a independência da plataforma. Veja, por exemplo, http://matrix.cpantesters.org/?dist=DBI (DBI = interface do banco de dados, camada de abstração)

Também o próprio idioma: Estou um pouco intrigado com todos os novos recursos que foram incluídos no idioma desde 5.10, 5,12., 5,14. Não aprendi a tirar proveito dos novos recursos. Perl está evoluindo rápido demais para mim!

knb
fonte
7

Eu aprendi Perl 4 e 5 enquanto fazia administração de sistema nos anos 90. Hoje faço programação em Java (onde invocar o Perl geralmente não é desejável) e ainda uso o Perl de vez em quando no meu computador de desenvolvimento. Geralmente, isso é feito exclusivamente para datamining em arquivos de log, onde as expressões regulares no Perl e o andaime para análise de texto oneliners no Perl facilitam muito a execução em uma linha de comando.

Essencialmente eu uso hoje como awk em esteróides. Por isso, é brilhante.

Uma das características do Perl é que há mais de uma maneira de fazer quase tudo. Isso permite que você escolha aquele que se encaixa com sua maneira de pensar - o que é ótimo quando apenas um hacker é selecionado, mas não é tão bom quando é preciso entender o código Perl de outras pessoas, pois elas geralmente escolhem outra maneira de fazê-lo. se encaixa com sua maneira de pensar.

Eu consideraria o Perl uma ferramenta muito útil que você pode querer aprender se se concentrar apenas no que as expressões regulares podem fazer para ajudá-lo a examinar seus arquivos de texto. Fique longe de qualquer coisa relacionada a objetos.

user1249
fonte
Então, você diria que é útil principalmente para scripts rápidos para lidar com texto?
Bob
Na minha opinião, sim, então é muito, muito bom. PODE fazer outras coisas também, mas essas não são tão boas assim.
1
Enquanto o Perl é muito bom em lidar com texto através de suas expressões regulares, não há necessidade de passar por ele se você conhece Python ou Ruby (ou talvez PHP), eu diria, pois eles também são muito bons com expressões regulares. O Python é um pouco mais detalhado, porém, também é certamente mais limpo.
Eric O Lebigot
@EOL, mas nem o Python, nem o Ruby, nem o PHP podem superar o andaime da análise de texto nos oneliners. Veja, por exemplo, a opção "-i".
@ ThorbjørnRavnAndersen: Concordou, para um liners: os oneliners do Python (opção -c) são realmente mais longos. :)
Eric O Lebigot
7

Por um tempo, o desenvolvimento do Perl5 estagnou por causa do foco no Perl6, o que causou um longo atraso entre as versões 5.8 e 5.10. Desde então, a comunidade realmente começou a perceber que o Perl5 e o Perl6 são idiomas diferentes e houve novos lançamentos muito regulares recentemente.

O Perl ganhou recentemente uma competição de aplicativos da web usando o Catalyst (embora eu prefira o Mojolicious ) e algumas das novas práticas modernas do Perl trazem muitas idéias de OO mais limpas para o Perl com coisas como o Moose.

Na minha opinião, como desenvolvedor de Perl, o Perl tem um grande legado e um futuro brilhante, não apenas sendo a fita adesiva que mantém as redes corporativas unidas, mas também um lugar no novo calor das aplicações web.

AFresh1
fonte
3

Eu não sou um programador especialista. Mas achei Perl bastante fácil de aprender (usei o livro de camelos), sempre um prazer, e PerlMonks é a comunidade de ajuda mais amigável da área de programação. O Perl parece ter perdido seu apelo sexual em termos de contratação para Ruby e Python, mas apenas em alguns setores (principalmente na web).

isomorfismos
fonte
3

Se você conhece perl, é mais fácil aprender o PowerShell da Microsoft. Em relação à sintaxe do powershell, ele não tem raízes em perl , mas o Powershell retirou muitos recursos e conceitos da linguagem Perl, por exemplo, fora do topo da minha cabeça: a variável $ _, prefixando matrizes com @ e strings / valores escalares com $, convenções de arquivo para nomear e armazenar módulos e, de alguma forma, Carregamento automático, para citar alguns.

Portanto, se você conhece o Perl, será útil, e é um pouco mais fácil aprender o Powershell, ou compreender a mentalidade do Powershell, ou manter o idioma do Powershell em sua memória de longo prazo. Encontrar o PowerShell sem algum histórico de perl é provavelmente um pouco mais estranho. Apenas dizendo.

É claro que a linguagem Powershell adicionou coisas novas, em particular sua compatibilidade com o .NET, e não continuou nenhuma das funções / operadores do perl que fornecem "compatibilidade com versões anteriores" com as ferramentas de linha de comando do unix.

knb
fonte
2

Grant McLean acaba de enviar um pequeno filme baseado na evolução do mapofcpan.org , mostrando como o CPAN evolui ao longo do tempo com uma maneira visual no estilo de mapa. É bastante auto-explicativo sobre a vitalidade da comunidade. Não está morrendo.

Perl certamente está sofrendo de sua má reputação, por causa de muitas lendas e porque sua comunidade não quer e não tenta torná-la a linguagem de programação mais moderna do mundo. É muito difícil entender por que tantas pessoas estão absolutamente convencidas de que é uma linguagem horrível. Você pode escrever código assustador em qualquer idioma. O Perl tem práticas recomendadas como qualquer outro idioma, você só precisa implementá-lo da maneira mais adequada para fazê-lo com base na filosofia.

Eu vejo uma razão muito triste para essa má reputação: por um longo tempo, os sites das comunidades Perl receberam designs de interface do usuário muito feios (como perlmonks.org, por exemplo). Pessoalmente, eu realmente não me importo com isso , talvez eu vá até o Perl porque, por esse motivo: não há muitos sites da moda na interface do usuário, mas você pode confiar nas ferramentas, na comunidade com muito mais fé, porque não tenta seja mais bonito do que é. No entanto, ferramentas de qualidade não significam que você não deva se concentrar na aparência e, eventualmente, é um erro não cuidar da aparência.

Por exemplo, um amigo meu (que gosta de idiomas mais modernos) me disse que o logotipo atual do Perl6 é horrível e que será um problema atrair a carne jovem para o Perl. Muito mais um problema do que com uma pedra brilhante ou qualquer outro logotipo bem projetado .

Acredito que é uma razão muito triste para a impopularidade, mas é isso que domina o mundo.

Sebf
fonte
Se você não vai mostrar atenção aos detalhes no seu logotipo, por que devo assumir que você vai mostrar atenção aos detalhes nos detalhes mais profundos do seu idioma? Não é apenas que o logotipo parece ruim, é que o logotipo ruim parece sintomático de uma cultura que não valoriza a forma como as coisas são apresentadas e que reforça o estereótipo por trás de todas as piadas de "linguagem somente escrita"
Racheet
Já ouvi falar de pessoas que trabalham com má reputação. Essas pessoas são defensoras do Perl moderno e do desenvolvimento orientado a testes. Sites como builtinperl.com , questub.io estão mudando a maneira como devemos considerar o caso Perl. Duck Duck Go também é um enorme sucesso, ninguém pode dizer que não se importa com a forma como as coisas são apresentadas. Até o metacpan.org tem sido uma maneira de dar ao usuário do CPAN (a principal força do Perl) uma nova experiência, exibindo códigos, documentação e módulos de pesquisa com uma boa interface do usuário. Não acredito em logotipos de idiomas: C tem um logotipo? Um idioma não é uma marca.
smonff
1

Perl definitivamente não está morrendo. Isso nunca foi tão empolgado quanto outras línguas.

Embora seja verdade que o próprio Perl seja um idioma antigo, ele possui uma comunidade vibrante e muito produtiva, cujo valor está na biblioteca do CPAN. Não acho que nenhuma linguagem tenha uma biblioteca tão extensa e abrangente quanto a CPAN. Nada chega nem perto. No CPAN, você encontrará milhares de módulos e estruturas, que fazem praticamente qualquer coisa que você possa imaginar. Precisa de um servidor web? Há HTTP :: Server. Precisa de um banco de dados independente? Há Muldis :: DB. Quaisquer que sejam as suas necessidades, normalmente você encontrará vários módulos que atendem às suas necessidades, basta escolher o que melhor se adequa ao seu aplicativo.

Quanto a Ruby, Python e outros concorrentes, acho que uma concorrência saudável tem sido um tremendo benefício para o Perl. Qualquer coisa que outras línguas obtivessem, a comunidade Perl reescreveu em Perl. Por exemplo, quando Ruby estava empolgado com o sucesso do Rails, Perl conseguiu o Dancer, que é, em muitos aspectos, melhor que o Rails.

Perl definitivamente não está morto, nem está morrendo. Não há nada chamativo acontecendo ao redor, não há empresa que se beneficiaria de exaltar o Perl, para que não receba muita atenção da mídia e nem toda criança conheça o Perl, então há menos conversa sobre isso.

Faz mais de 6 meses desde a postagem original. Caso você ainda não tenha decidido, faça um favor a si mesmo e aprenda Perl.

Rox
fonte
0

Uso perl para desenvolvimento de jogos na web desde os anos 90 e, após um intervalo de três anos, concordo com o pôster anterior. Volto e percebo que ela evoluiu muito acima e além de onde a deixei.

Está morrendo? Sem chance.

É útil? Eu estaria perdido sem ele. Talvez seja apenas eu, mas pelas outras respostas, eu diria que é uma criatura viva muito ativa.

Guruchild
fonte
-6

Eu adquiri a maior parte da minha experiência profissional na Web com PHP, mas, à medida que cresci como desenvolvedor, as coisas ficaram um pouco mais desafiadoras, muitas tarefas que o PHP simplesmente não podia executar ou executa de maneira ineficiente. Eu poderia ter levantado minhas mãos, mas, em vez disso (graças ao google), me encontrei em sessões ssh aproveitando o libreoffice, ffmpeg, imagemagick para escrever funções pós-processo para PHP. Nunca o usei antes de eu acertar no PERL .. principalmente porque o Perl fica perfeitamente embaixo da pilha LAMP.

(1) está pré-instalado em todos os servidores LAMP ou, pelo menos, possui uma nova rpm. (2) tem um repo CPAN incrível para economizar muito tempo. (3) mais rápido / seguro para executar tarefas nas quais o PHP rodando no apache falha. (4) muito semelhante ao PHP e fácil de aprender.

Misture idéias com PHP, assar com PERL usando BASH, conforme desejado, virar de acordo com o MySQL e servir com HTML5 e uma pitada de jQuery. É uma ótima receita.

EDJ
fonte
1
Algo para apoiar essas afirmações?
Austin Henley