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!
Respostas:
Primeiro de tudo, é sempre melhor desambiguar .
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 é oPHP
mecanismo padrão ) ainda é bom para análises simplesAdministraçã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 :
fonte
"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"
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.
fonte
shape($wheel) == 'round' ? available_in_cpan($wheel) : false;
não é um filtro válido.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.
fonte
Quando eu decidi aprender Perl como minha primeira língua alguns anos atrás, havia vários fatores que orientaram minha decisão:
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.
fonte
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.
fonte
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.
fonte
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.
fonte
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.
fonte
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.
fonte
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.
fonte
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!
fonte
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.
fonte
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.
fonte
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).
fonte
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.
fonte
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.
fonte
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.
fonte
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.
fonte
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.
fonte