Pesquisa de site

Mergulhe profundamente no debate Python versus Perl - O que devo aprender Python ou Perl?


Muitas vezes, quando uma nova linguagem de programação é introduzida, há um debate que começa entre algumas das mentes geniais da indústria, onde a linguagem é comparada com aquela que já está espalhando suas raízes. Uma espécie de burburinho geralmente se espalha na indústria de TI e o novo é frequentemente comparado em todos os aspectos, sejam recursos, sintaxe ou aspectos principais de CPU e memória, incluindo tempo de GC e tudo, com o existente de seu tipo.

Muitos exemplos de tais casos podem ser encontrados e investigados no passado, incluindo o debate entre Java e C#, C++, etc. Um caso que atraiu muita atenção foi o debate entre duas linguagens que surgiram uma após a outra em um curto espaço de tempo, ou seja, Python e Perl.

Considerando que o Python foi inventado inicialmente como um sucessor da linguagem ABC meramente como um projeto de programação de “hobby” (que atrairia hackers Unix/C) para o autor que o batizou com o nome do série de sua maior estrela Monty Python.

Leitura sugerida: Introdução à programação e scripts Python no Linux

Perl surgiu quase 2 anos antes como uma linguagem de script Unix que pretendia facilitar o processamento de relatórios. Era uma mistura de muitas linguagens, incluindo C, awk, sed e shell script.

O que vale a pena notar é que essas linguagens que evoluíram com intenções diferentes estão sendo constantemente comparadas, o que me fez estudar e descobrir os motivos, dos quais alguns importantes estão listados abaixo:

  1. Ambos tinham como alvo o sistema operacional Unix, um para hackers e outros para processar relatórios.
  2. Ambos são orientados a objetos (sendo Python o mais) e interpretados, sendo um fortemente digitado e claro quando se trata de codificação, ou seja, Python, e outro permitindo digitação feia com colchetes para representar um bloco, ou seja, Perl
  3. Ambos são opostos em princípio quando dizemos que Perl tem muitas maneiras de realizar uma única tarefa, enquanto python se concentra em uma e apenas uma maneira de fazer as coisas.

Python vs Perl – Recursos comparados

Vamos mergulhar fundo neste debate e tentar descobrir os aspectos gerais onde estas duas línguas se diferenciam uma da outra. Além disso, vamos tentar descobrir a fonte da verdade para muitos clichês que podem ser ouvidos na indústria dizendo “Python é Perl com rodinhas” ou “Python é semelhante ao Perl, mas diferente forte>” para que possamos tentar concluir com uma solução precisa para este debate sem fim.

1. Sintaxe limpa do Python versus sintaxe complexa do Perl

Python leva uma enorme vantagem sobre Perl quando se trata de legibilidade de código. O código do Python é muito mais claro de entender do que o do Perl, mesmo ao ler o código depois de anos.

Com recuo representando o bloco de código e estruturação adequada, o código do Python é muito mais limpo. Por outro lado, Perl empresta sua sintaxe de várias linguagens de programação como C, shell scripting e até mesmo filtros awk e sed quando se trata de expressões regulares.

Leitura sugerida: 15 comandos ‘sed’ úteis para tarefas diárias de administração do sistema Linux

Além disso, com '{' e '}' representando um bloco de código e adição desnecessária de ';' no final de cada linha, o código em Perl poderia se tornar um problema para entender se você o ler depois de meses ou anos, devido à permissão de scripts feios.

2. Regex de terceiros integrado do Perl versus Python e suporte a operações de sistema operacional

A linguagem Perl empresta sua sintaxe de C e outros comandos UNIX como sed, awk, etc. devido ao qual possui suporte regex muito poderoso e integrado sem importar nenhum módulo de terceiros.

Além disso, Perl pode lidar com operações do sistema operacional usando funções integradas. Por outro lado, Python possui bibliotecas de terceiros para ambas as operações, ou seja, re para regex e os, sys para operações de sistema operacional que precisam ser ser assegurado antes de realizar tais operações.

As operações regex do Perl têm sintaxe semelhante a 'sed', o que facilita não apenas as operações de pesquisa, mas também substituir, substituir e outras operações em uma string podem ser feitas de maneira fácil e rápida do que python, onde uma pessoa precisa saber e lembre-se das funções que atendem à necessidade.

Exemplo: Considere um programa para procurar um dígito na string em Perl e Python.

Import re
str = ‘hello0909there’
result = re.findall(‘\d+’,str)
print result
$string =  ‘hello0909there’;
$string =~ m/(\d+)/;
print “$& \n”

Você vê que a sintaxe do Perl é muito fácil e inspirada no comando sed, que tira vantagem da sintaxe do Python, que importa o módulo de terceiros 're'.

3. Programação OO avançada do Python versus One-Liners do Perl

Um recurso onde o Python ofusca o Perl é sua programação OO avançada. Python tem amplo suporte à programação orientada a objetos com sintaxe limpa e consistente enquanto o objeto OOP em Perl está desatualizado onde o pacote é usado como um substituto para aulas.

Leitura sugerida: Introdução ao Python Django Web Framework

Além disso, escrever código OO em Perl adicionará muito mais complexidade ao código, o que eventualmente tornaria o código difícil de entender, até mesmo sub-rotinas em Perl são muito difíceis de programar e eventualmente difíceis de entender posteriormente.

Por outro lado, Perl é melhor por seus one-liners que podem ser usados na linha de comando para executar diversas tarefas. Além disso, o código Perl pode eventualmente realizar várias tarefas em menos linhas de código do que o python.

Um exemplo de shortcode de ambas as linguagens que destaca a capacidade do Perl de fazer mais em menos LOC:

try:
with open(“data.csv”) as f:
for line in f:
print line,
except Exception as e:
print "Can't open file - %s"%e
open(FILE,”%lt;inp.txt”) or die “Can’t open file”;
while(<FILE>) {
print “$_”; } 

Prós e Contras – Python vs Perl

Nesta seção, discutiremos os prós e contras do Python e do Perl.

Prós do Python:

  1. Possui uma sintaxe limpa e elegante que torna esta linguagem uma ótima escolha como a primeira linguagem de programação para novatos que desejam ter experiência prática em qualquer linguagem de programação.
  2. Possui programação OO muito avançada e inerente, e a programação de threads em Python é muito melhor que Perl.
  3. Existem muitas áreas de aplicação onde o Python é preferido e até mesmo supera o Perl. Como: Perl é preferido para scripts CGI, mas hoje em dia o Django do Python e web2py como linguagens de script da web estão se tornando mais populares e têm uma enorme atração na indústria.
  4. Possui vários wrappers SWIG para diferentes linguagens de programação como CPython, IronPython e Jython e o desenvolvimento destes precedeu o desenvolvimento de wrappers SWIG para Perl.
  5. O código Python é sempre bem recuado e fácil de ler e entender, mesmo se você estiver lendo o código de outra pessoa ou mesmo o seu código depois de anos.
  6. Python é bom para várias aplicações como Big Data, Automação de infra-estrutura, Aprendizado de máquina, PNL, etc. enorme apoio de comunidades ativas por ser de código aberto.

CONTRAS do Python:

  1. Existem poucas áreas onde a execução em Python é geralmente mais lenta que a de Perl, incluindo regex e operações baseadas em strings.
  2. Às vezes é difícil obter o tipo de variável em Python, pois em casos de código muito grande, você tem que ir até o fim para obter um tipo de variável que fica agitado e complexo.

Perl PRÓS:

  1. Perl tem one-liners poderosos e ainda garante sintaxe semelhante a tubulação UNIX que pode ser usada na linha de comando para executar várias tarefas, também é influenciada pelo Unix e sua programação de linha de comando, integrando muitos comandos influenciados pelo UNIX em sua codificação.
  2. Perl é conhecido por suas poderosas operações de regex e comparação de strings, pois é influenciado por sed e awk como poderosas ferramentas UNIX. No caso de operações de regex e string como substituição, correspondência, reposição, Perl supera python, o que levaria algumas linhas de código para atingir o mesmo. Além de muitas operações de E/S de arquivo, o tratamento de exceções é feito mais rapidamente em Perl.
  3. Quando se trata de uma linguagem para geração de relatórios, Perl sempre foi famoso desde sua introdução como um dos principais motivos para o autor desenvolver uma linguagem como o Perl foi para geração de relatórios.
  4. Muitas áreas de aplicação onde o Perl encontra seu uso são Programação de Rede, Administração de Sistema, Scripting CGI (aqui o Python está superando o Perl com Django e web2py), etc.
  5. É fácil identificar o tipo de variável com os símbolos que Perl usa antes delas, como: ‘@’ identifica arrays e ‘%’ identifica hashes.

Perl CONTRAS:

  1. Perl possui um código muito complexo que torna difícil o entendimento para um iniciante. Sub-rotinas e até mesmo outros símbolos como: ‘$`’, ‘$&’ etc são difíceis de entender e programar para um programador menos experiente. Além disso, o código Perl quando lido seria difícil e complexo de entender, a menos que você tenha uma experiência de qualidade.
  2. A programação OO em Perl está um pouco desatualizada, pois nunca foi conhecida por programação OO e muitas operações como threading também são menos pronunciadas em Perl.

Conclusão

Como visto acima, onde ambas as linguagens são boas em relação às aplicações a que se destinam, o Python leva um pouco de vantagem sobre o Perl como primeira escolha para um novato devido à sua código limpo e fácil de entender, enquanto, por outro lado, Perl supera Python quando se trata de operações de manipulação de strings e alguns one-liners avançados para UNIX como sistema operacional e várias outras operações pelas quais é conhecido.

Então, no final das contas, tudo depende da área específica que você almeja. Todos os seus comentários sobre este artigo são bem-vindos e solicitamos que você dê sua opinião sobre o tópico se, na sua opinião, Python vencer ou Perl.